(2013-01-07 13:21)qiet72 Wrote: [ -> ]Hi,
Balaji Rao already completed the code for gpxe to boot from USB network adapters back in 2008 - did that not get ported over to ipxe?
http://etherboot.org/wiki/soc/2008/balaj...plan/start
br,
Quinn
The iPXE project does not have a device driver for the ASIX.
The gPXE project technically didn't have a device driver either, that is it did not support any USB connected Ethernet device.
However Balaji Rao created a personal Git repository here:
http://git.etherboot.org/people/balajirrao/gpxe.git/
On the main gPXE repository and branched the trunk and introduced a USB subsystem and drivers for several USB to Ethernet Adapters.
The results were never merged back into the main trunk, and even the latest gPXE official releases does not include the USB subsystem or the driver code.
He did keep a journal of his work here:
http://www.etherboot.org/wiki/soc/2008/balajirrao/start
The journal is fairly complete and detailed.
By week 4 he had a working driver for Davicom dm9601
By week 5 it appears he had a driver for Belkin F5D5050
By week 6 he had a driver for D-Link DUB-E100 (ASIX 88772A/B)
After week 11 he seems to have disappeared.
Rom-o-matic only produces boot images for code in the main trunk, so it never produced, nor will ever produce images that include his drivers.
To my knowledge no one else has attempted creating a USB subsystem for gPXE or iPXE, which would be a prerequisite to writing a driver specific to a chipset.
The driver design changed in later versions of gPXE and perhaps iPXE, so a restart might be necessary to get a USB-2-Ethernet driver set back on track. USB is a different bus architecture from PCI and requires the subsystem to get started. Something has to initialize the USB hardware.
A couple of directions you could take.
1. check out his specific git tree
http://git.etherboot.org/people/balajirrao/gpxe.git/
2. compile it abiding by whatever the compile rules were for that generation, and see if it works.. maybe add some device ids
3. perhaps "lift" the drivers from the branched gPXE project and use them with GRUB to create a PXEgrub that will support your USB2 Ethernet device.
4. see if you can get the old driver to merge with the iPXE code
5. Argon made a press release in 2007 that said:
Argon Technology Releases USB2 PXE on Disk for Asix USB2 AX88772 Fast Ethernet Controllers
This is not free code, its a proprietary solution, however it indicates they wrote a boot image that would start from a floppy disk image and initiate the USB2 Ethernet hardware and perform a PXE Boot.
IF that is still available at a reasonable price point, you may be able use it to start a PXEChain loading other PXE bootloaders to get you back into a familiar environment.
Their website is confusing and the only purchase option currently posted directly related to PXE boot from Disk explicitly says it is for PCI cards only. I plan to look into what that means tomorrow.
The whole thing about all these nice projects, PXELinux/Syslinux, gPXE, iPXE, PXEGrub is that they pretty much go into effect "after" the hardware has been initialized by a driver written specifically for that hardware. Without the hardware setup you can't just boot into PXElinux if there is nothing left from the UNDI driver to build upon, or some previous PXE boot agent that setup the hardware.
It would be nice to use the Linux kernel to set everything up and then daisy chain into booting a PXElinux kernel, then we could leverage UNDI, but something has to setup the UNDI memory space, load the PXElinux kernel and turn everything over to it. Kexec sounds like something that might do that, but I'm not sure it was ever envisioned to do something like that.