ukbd attachment and root mount

Jeremy Chadwick koitsu at
Wed Nov 12 04:33:16 PST 2008

On Wed, Nov 12, 2008 at 02:20:41PM +0200, Andriy Gapon wrote:
> on 12/11/2008 14:14 Jeremy Chadwick said the following:
> > On Wed, Nov 12, 2008 at 01:58:58PM +0200, Andriy Gapon wrote:
> [snip]
> >> 2. if ukbd driver is not attached then I don't see any way USB keyboard
> >> would work in non-legacy way
> > 
> > Regarding #2: at which stage?  boot0/boot2/loader require an AT or PS/2
> > keyboard to work.  None of these stages use ukbd(4) or anything -- there
> > is no kernel loaded at this point!!  Meaning: if you have a USB keyboard,
> > your BIOS will need to have a "USB Legacy" option to cause it to act as
> > a PS/2 keyboard, for typing in boot0/boot2/loader to work.
> > 
> > Device hints are for kernel drivers, once the kernel is loaded.
> Jeremy,
> I understand all of this.
> In subject line and earlier messages I say that I am interested in
> mountroot prompt - the prompt where kernel can ask about what device to
> use for root filesystem.
> Essentially I would like kernel to recognize USB keyboard (and disable
> all the legacy stuff if needed) before it prompts for the root device.

I fully understand that fact.  However, I don't see the logic in that
statement.  You should be able to remove and add a keyboard at any time
and be able to type immediately.  Meaning: I don't see why when the
keyboard recognition is performed (e.g. before printing mountroot or
after) matters.  It should not.  I think this is a red herring.

I've seen the problem where I have a fully functional USB keyboard in
boot0/boot2/loader and in multi-user, but when booting into single-user
or when getting a mountroot prompt, the keyboard does not function.
When the mountroot prompt is printed (before or after ukbd attached)
makes no difference for me in this scenario -- I tested it many times.

It's very possible that "something" (kbdcontrol?) is getting run only
during late stages of multi-user, which makes the keyboard work.  But
prior to that "something" being run (but AFTER boot2/loader), the
keyboard is not truly usable.

I hope everyone here is also aware of that fact that not all keyboards
are created equal.  Case in point (and this reason is exactly why I
am purchasing a native PS/2 keyboard, as USB4BSD doesn't work with
all USB keyboards right now):

The bottom line:

FreeBSD cannot be reliably used with a USB keyboard in all
circumstances.  And that is a very sad reality, because 90% of the
keyboards you find on the consumer and enterprise market are USB --
native PS/2 keyboards are now a scarcity.

Do not even for a minute tell me "buy a USB-to-PS2 adapter", because the
"green ones" that come with USB mice do not work with USB keyboards.  I
have even bought a "purple" USB-to-PS2 keyboard adapter from Amazon,
specifically for this purpose, and it *does not work*.  I found out
weeks later the adapters only work on CERTAIN models of USB keyboards,
depending upon how they're engineered.

What really needs to happen here should be obvious: we need some form of
inexpensive keyboard-only USB support in boot2/loader.

I would *love* to know how Linux and Windows solve this problem.

| Jeremy Chadwick                                jdc at |
| Parodius Networking              |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

More information about the freebsd-usb mailing list