*BSD News Article 25785


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]