This is an old revision of the document!
====== Kyle's diskless boinc cluster - SpaceHeaters@home ====== Note: This is a design in progress ===== Design Summary ===== * Minimize use of painful technologies where and if possible (tftp, nfs) * Uses samba for network file access * Boyscout level of security - program credentials into gpxe boot rom * Controlled via ssh ===== Get libraries for certain binaries ===== <code> ldd `which cifs.upcall` > /tmp/libs ldd `which ssh` >> /tmp/libs ldd `which sshd` >> /tmp/libs ldd `which bash` >> /tmp/libs ldd `which mount.cifs` >> /tmp/libs ldd `which watch` >> /tmp/libs ldd `which screen` >> /tmp/libs # The Name Service Switch related libs aren't found with ldd echo /lib/libnss_dns.so.2 >> /tmp/libs echo /lib/libnss_files.so.2 >> /tmp/libs cat /tmp/libs | cut -f 2 -d '>' | cut -f 1 -d '(' | xargs -n 1 -I {} sh -c "readlink -f {} || echo {}" | sort | uniq | xargs -I {} cp {} . </code> ===== embedding keys onto the rom image ===== <del>For starters the boot script gets changed a little bit</del> Nothing needs to get changed. I'm not sure what happens in the event of a collision, a file with the same name in both the initrd and in embed.img <code> #!gpxe kernel vmlinuz-2.6.31-14-generic initrd smith.ilz boot</code> <code> 00:50 < Docteh> i attached a gzipped tar to a gpxe image, and its automatically used along with the initrd specified via a script via dhcp, is that a known behavior? 00:51 < Docteh> gzipped cpio, my bad 00:52 < Docteh> I like that this is happening, I'm just wondering if I can expect it to work like that in the future </code> Formats: gzipped cpio - works\\ gzipped tar - not tested yet\\ Note: My assumption of the default gpxe script might be incorrect. <code> echo \#\!gpxe > default.gpxe echo autoboot >> default.gpxe</code> Build the desired image <code>make EMBEDDED_IMAGE=./default.gpxe,./embed.img bin/pcnet32.pxe</code> <code>make EMBEDDED_IMAGE=./default.gpxe,./embed.img bin/10ec8139.rom</code> Note: running rset8139 with a 1mbit eeprom in the socket while the 8139 was set to not have a boot rom caused rset8139 to hang. ===== Burning an eeprom ===== I fired up RSET8139 in freedos with the bootrom socket empty and set the bootrom size to 128kb. RSET8139 has options for 8kb 16kb 32kb 64kb and 128kb. Note: running rset8139 with a 1mbit eeprom in the socket while the 8139 was set to not have a boot rom caused rset8139 to hang. http://ctflasher.sourceforge.net/ can write to an eeprom on a rtl8139b/c board via a /proc interface. I compiled a 2.6.17 kernel and used that with ctflasher ===== Issues so far ===== cifs client doesn't appear to watch connections as well as it should