> Date: Thu, 9 Mar 2017 16:13:01 +0100
> From: Martin Pieuchot <m...@openbsd.org>
> 
> On 09/03/17(Thu) 14:48, Mark Kettenis wrote:
> > > Date: Thu, 9 Mar 2017 14:04:04 +0100
> > > From: Martin Pieuchot <m...@openbsd.org>
> > > 
> > > Many of us have x86 machines with a USB keyboard that's unusable in
> > > ddb(4).  That's generally because the BIOS presents a fake pckbd(4)
> > > to the OS:
> > > 
> > >   pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> > >   pckbd0 at pckbc0 (kbd slot)
> > >   wskbd0 at pckbd0: console keyboard, using wsdisplay0
> > > 
> > > Some BIOSes allow you to disable this emulation.  While this might
> > > allow you to have a working USB keyboard in ddb(4) it generally means
> > > you lose input in the bootloader.
> > > 
> > > So the diff below introduces a new sysctl(3) to work around this problem.
> > > Adding the following line in your /etc/sysctl.conf will force your first
> > > USB keyboard to re-attach itself after cold boot and become the default
> > > console keyboard.  That means you now have a working keyboard in ddb(4)!
> > > 
> > >   sysctl machdep.fakepckbc=1
> > > 
> > > I hope this will improve the content of bug reports.
> > 
> > Can't you already achieve this by disabling pckbc(4) in the kernel
> > config?  So something like this:
> > 
> > # config -ef /bsd
> > ...
> > ukc> disable pckbc
> > 250 pckbc0 disabled
> > ukc> quit
> 
> This doesn't work.
> 
> The reason is that pckbc_cnattach() doesn't care about the value of
> ``cf_fstate''.  We could fix that of course but I see two downside:
> 
> First we want "boot bsd -c" and early ddb(4) to work.  At least until
> the *hci(4) driver did its handshake with the BIOS we want a pckbc
> input console.

Right.  We want the SMM-based pckbc(4) emulation that the BIOS
provides to continue to work until we whack the usb controller.

> Second downside is this one:
> 
> > Only downside is that it doesn't stick.  If you install a new kernel
> > you need to repeat the excercise.
> 
> This is only good for development, not for users having an unexpected
> panic.

It's a pity that we need a knob for this, but it seems to be very
hard, if not impossible, to check whether the emulation is there.  So
your diff makes sense.  Apart from the bikeshed about the name
(fakepckbdc seems a bit weird, usbconsole makes more sense to me),
this is ok kettenis@

Reply via email to