Re: BTX failure [Was: Re: pxeboot problems with BETA2]

From: Emanuel Strobl <Emanuel.strobl_at_gmx.net>
Date: Tue, 23 Aug 2005 15:34:20 +0200
Am Mittwoch, 17. August 2005 21:29 CEST schrieb John Baldwin:
> On Wednesday 17 August 2005 10:43 am, Emanuel Strobl wrote:
> > Am Dienstag, 16. August 2005 19:52 CEST schrieb Brooks Davis:
> > > On Tue, Aug 16, 2005 at 02:05:08PM +0200, Emanuel Strobl wrote:
> > > > Hello,
> > > >
> > > > I just wanted to ask if somebody had success with providing pxe
> > > > boot service under 6-BETA2.
> > > > I have two clients, one NET4501 wich just reboots after fetching
> > > > pxeldr via TFTP and a Laptop which just hangs when NFS-loading
> > > > kernel.
> > > >
> > > > I'm about to investigate further, but maybe someone can confirm
> > > > that in general PXE booting with BETA2 is working... Or not...
> > >
> > > I'm PXE booting systems with RELENG_6 as of 7/27.  I'll probably do
> > > an update some time this week.
> >
> > Ok, I read som files and found -DBTX_SERIAL. This gives me the
> > following dump before the box reboots:
> > uilding the boot loader arguments
> > Relocating the loader and the BTX
> > Starting the BTX loader
> >
> > int=00000006  err=00000000  efl=00010202  eip=00023c21
> > eax=00000000  ebx=000384e0  ecx=000384e0  edx=00000001
> > esi=00001000  edi=00000029  ebp=00086770  esp=00086758
> > cs=002b  ds=0033  es=0033    fs=0033  gs=0033  ss=0033
> > cs:eip=0f 4f c2 a3 c8 7d 03 00-8d 41 0c c7 41 04 fd 44
> >        ff 55 89 39 c6 44 39 ff-fe 83 c4 0c 5b 5e 5f 5d
> > ss:esp=b4 7d 03 00 29 00 00 00-00 10 00 00 00 00 00 00
> >        83 57 02 00 02 00 00 00-a0 67 08 00 98 1c 02 00
> > BTX halted
> >
> > Any clue? Regarding cvsweb nothing changed recently, and I had net4501
> > boxes pxebooting fine with FreeBSD 5.3.....
>
> Hmm.  Int 6 is an invalid opcode exception:

I have no ideay why, but over night I recompiled my PXEROOT system (BETA3 
now) and the problem vanished. I can't see any changes in the cvsweb, so I 
have absolutely no idea what the problem was. Hardware is exactly the 
same.
What have I missed?

Thanks,

-Harry

>
> 00000000  0F4FC2            cmovg eax,edx
> 00000003  A3C87D0300        mov [0x37dc8],eax
> 00000008  8D410C            lea eax,[ecx+0xc]
> 0000000B  C74104FD44FF55    mov dword [ecx+0x4],0x55ff44fd
> 00000012  8939              mov [ecx],edi
> 00000014  C64439FFFE        mov byte [ecx+edi-0x1],0xfe
> 00000019  83C40C            add esp,byte +0xc
> 0000001C  5B                pop ebx
> 0000001D  5E                pop esi
> 0000001E  5F                pop edi
> 0000001F  5D                pop ebp
>
> I'm guessing that there's been a stack overflow or some such.  Your eip
> is in the loader.  You can try using the loader.sym from your loader
> binary to look up that eip address.  In the loader here on my laptop
> it's in the write function:
>
> % nm /usr/obj/usr/src/sys/boot/i386/loader/loader.sym | sort
> ...
> 00023b9c T readdirfd
> 00023c14 T write
> 00023d18 T lseek
>
> If you want to be able to use gdb, then rebuild libstand with debugging
> (make DEBUG_FLAGS=-g) and rebuild all of /sys/boot with debugging (make
> DEBUG_FLAGS=-g).  You can then
> use /usr/obj/usr/src/sys/boot/i386/pxeldr/pxeboot for your pxeboot and
> you can run gdb on /usr/obj/usr/src/sys/boot/i386/loader/loader.sym and
> you can do listings of the addresses for eip, etc.

Received on Tue Aug 23 2005 - 11:34:53 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:42 UTC