Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!sgiblab!rtech!amdahl!amdahl!agc From: agc@uts.amdahl.com (Alistair G. Crooks) Newsgroups: comp.os.386bsd.bugs Subject: Re: Bug in Console Driver? Message-ID: <71tn03fNe0Vk00@amdahl.uts.amdahl.com> Date: 10 Jan 94 12:19:38 GMT References: <1994Jan8.143107.14276@gaboon.UUCP> Organization: Amdahl Corporation, Sunnyvale CA Lines: 83 In article <1994Jan8.143107.14276@gaboon.UUCP> dmk@gaboon.UUCP (Dave Knight) writes: >NetBSD 0.9 (from the InfoMagic CDROM) runs fine for me ( 12MB RAM, 386DX/33, >Conner IDE 340MB (WD ctlr), CDC-9471 300MB SCSI (AHA1542B ctlr), WD8003E Enet, >and a Herc/MONO video card, except for one ANNOYING thing: > > If I hit any of the "lock" keys (CapsLock, ScrollLock or NumLock) > on the console (pc3) the keyboard HANGS! > >I can rlogin from another node and kill the pgms/shell and I get a login >prompt on the console, login again and everything is OK until the next time >I (accidentally) hit one of the "magik" keys. > >As the problem does not occur for anything other than the console keyboard >(when rlog'd in from another node, the lock keys work as expected), I suspect >that to problem is in the console keyboard driver. I too have this problem, with both NetBSD 0.9 and NetBSD-current and solved it by never updating the LEDs on the console keyboard. At the same time, I hard-coded my CapsLock key to be a Control key. The diffs are as follows (BTW, pumpy is the name of the box that has this problem, thus "ident PUMPY" in the kernel config file defines the CPP symbol "PUMPY") : *** pccons.c.old Wed Dec 29 13:33:05 1993 --- pccons.c Wed Dec 29 19:23:12 1993 *************** *** 1349,1355 **** --- 1349,1359 ---- KP, "*", "*", "*", /* 55 kp * */ ALT, "", "", "", /* 56 alt */ ASCII, " ", " ", "\000", /* 57 space */ + #ifdef PUMPY + CTL, "", "", "", /* 58 ctl */ + #else CAPS, "", "", "", /* 58 caps */ + #endif FUNC, "\033[M", "\033[Y", "\033[k", /* 59 f1 */ FUNC, "\033[N", "\033[Z", "\033[l", /* 60 f2 */ FUNC, "\033[O", "\033[a", "\033[m", /* 61 f3 */ *************** *** 1429,1439 **** #if 0 int response; #endif ! if (kbd_cmd(KBC_MODEIND) != 0) printf("Timeout for keyboard LED command\n"); else if (kbd_cmd(scroll | (num << 1) | (caps << 2)) != 0) printf("Timeout for keyboard LED data\n"); #if 0 else if ((response = kbd_response()) < 0) printf("Timeout for keyboard LED ack\n"); --- 1433,1444 ---- #if 0 int response; #endif ! #ifndef PUMPY if (kbd_cmd(KBC_MODEIND) != 0) printf("Timeout for keyboard LED command\n"); else if (kbd_cmd(scroll | (num << 1) | (caps << 2)) != 0) printf("Timeout for keyboard LED data\n"); + #endif #if 0 else if ((response = kbd_response()) < 0) printf("Timeout for keyboard LED ack\n"); >BTW, is there a driver or patch that supports multiple virtual consoles >like those available in the various SYSV Unix's and clones? Check out pcvt. To quote from the announcement: > The new pcvt beta 11 has been made available on the > anonymous FTP server: > falcon.depaul.edu (140.192.1.7) > under > pub/unix/386bsd/pcvt Hope this helps: Alistair -- Alistair G. Crooks (agc@uts.amdahl.com) +44 252 346377 Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK. [These are only my opinions, and certainly not those of Amdahl Corporation]