[syslinux] syslinux vs isolinux - com32 serial port output problem

Janz, Burt BJANZ at harris.com
Thu May 12 11:14:31 PDT 2016


Hi Geert,

I'm building syslinux 6.04 from scratch to prevent any issues with mismatched com32 modules.  This gives me a "pure" set of modules as well as "pure" isolinux and syslinux cores.

menu.c32 works perfectly on both the USB and CD boot media: I can move around the menu and select the command that I wish to use.  In all cases, both the USB and CD boot properly into the Linux kernel.  I cannot plug both a USB and CD into this system at the same time, so I'm quite sure that I'm booting from the correct media.  For that matter, the BIOS even says "Boot from CD" and displays the isolinux-debug.bin messages before the menu appears - but only when booting from CD.

The problem manifests itself as a failure to send characters to COM2 only when booting the CD.

If you look inside com32/menu/menumain.c right near the bottom of the file, you'll see "if (cmdline)" IIUC that's where the fully formatted command line is handed off from the menu to "execute()".  I added a "send_rdu_message()" function directly before "if (cmdline)".

My "send_rdu_message()" sets up the serial port (loads the speed divisor, enables the port, etc) and then pumps characters one at a time to the serial port (via "outb(ch,COM2+THR)".  This works properly when I boot the system from the USB drive.

Since I'm using the same menu.c32 file on both USB and CD, there should be no difference: I should see the characters on COM2 whether booting USB or CD.

So my question is this: is there something operationally different in the way isolinux.asm calls menu.c32? And could this be at the core of my problem?

Thanks!

\burt



More information about the Syslinux mailing list