Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: multiple keyboards and DDB, DELL DRAC



Wolfgang Solfrank <Wolfgang%Solfrank.net@localhost> writes:

> Hi,
>
>> I have a Dell R610 with a DRAC, and on boot it finds 3 keyboards:
>>
>>    pckbc/pckbd, no apparent physical reality (DRAC?  emulation from ukbd0?)
>>    ukbd0, no apparent physical reality (DRAC?)
>>    ukbd1, a keyboard that's plugged in
>>
>> These all get put in a wsmux and normal usage works.  But, ctrl-alt-esc
>> on ukbd1 doesn't, and from reading ukbd.c I see that a) usb can't be the
>> console keyboard if pckbd is found and b) the first usb keyboard is
>> selected for console.
>
> Note that DDB can't use USB keyboards.  This is because USB requires
> quite a lot of stuff in working condition which can't be guarranteed
> when DDB is running.  Since interrupts are disabled when running in
> DDB, using this would require polling support for the (various)
> USB hostadapters.  Additional things to consider are what to do with
> any USB packets from any of the other devices that might want to
> communicate with the host.

I agree that it seems very obvious that this is fraught with perils.
However, it actually mostly works.

On an i386 box with no pckbd (presumably legacy kbd is off in the bios):

ukbd0 at uhidev0
wskbd0 at ukbd0: console keyboard, using wsdisplay0

I can hit ctrl-alt-esc on the usb keyboard, and bt shows (from memory)
ukbd_decode going to wskbd_input to wskbd_translate.  There is code in
ukbd.c to defer the ukbd processing for a tick via a callout (if we are
console) to avoid ddb being entered at the hardware interrupt level.

> Actually, in theory it should be possible to use USB keyboards in
> legacy mode.  You need to enable this in the BIOS, disable any USB
> controllers in the kernel and probably disable ACPI, too.  Note that
> I haven't tried this.

Hmm, that could work too.

Attachment: pgpzOds9XfHKc.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index