boot0sio working for anyone?

cpghost cpghost at
Sat Feb 9 00:45:27 UTC 2008

On Fri, Feb 08, 2008 at 01:12:43PM -0700, Scott Long wrote:
> Bruce M. Simpson wrote:
>> Ulrich Spoerlein wrote:
>>> So, is boot0sio supposed to just work with a cheap USB->RS232 dongle at
>>> the other end? I don't know how this paragraph from boot0cfg(8) is
>>> affecting me.
>> boot0sio is wholly dependent upon BIOS support for addressing the on-board 
>> COM1 port. It is not intended (read: very unlikely) to work with USB 
>> dongles.
>> If your BIOS does not support the call that it uses, then the symptoms 
>> will be similar to what you've seen. Unfortunately there is just not 
>> enough space in the MBR to implement any workarounds for this.
> Yeah, unless the BIOS provides traditional SIO emulation via USB (similar 
> idea to providing tradition AT keyboard emulation via USB)
> then boot0sio won't work.  It's not very feasible to put a USB
> stack into the early boot loader anyways.  It's somewhat possible
> (at least, using a chained boot loader), but not very feasible.
> Scott

Yes, but the other way around is possible with a little help from a
patched or more capable BIOS. Such a BIOS could intercept the "display
character" (int $0x10, ah=0xe), "check for keypress" (int 0x16, ah=0x1),
and "get keypress" (int 0x16, ah=0x0) BIOS calls and reroute them to
or from the serial interface.

With such a BIOS, /boot/boot0 would run just fine, because the
bootloader would be oblivious to this rerouting.

Isn't it the approach taken by Soekris devices? These boxes have no
VGA nor keyboard chips, yet they boot just fine with /boot/boot0, and
display everything on the 9600 8N1 console port.

The only thing to look out for on those headless boxes is to turn off
the virtual consoles and enable getty on the serial device in /etc/ttys,
so that you can login from there:

ttyd0   "/usr/libexec/getty std.9600"   dialup  on  secure

but this is no longer a bootloader issue anyway.


Cordula's Web.

More information about the freebsd-current mailing list