ukbd attachment and root mount

Jeremy Chadwick koitsu at FreeBSD.org
Wed Nov 12 04:14:12 PST 2008


On Wed, Nov 12, 2008 at 01:58:58PM +0200, Andriy Gapon wrote:
> on 12/11/2008 13:53 Nate Eldredge said the following:
> > On Wed, 12 Nov 2008, Andriy Gapon wrote:
> > 
> >> on 05/11/2008 17:24 Andriy Gapon said the following:
> > [...]
> >>> I have a legacy-free system (no PS/2 ports, only USB) and I wanted to
> >>> try a kernel without atkbd and psm (with ums, ukbd, kbdmux), but was
> >>> bitten hard when I made a mistake and kernel could not find/mount root
> >>> filesystem.
> >>>
> >>> So I stuck at mountroot prompt without a keyboard to enter anything.
> >>> This was repeatable about 10 times after which I resorted to live cd.
> >>>
> >>> Since then I put back atkbdc into my kernel. I guess BIOS or USB
> >>> hardware emulate AT or PS/2 keyboard, so the USB keyboard works before
> >>> the driver attaches. I guess I need such emulation e.g. for loader or
> >>> boot0 configuration. But I guess I don't have to have atkbd driver in
> >>> kernel.
> >>
> >> This turned out not to be a complete solution as it seems that there are
> >> some quirks about legacy USB here, sometimes keyboard stops working even
> >> at loader prompt (this is described in a different thread).
> >>
> >> ukbd attachment still puzzles me a lot.
> >> I look at some older dmesg, e.g. this 7.0-RELEASE one:
> >> http://www.mavetju.org/mail/view_message.php?list=freebsd-usb&id=2709973
> >> and see that ukbd attaches along with ums before mountroot.
> >>
> >> I look at newer dmesg and I see that ums attaches at about the same time
> >> as before but ukbd consistently attaches after mountroot.
> >> I wonder what might cause such behavior and how to fix it.
> >> I definitely would like to see ukbd attach before mountroot, I can debug
> >> this issue, but need some hints on where to start.
> > 
> > I haven't been following this thread, and I'm pretty sleepy right now,
> > so sorry if this is irrelevant, but I had a somewhat similar problem
> > that was fixed by adding
> > 
> > hint.atkbd.0.flags="0x1"
> > 
> > to /boot/device.hints .

To those reading, the above setting enables the following option:

   bit 0 (FAIL_IF_NO_KBD)
      By default the atkbd driver will install even if a keyboard is not
      actually connected to the system.  This option prevents the driver
      from being installed in this situation.

> I can try this, but I think this wouldn't help for two reasons:
> 1. I already tried kernel without atkb at all
> 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 Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list