grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems booting Linux via PXE


From: Turner, Ian
Subject: Problems booting Linux via PXE
Date: Wed, 25 Aug 2010 15:02:03 -0400

I’m having some trouble using GRUB to boot Linux via PXE. It seems that for some reason the call to the PXE BIOS fails when retrieving the third packet of the Linux kernel. I don’t have this problem loading multiboot kernels or GRUB modules. This is using GRUB 1.98.
 
I’ve seen the problem on all three servers where I’ve tested, which are as follows:
- A Sun Fire X4100
  - with four Dual Core AMD Opteron(tm) Processor 285 SE
  - Running Intel Boot Agent GE 1.2.50
            Intel Boot Agent PXE Base Code (PXE-2.1 build 086)
- A Sun Fire X4150
  - with two Intel X5440 processors
  - Running Intel Boot Agent GE 1.2.42
            Intel Boot Agent PXE Base Code (PXE-2.1 build 085)
- A Dell PowerEdge R610
  - With two Intel X5570 processors
  - Running Broadcom NetXtreme II Ethernet Boot Agent v5.0.5
            Broadcom UNDI PXE-2.1 v5.0.5
            Broadcom Base Code PXE-2.1 v1.1.1
 
On the Sun servers, the relevant call to grub_pxe_call(GRUB_PXENV_TFTP_READ) at fs/i386/pc/pxe.c:300 simply does not return. On the Dell server, some dots (2-200) are printed to the console at the time this call is placed, and sometimes the call does return, but with a (invalid) status code of 65536. Other times the call hangs after printing the dots.
 
Looking at loader/i386/linux.c, the grub_file_read() at line 638 works, as does the one at line 698. It’s the third read, at line 891, which creates the failure.
 
I should emphasize that the PXE code seems to work fine for everything else. I am able to load dozens of GRUB modules, multiple configuration files, and multiboot and linux16 kernels with no problem. It’s only the bzImage that seems to create trouble, and only the third packet of that image. It doesn’t seem to matter what kernel I use; at least, I see this problem with RHEL kernels from 5.2 up to 5.5.
 
I hypothesize that something between linux.c line 698 and linux.c line 891 writes to a region of memory reserved by the PXE bios. Is there a way to test this theory?
 
Has anyone else been able to make this work? Is there something simple that I am missing? I would love to hear your thoughts. Also, if I should take this over to grub-help or grub-bugs, let me know.
 
Cheers,
 
--Ian Turner
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]