[syslinux] PXE-Boot fails after reboot with kernel 2.6.x

Paul Whittaker paw at si1.dod.gov.au
Mon Aug 22 20:20:38 PDT 2005


>André Weidemann wrote:
>  
>
>>Hello list,
>>I've been using PXE Boot for quite some time now and it has been working 
>>without any problems.
>>I'm using a Biostar M7VIZ mainboard with a VIA KM400 chipset, and 
>>VIA-Rhine VT6102 NIC.
>>
>>Yesterday I upgrade the Kernel on my net-boot machine from 2.4.24 to 
>>2.6.12.
>>When I power on the machine it boots up normally.
>>However, when I reboot the machine, the mainboards PXE-ROM only displays 
>>"PXE-M0F: Exiting Intel PXE ROM". It does not even try to retrieve 
>>anything via DHCP it just prints the above message, nothing more. If I 
>>power off the machine and back on then it is booting again. The above 
>>phenomenon is reproduceable.
>>
>>The really weird thing however... If I switch back to my 2.4.25 kernel 
>>then everything is working a fine after a reboot.
>>
>>The whole thing looks like a kernel problem but I wouldn't know where to 
>>start searching. I reconfigured the 2.6.12 kernel a few times and even 
>>tried the 2.6.13-rc6 kernel but without any luck.
>>
>>    
>>
>
>This doesn't have anything to do with syslinux, but...
>
>I can see three possibilities:
>
>a. Different reboot method (e.g. ACPI versus cold restart.)
>b. Simple boot flag support in 2.6.
>c. Some other kind of ACPI weirdness.
>
>You might want to start by disabling ACPI in 2.6.
>
>	-hpa
>  
>
I encountered the exact same problem with an MSI MS-6738 mainboard (Via 
KM266 and Via Rhine VT6102).

It appears that this is a problem with power state and Wake-On-Lan 
behaviour that affects certain Via Rhine chipsets when running kernels 
later than 2.6.8.  Google "Via Rhine WOL vs PXE" for the relevant kernel 
forum thread.  There is a somewhat contentious one-line patch that will 
fix the problem for you (but will possibly break WOL for others):

--cut
--- linux-2.6.12.5/drivers/net/via-rhine.c.orig 2005-06-18 
05:48:29.000000000 +1000
+++ linux-2.6.12.5/drivers/net/via-rhine.c      2005-08-23 
10:46:14.000000000 +1000
@@ -1935,7 +1935,7 @@
        }
 
        /* Hit power state D3 (sleep) */
-       iowrite8(ioread8(ioaddr + StickyHW) | 0x03, ioaddr + StickyHW);
+/*     iowrite8(ioread8(ioaddr + StickyHW) | 0x03, ioaddr + StickyHW); */
 
        /* TODO: Check use of pci_enable_wake() */

--cut
 
It worked for me!




More information about the Syslinux mailing list