iPXE discussion forum
Dell laptop hangs on initialsing devices - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Dell laptop hangs on initialsing devices (/showthread.php?tid=7633)



Dell laptop hangs on initialsing devices - cml - 2015-02-24 13:03

Hello all,

Wondering if anyone could give me some pointers on a strange issue we are having, when we boot one of our Dell Inspiron 1121's it hangs on initializing devices.

Booting with DEBUG=device,pci,undiload,undinet
Code:
UNDI device is PCI 01:00.0, type DIX+802.3
          555kb free base memory after PXE unload
iPXE initialising devices...Adding UNDI root bus
UNDINIC 0x28c54 using UNDI 0x88af34d8
UNDINIC 0x28c54 has MAC address d4:b3:d9:05:f4:49 and IRQ 7 (this is the wired mac address)
UNDINIC 0x28c54 has type DIX+802.3, speed 10000000, flags 0000dc1b
UNDINIC 0x28c54 using interrupt mode
UNDINIC 0x28c54 added
Adding PCI root bus
PCI 00:00.0 ... has no driver
PCI 00:02.0 ... has no driver
etc.

and booting from usb via ipxe.usb with DEBUG=device,pci,undiload,undinet
Code:
iPXE initialising devices...Adding 3c509 root bus
Adding EISA root bus
Adding Hyper-V root bus
Failed to add Hyper-V root bus: No such device (http://ipxe.org/2c83403b)
Adding ISA root bus
Adding ISAPnP root bus
Adding MCA root bus
Adding PCI root bus
PCI 00:00.0 (8086:0044 CLASS 060000) has no driver
PCI 00:02.0 (8086:0046 CLASS 030000) has no driver
PCI 00:16.0 (8086:3b64 CLASS 078000) has no driver
PCI 00:1a.0 (8086:3b3c CLASS 0c0320) has no driver
PCI 00:1b.0 (8086:3b56 CLASS 040300) has no driver
PCI 00:1c.0 (8086:3b42 CLASS 060400) has no driver
PCI 00:1c.1 (8086:3b44 CLASS 060400) has no driver
PCI 00:1d.0 (8086:3b34 CLASS 0c0320) has no driver
PCI 00:1e.0 (8086:2448 CLASS 060401) has no driver
PCI 00:1f.0 (8086:3b0b CLASS 060100) has no driver
PCI 00:1f.2 (8086:3b2f CLASS 010601) has no driver
PCI 00:1f.3 (8086:3b30 CLASS 0c0500) has no driver
PCI 00:1f.6 (8086:3b32 CLASS 118000) has no driver
PCI 01:00.0 (1969:1062) has driver "undipci"
PCI 01:00.0 has mem 90500000 io 1000 irq 7
UNDI 0xdbb04 loading UNDI ROM 0xdbb84 to CS 964b DS 9165 for PCI 01:00.0
UNDI 0xdbb04 loaded PXENV+ 964b:00d0 !PXE 964b:0070 entry 964b:0106
UNDI 0xdbb04 using [581,614) kB of base memory
UNDINIC 0xdbb04 using UNDI 0xdbb04
UNDINIC 0xdbb04 has MAC address d4:b3:d9:05:f4:49 and IRQ 7
UNDINIC 0xdbb04 has type DIX+802.3, speed 1000000, flags 0000dc1b
UNDINIC 0xdbb04 using interrupt mode
UNDINIC 0xdbb04 added
PCI 02:00.0 (8086:0087) has driver "undipci"
PCI 02:00.0 has mem 90400000 io 0 irq 10
PCI 02:00.0 probe failed: No such device (http://ipxe.org/2c80603b)

I'm lost. Is there anything else I can try to debug, or any other suggestions?


RE: Dell laptop hangs on initialsing devices - robinsmidsrod - 2015-03-09 10:29

You could be dealing with a broken PXE firmware or a broken iPXE driver. Obviously first thing to try is to update your BIOS and see if that helps. If not, then you should be trying out the tests on http://ipxe.org/dev/driver with both the UNDI driver (undionly.kpxe using chainloading) and the native iPXE driver (using ipxe.usb and booting via usb stick). You should also tell us the PCI vendor/device IDs of your network adapter.


RE: Dell laptop hangs on initialsing devices - cml - 2015-03-09 11:11

I have actually gotten this working now don't remember all of the steps, but here goes. Just to preface, my development skills go as far as bash and powershell scripting (such as to say they are non-existent) and I use iPXE as a user of the FOG project.

Dell does not have any BIOS updates and I could never get undionly.kpxe or the usb to get past the initializing devices.

The chip is an Atheros AR8132 and in systemrescuecd it uses driver atl1c. Not seeing the driver in drivers/net I added this line to atl1e.c
Code:
PCI_ROM(0x1969, 0x1062, "atl1e_62", "Attansic L1E 0x1062", 0),

And the images started booting with undionly.kpxe but the script I was using started giving tftp errors. Booting with ipxe.pxe/kpxe/kkpxe I get
Code:
Waiting for link-up on net0.....Down (http://ipxe.org/38086101)

Modified the script I was using to open shell and discovered that I could not ping anything either. Running DHCP gave
Code:
DHCP 0x27f64 entering discovery state
DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 could not transmit UDP packet: Error 0x7f86216b (http://ipxe.org/7f86216b)
DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 could not transmit UDP packet: Error 0x7f86216b (http://ipxe.org/7f86216b)
DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 could not transmit UDP packet: Error 0x7f86216b (http://ipxe.org/7f86216b)
DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 could not transmit UDP packet: Error 0x7f86216b (http://ipxe.org/7f86216b)
Error 0x040ee19 (http://ipxe.org/040ee19)

And running dhcp again right after gave
Code:
DHCP 0x27f64 entering discovery state
DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 DHCPOFFER from 10.1.1.1:67 (10.1.1.10) for 10.1.1.104
.DHCP 0x27f64 DHCPDISCOVER
DHCP 0x27f64 DHCPOFFER from 10.1.1.1:67 (10.1.1.10) for 10.1.1.104
.DHCP 0x27f64 entering request state
.DHCP 0x27f64 DHCPREQUEST to 10.1.1.10:67 for 10.1.1.104
DHCP 0x27f64 DHCPACK from 10.1.1.1:67 (10.1.1.10) for 10.1.1.104

After a ton of changing and testing I found that these modifications work for the script.
Code:
#!ipxe
ifclose
ifopen && goto bootme || goto netstart
:netstart                                       #modified
dhcp && goto netboot || goto netstart            #modified
:setserv
echo -n Please enter tftp server: && read next-server && goto bootme
:bootme
isset ${next-server} && goto netboot ||
set next-server ${proxydhcp/next-server}
isset ${next-server} && goto netboot || goto netstart
:netboot
ping -c 1 *GATEWAY IP* || goto netstart          #modified
chain tftp://${next-server}/default.ipxe || shell


I am ecstatic that it is working now and I can once again image all of our laptops, but if anyone has anything they want me to try I am happy to.


RE: Dell laptop hangs on initialsing devices - robinsmidsrod - 2015-03-09 11:32

If you're using undionly.kpxe you're not using the atl1c driver. If you want to test from scratch that the atl1c driver is working with your additional code then you should be cold-booting the machine via usb stick using ipxe.usb. Then you should go through the test at http://ipxe.org/dev/driver to verify what parts work and which do not. If every test actually passes then you should submit the code change to the mailing-list so that it can be included. If some of the tests fail, then you should report that to the mailing-list as well.

You could also test undionly.kpxe using the driver test mentioned above, to ensure it is behaving properly on your hardware. If it doesn't, that also warrants a bug report to the mailing-list.

It does seem like you have some partial success according to the logs above, so it would be good to figure out exactly what is failing and what is working.