====== 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.