Michael Decker: Driver Development
Week 1
26 May 2008
- Converted
#ifdef DEBUG printf(..)
andhd(..)
statements toDBG(..)
andDBG_HD(..)
ineepro100.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
- gPXE Network Driver API documentation continues.
- gPXE Network Driver Initialization document added.
29 May 2008
- 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 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 0c3deabe7865741c629b422c5abf20369ac04b0a
- Setup 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 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.