Hi! Using the following extlinux.conf serial 0x2f8 57600 0x013 # that is, RTS/CTS flow control on COM2 prompt 1 timeout 100 say Select 'linux' or 'xen'. say Automatically booting 'xen' in 10 seconds. default xen label linux kernel /vmlinuz-2.6.18-6-686 append initrd=/initrd.img-2.6.18-6-686 root=/dev/mapper/xen1-root ro console=tty0 console=ttyS1,57600n8r noresume label xen kernel mboot.c32 append /xen-3.2-1-i386.gz com2=auto,8n1 console=com2L,vga dom0_mem=256M --- /vmlinuz-2.6.18-6-xen-686 root=/dev/mapper/xen2-root ro xencons=xvc console=tty0 console=xvc noresume 3 --- /initrd.img-2.6.18-6-xen-686 I get this output on my monitor: EXTLINUX 3.63 2008-04-10 EBIOS Copyright (C) 1994-2008 H. Peter Anvin Select 'linux' or 'xen'. Automatically booting 'xen' in 10 seconds. boot: Which is perfectly fine, but I'm deprived of the 'say' output when looking at the serial console (lo', EBIOS is also missing! And a CR after the multiboot copyright string!) EXTLINUX 3.63 2008-04-10 Copyright (C) 1994-2008 H. Peter Anvin boot: COM32 Multiboot loader v0.2. Copyright (C) 2005-2006 Tim Deegan. Kernel: /xen-3.2-1-i386.gz com2=auto, Can somebody confirm that it's a bug? -- Thanks, Feri.
Ferenc Wagner wrote:> > EXTLINUX 3.63 2008-04-10 EBIOS Copyright (C) 1994-2008 H. Peter Anvin > Select 'linux' or 'xen'. > Automatically booting 'xen' in 10 seconds. > boot: > > Which is perfectly fine, but I'm deprived of the 'say' output when > looking at the serial console (lo', EBIOS is also missing! And a CR > after the multiboot copyright string!) > > EXTLINUX 3.63 2008-04-10 Copyright (C) 1994-2008 H. Peter Anvin > > > boot: > COM32 Multiboot loader v0.2. Copyright (C) 2005-2006 Tim Deegan. > Kernel: /xen-3.2-1-i386.gz com2=auto, > > Can somebody confirm that it's a bug?It's easy enough to see how the EBIOS would be missing - the banner is printed on the screen before the config file is written, so it's issued separately for the serial console. The CR from the multiboot module is also reasonably easy to explain (it's a C environment, and at some point \n -> \r\n). However, "say" not outputting on the serial console is weird and serious. I will look into it. -hpa
Ferenc Wagner wrote:> >> Compiling with NASM 2.02 and then running my Extlinux+vesamenu.c32 test >> under Qemu works just fine. Perhaps you could send me a copy of >> extlinux.bin from your compile session (or even better, tar up a full >> build tree)? > > I will send you the full build tree tomorrow, this GPRS connection > isn't up to that. But I attached extlinux.bin and a disk image > freezing into reboot.c32. >Okay, no need to... the issue is the following: -000011d0 e8 fc 0f 10 00 66 bb 1a 8e fa fc 89 25 9c f7 00 +000011d0 e8 2b 82 0f 00 66 bb 1a 8e fa fc 89 25 9c f7 00 ^^^^^^^^^^^ The code on top is yours, the one on the bottom is mine. This is supposed to be a near jump to the COM32 entrypoint, 0x101000, from source address 0x8dd0 (0x7c00+0x11d0). The correct value for the jump is 0x000f822b (0x1010000-0x8dd0-5); somehow in your case the linker puts 0x00100ffc instead there, which implies that it failed to subtract the PC offset, 0x8dd1 (the -4 is handled by the assembler.) However, either NASM 2.02 or NASM 2.03.01 give, for me: 11d0: e8 fc 0f 10 00 call 1021d1 <pm_entry+0x11d1> 11d1: R_386_PC32 *ABS* 11d0: e8 fc 0f 10 00 call 1021d1 <pm_entry+0x11d1> 11d1: R_386_PC32 *ABS* ... and, as far as I can tell, this is correct behaviour. This implies that the difference is an ld difference. What version of binutils are you running? Mine is: : tazenda 65 ; ld -version GNU ld version 2.17.50.0.18-1 20070731 -hpa
Ferenc Wagner wrote:> >> Compiling with NASM 2.02 and then running my Extlinux+vesamenu.c32 test >> under Qemu works just fine. Perhaps you could send me a copy of >> extlinux.bin from your compile session (or even better, tar up a full >> build tree)? > > I will send you the full build tree tomorrow, this GPRS connection > isn't up to that. But I attached extlinux.bin and a disk image > freezing into reboot.c32. >Okay, I installed Debian Etch under KVM, and was able to reproduce this problem. It appears to be a problem with ld 2.17, which is the default version in Etch; it does not depend on the version of NASM. There isn't all that much I can do about it, other than use an indirect call here (see patch.) I'm slightly hesitant to add this patch to the main code, though, to support a very old and obviously broken linker. -hpa -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: diff URL: <http://www.zytor.com/pipermail/syslinux/attachments/20080623/4dfb06ce/attachment.ksh>
Maybe Matching Threads
- error messages when rebuilding centosplus kernel
- lld mishandling R_X86_64_PC32 relocations
- [rfc] standalone kinit/resume
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC