====== Differences ====== This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
soc:2009:oremanj:notes:modules [2009/06/22 14:13] rwcr created |
soc:2009:oremanj:notes:modules [2009/07/01 20:12] (current) rwcr |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Interesting Idea: Loading part of gPXE over the network ===== | ===== Interesting Idea: Loading part of gPXE over the network ===== | ||
+ | |||
+ | **Update 6/29:** After talking with Michael, I've realized everything the below idea would offer can also be achieved by chainloading a fully-featured gPXE over the network using a minimal ROM-burned gPXE. That simple solution is orders of magnitude easier than implementing proper modularisation, and so the below becomes something of a curiosity. To it I say: **[[http://thedailywtf.com/Articles/The_Complicator_0x27_s_Gloves.aspx|Gloves!]]** | ||
+ | |||
+ | ---- | ||
gPXE's capabilities are getting larger, and option ROMs aren't. While we've been able to cram a lot more than one would expect into 64kb by using compression and putting a great deal of effort towards minimizing code size, that can only go so far. The potential trouble appeared with wireless; wireless drivers tend to be much bigger than wired NIC drivers due to a need to initialize a lot of RF parameters (rtl8185, about the smallest driver, is 11kb uncompressed), and the 802.11 link-layer code is also quite hefty (8kb uncompressed) due to the complexities of the 802.11 protocol. Before implementing anything to do with encryption support for wireless, an rtl8185 ROM compiled using stock configuration options is 1,025 bytes too big to fit in 64k. With more common wireless card drivers and encryption, it's only going to get worse; the ath5k driver is roughly five times the size of rtl8185 in Linux, and rtl8185 and ath5k are two of the very few wireless drivers that don't require loading vendor-supplied firmware onto the card to initialize it. ([[http://en.wikipedia.org/wiki/Comparison_of_open_source_wireless_drivers|Wikipedia has a good list]] of possible drivers, though it's slightly out-of-date.) | gPXE's capabilities are getting larger, and option ROMs aren't. While we've been able to cram a lot more than one would expect into 64kb by using compression and putting a great deal of effort towards minimizing code size, that can only go so far. The potential trouble appeared with wireless; wireless drivers tend to be much bigger than wired NIC drivers due to a need to initialize a lot of RF parameters (rtl8185, about the smallest driver, is 11kb uncompressed), and the 802.11 link-layer code is also quite hefty (8kb uncompressed) due to the complexities of the 802.11 protocol. Before implementing anything to do with encryption support for wireless, an rtl8185 ROM compiled using stock configuration options is 1,025 bytes too big to fit in 64k. With more common wireless card drivers and encryption, it's only going to get worse; the ath5k driver is roughly five times the size of rtl8185 in Linux, and rtl8185 and ath5k are two of the very few wireless drivers that don't require loading vendor-supplied firmware onto the card to initialize it. ([[http://en.wikipedia.org/wiki/Comparison_of_open_source_wireless_drivers|Wikipedia has a good list]] of possible drivers, though it's slightly out-of-date.) |