====== Michael Decker: Driver Development ====== ==== Week 1 ==== ---- === 26 May 2008 === * Converted ''#ifdef DEBUG printf(..)'' and ''hd(..)'' statements to ''DBG(..)'' and ''DBG_HD(..)'' in ''eepro100.c'' * Collected & sorted notes on Etherboot and gPXE driver API === 27 May 2008 === * Further gPXE network driver API documentation * Hardware problems encountered; consulted with mdc === 28 May 2008 === * [[:soc:2008:mdeck:notes:gpxe_driver_api|gPXE Network Driver API]] documentation continues. * [[:soc:2008:mdeck:notes:initialization|gPXE Network Driver Initialization]] document added. === 29 May 2008 === * [[:soc:2008:mdeck:notes:gpxe_driver_api|gPXE Network Driver API]] documentation updated. * Specific changes to eepro100.c begin. === 30 May 2008 === * Fixed repository in git * Modified .git/config [remote "personal"] url = mdeck@rom.etherboot.org:/pub/scm/people/mdeck/gpxe.git to [remote "personal"] url = ssh://mdeck@rom.etherboot.org//pub/scm/people/mdeck/gpxe.git The erroneous configuration was created from [[:soc:2008:git-usage|here]]. * Setup my personal info mike@vaio:~/Shared/repo/gpxe$ git config user.name "Michael Decker" mike@vaio:~/Shared/repo/gpxe$ git config user.email "mrd999@gmail.com" mike@vaio:~/Shared/repo/gpxe$ cd .. mike@vaio:~/Shared/repo$ mv gpxe gpxe.git mike@vaio:~/Shared/repo$ cd gpxe.git/ * Created personal/drivers branch $ git-checkout -b drivers origin/master $ git-push personal drivers * Reinitialized personal/master branch mike@vaio:~/Shared/repo/gpxe.git$ git-branch drivers * master mike@vaio:~/Shared/repo/gpxe.git$ git-branch -d -r personal/master Deleted remote branch personal/master. mike@vaio:~/Shared/repo/gpxe.git$ git push personal :master mdeck@rom.etherboot.org's password: refs/heads/master: 72c77282442fd098a7c762222ba49b55c48d4f82 -> deleted To ssh://mdeck@rom.etherboot.org//pub/scm/people/mdeck/gpxe.git - [deleted] master error: unlink(.git/refs/remotes/personal/master) failed: No such file or directory error: Failed to delete mike@vaio:~/Shared/repo/gpxe.git$ git-push personal master mdeck@rom.etherboot.org's password: Total 0 (delta 0), reused 0 (delta 0) refs/heads/master: 0000000000000000000000000000000000000000 -> c899bdc5a823e623b3e8f7598a7f77d65dcf2d2c To ssh://mdeck@rom.etherboot.org//pub/scm/people/mdeck/gpxe.git * [new branch] master -> master mike@vaio:~/Shared/repo/gpxe.git$ git-checkout drivers Switched to branch "drivers" * Git commit [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commitdiff;h=0c3deabe7865741c629b422c5abf20369ac04b0a|0c3deabe7865741c629b422c5abf20369ac04b0a]] * Setup [[:soc:2008:mdeck:notes:start#build_environment|new target machine]]. * Tested booting with new target. * Fixed dhcpd.conf for new configuration # dhcpd.conf # ddns-update-style none; not authoritative; ignore unknown-clients; default-lease-time 600; max-lease-time 7200; option space gpxe; option gpxe-encap-opts code 175 = encapsulate gpxe; option gpxe.bus-id code 177 = string; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option domain-name-servers 192.168.1.1; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; } host h1 { hardware ethernet 00:11:d8:0e:93:7b; filename ""; option root-path "aoe:e0.0"; } host h2 { # motherboard ethernet adapter hardware ethernet 00:1F:C6:20:E2:B5; filename "eepro100.pxe"; # if we're not talking to gPXE load this filename # if not exists gpxe.bus-id { # filename "eepro100.pxe"; # } } host h3 { hardware ethernet 00:90:27:43:84:4B; # eepro100 card for testing # For booting via http, Toms Root Boot # filename "http://rom.etherboot.org/gtest/gtest.gpxe"; # For booting Windows filename ""; option root-path "aoe:e0.0"; } * Got chainloading from PXE operational. PXE -> gPXE -> (http or aoe) * Code review on driver changes with mdc. * Attempted to fix vblade. === 31 May 2008 === * Fixed vblade * Changed mount of file system containing AoE image $ sudo umount /dev/sda4 $ sudo mount /dev/sda4 /media/test * Modified /etc/vblade.conf # example configuration file # network_device shelf slot file/disk/partition mac[,mac[,mac]] #eth0 0 0 /dev/sdb 00:11:22:33:44:55 eth0 0 0 '/media/Spare Room/test/disk.img' to # example configuration file # network_device shelf slot file/disk/partition mac[,mac[,mac]] #eth0 0 0 /dev/sdb 00:11:22:33:44:55 eth0 0 0 /media/test/test/disk.img vblade didn't appear to like the space. * ''$ /etc/init.d/vblade start'' * Successfully booted Windows image over AoE * Setup local chainloading environment * Installed apache2 on server * Copied gtest.gpxe into /var/www * Modified /etc/dhcp3/dhcpd.conf host h3 { hardware ethernet 00:90:27:43:84:4B; # eepro100 card for testing # For booting via http filename "http://192.168.1.9/gtest.gpxe"; # For booting Windows # filename ""; # option root-path "aoe:e0.0"; } And ''$ sudo /etc/init.d/dhcp3-server restart'' * Successfully chainloaded gPXE script from local httpd! * Git commit [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commitdiff;h=dd467a97c6d0972d3d930329ccd51ad0f7a17fcf|dd467a97c6d0972d3d930329ccd51ad0f7a17fcf]] === 1 June === * eepro100.c : Began restructuring code. * Added new gPXE API functions * Converted existing function parameters and types. * Shifted some parts, splitting up code as appropriate.