ipxe.lkrn does not detect Atheros L2 network interface - Printable Version +- iPXE discussion forum (https://forum.ipxe.org) +-- Forum: iPXE user forums (/forumdisplay.php?fid=1) +--- Forum: General (/forumdisplay.php?fid=2) +--- Thread: ipxe.lkrn does not detect Atheros L2 network interface (/showthread.php?tid=8235) |
ipxe.lkrn does not detect Atheros L2 network interface - Andromeda_x - 2016-11-28 03:31 Hello, I would like to express my appreciation to iPXE developers for this project. I have followed online instructions to download latest iPXE from git and run "make" which finished successfuly. My attempt with iPXE for floppy was successful and acomplished what I expected. Next logical step would be to add ipxe.lkrn to my pxelinux.cfg/default configuration file which I did and ipxe.lkrn loads but it does not detect network interface. If I attempt to issue "dhcp" command then "show errno" returns 0x2c1de03b which indicates that network interface is not found. http://ipxe.org/err/2c1de0 Well it is a strange situation that iPXE on the floppy finds and configures network interface successfully but ipxe.lkrn does not detect network interface. I went through Makefile in hope to find what could cause this discrepancy. Looking through Makefile I did not find anything what would indicate the source of my problem. I use Debian 7 as pxelinux.0 server and looking through "apt-cache search ipxe" I found that the distribution has iPXE package. I've installed the package and temporary substituded ipxe.lkrn -- with Debian's file ipxe.lkrn, this time network interface is detected and it can obtain IP address from DHCP server. But as you know there is always something else be found -- ipxe.lkrn was compiled withoug "cpuid" command what makes impossible to auto select x32 or amd64 Windows 7/8/8.1/10 installation. Hmm, what did I miss? I went through online documentation and could not find a ponter to possible solution. I believe that network interface is handled by atl1e driver (Fedora 25 provides driver atl2 to be used with this buildin nework interface). Test System description: Mainboard: P5GC-MX/1333 CPU: E8500 Buildin NIC: Qualcomm Atheros Attansic L2 Fast Ethernet Specification: P5GC-MX/1333 Manual: P5GC-MX/1333 Manual Code: root# lspci -s 02:00.0 Andromeda X RE: ipxe.lkrn does not detect Atheros L2 network interface - NiKiZe - 2016-11-28 20:39 It would be interesting to see the output of your ipxe together with ifstat, both when it works with floppy, as well as when it does not. Looking at the sources 1969:2048 does not seem to be supported by native ipxe drivers. you could try to edit src/drivers/net/atl1e.c And add the line Code: PCI_ROM(0x1969, 0x2048, "atl2e_48", "Attansic L2E 0x2048", 0), also you might want to replace you pxelinux.0 with ipxes undionly.kpxe IMHO the ipxe scripting is much supperior to the pxelinux interface. Anothing thing to try is to load undionly.kpxe, or ipxe.pxe from pxelinux instead of the ipxe.lkrn Please let us know if anything of the above works for you and in that case what RE: ipxe.lkrn does not detect Atheros L2 network interface - Andromeda_x - 2016-11-30 19:30 Hello, I've attempted to modify the src/drivers/net/atl1e.c file according your suggestion and recompile the module. Well it did not work! And I still do wonder "How does it work from floppy IPXE"? Ok, here what I get when I boot from the floppy Code: IPXE 1.0.0 (fd95c) .. Open Source Network Boot Firmware: -- http://ipxe.org Well, in place of "<NULL>" I would expect to see a driver name or a chip id... Now I run command "config" then I see Code: busid ............... 01:19:69:20:48 and if I boot through pxelinux.0 and chainload ipxe.lkrn I get following Code: IPXE 1.0.0 (fd95c) .. Open Source Network Boot Firmware: -- http://ipxe.org if I run command config then... all fields are listed as "not specified". Does it look intersting, isn't it? When I boot from floppy, somehow the network interface gets detected and configured although the chip is "not specified" as indicated by software. What does it takes to include "alt2" driver into ipxe latest package? Andromeda X Now about switching to iPXE completely.... well not so fast as I need to get it working before. Currently in pxelinux I have an extencive number of Linux distributions installation and working on M$ Windows to make unattended install (currently through Debian's version of iPXE which is missing "cpuid" --probably I will download source and attempt to recompile it with "cpuid" enabled). I looked through iPXE documentation and a little bit confused how to make "Menus" of same extension as I did in pxelinux. The documentation for pxelinux is very well layed out in regard of format menues, commands which can be used in the menu, colors, position, VGA modes, images for background and some other useful information. Looking through iPXE documentaion I found it also quite informative but lacking details regarding "Menu" -- is it possible to preselect VGA mode, position menu let say at resolution of 1680x1050 in right low corner, how an image can be included and changed with selected item from menu, and possibly other useful information on "configuring menu"? I do not believe that I missed this information in the documentation -- the information on iPXE menu configuration is quite "brief". If you can give some pointers to an examples it would be great assistance. Andromeda X RE: ipxe.lkrn does not detect Atheros L2 network interface - NiKiZe - 2016-11-30 19:48 The reason for it to work in in you floppy test is simple and the magic word here is UNDI, from your example: Code: net0: 00:24:8c:7c:54:dc using <NULL> on UNDI-0000:02:0.0 (closed) The UNDI driver ipxe uses in this case is the stack that gets loaded by the already existing NIC ROM which ipxe can hook into if it is loaded over the network, the above floppy scenario is not really supported, and is a bit weird that it works at all. And you would see the same thing if you _replace_ your pxelinux.0 on your tftp server with ipxes undionly.kpxe instead. Note that when you load ipxe.lkrn from pxelinux it will not be able to load the nics UNDI stack. Could you do a git diff in your ipxe source directory and post the result, and also post the exact build command you used to generate the ipxe binary with the atl1.c changes, and also how you then booted that? RE: ipxe.lkrn does not detect Atheros L2 network interface - Andromeda_x - 2016-11-30 21:52 Hello, thank you for pointing out that floppy used UNDI interface (I didn't pay attention to it as I am not familiar with enternals of iPXE). Ok, I did recompiled undionly.kpxe with embedded script and it does work as expected. I have created a group in DHCP configuration file dedicated to undionly.kpxe boot file. And here it is a "git diff" on my source directory Code: andromeda@moon:~/tmp/ipxe$ git diff Nothing special as you would expect.... I've attempted to recompile Debian's source package for iPXE (taken from here - iPXE source package) and no miracle happened -- same behavour. Note: stock ipxe Debian 7 package able to proceede properly with pxelinux.0 + ipxe.lkrn. I've taken a quick look at source they use and what patches they apply in most recent package which I referred in the link above and I did not find any magic. They made some changes in configuration header file general.h Code: #define ROM_BANNER_TIMEOUT 0 and applied following patch Code: diff --git a/src/arch/x86/prefix/romprefix.S b/src/arch/x86/prefix/romprefix.S and following patch related to efi Code: diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c rest of changes is Debian related: installation, grub and iso generation related... Andromeda X Well, all I did to recompile ipxe.lkrn was cd tmp/ipxe/src make and then copy file of interest in proper location on TFTP server. Andromeda X Ok, I decided to follow your advice to look at 'ipxe.pxe' module. I've reconfigured DHCP server to "serve this file" on PXE request from test computer, restarted DHCP server and rebooted test computer. Well, it loaded the file; gave information about UNDI and would not continue as despite my expectation. This moment I thought it might be related that my "ipxe" script is not embedded into ipxe.pxe file. Code: cd tmp/ipxe/src then ipxe.pxe was copied to proper location on TFTP server and test computer rebooted. And I got a screen in following picture iPXE screen Andromeda X |