Subject: Re: Some feedback about netbsd on indigo --> part II: keyboard and
To: Pierre Letouzey <Pierre.Letouzey@pps.jussieu.fr>
From: Stephen M. Rumble <email@example.com>
Date: 10/30/2006 17:11:16
Quoting Pierre Letouzey <Pierre.Letouzey@pps.jussieu.fr>:
> Hi all (again)
> This mail describes a second issue encountered when playing with netbsd on
> an Indigo (IP20). More information about the general context of what
> I'm doing in my first mail (the one about a kernel panic).
> This second issue isn't a big deal, but it's quite annoying
> nonetheless: as soon as the netbsd kernel (version 3.0.1) has started
> to boot, the keyboard isn't working anymore. By using another machine
> with a working keyboard (an IP22 indigo 2), I've managed to prepare a
> nfs filesystem that doesn't need any keystroke to boot and launch an
> ssh daemon. This way I can connect to my IP20 box. But that isn't
> perfect: if something gets wrong during a later boot, I'll be back in
> trouble. I'm currently looking for a console serial cable to see if it
> helps. Btw, I've also tried a 3.1-RC4 kernel without more success.
Interesting. I don't have my personal tree handy to verify that we've
neglected to commit something somewhere, but it looks like the zskbd
driver is never being set as the console input in
src/sys/arch/sgimips/sgimips/console.c. I can't remember if Sekiya-san
said it was unnecessary for some reason.
My guess is that by attaching zskbd0, we're handling the keyboard
interrupts that were previously being handled by the ARCBIOS prom.
Since they're not associated with the console, you're seeing no
output. I suppose that when you panic, the kernel is polling ARCBIOS
for input, which it is now able to succeed with since we're no longer
servicing the serial controller.
You have a few possible solutions:
1) Add a call to 'zskbd_cnattach()' to the relevant part of console.c
(look for 'Attach zskbd here'). I think that the unit number is 1 and
channel number is 0. That is, 'zskbd_cnattach(1, 0)'.
2) Remove zskbd (and perhaps zsms, too) from your kernel configuration
and let ARCBIOS handle the input. This is a little bit bad, as ARCBIOS
will interpret ctrl+c and some other special sequences as 'drop back
Naturally, it very quickly becomes a nuisance.
3) Get a serial cable and either boot without a monitor, or set
ConsoleOut to 'serial(x)', where 'x' is the desired serial port (0 or
The first two require a kernel compilation (easy enough with the
build.sh framework) and the second needs a mini-din8 serial cable and
null-modem in between. A Macintosh mini-din8 cable will work.
I'd build you something to test, but I haven't any computing resources
to use here for that purpose. It's easy enough to do yourself,
however, or perhaps somebody else will volunteer.