dcmartin@sun.com (David C. Martin) (07/22/89)
I have a Sun4/110 with the new type 4 keyboard (which is actually okay, although there are always problems w/ keyboards other than the z19). Anyway, I wanted to determine what my keyboard type was and wrote the following quick program to "do the right thing" so I could remap the keys. However, I get SUN3 as my keyboard type (not SUN4). #include <sys/file.h> #include <sys/types.h> #include <sundev/kbd.h> #include <sundev/kbio.h> main(argc, argv) int argc; char** argv; { int fd, type; /* open descriptor on keyboard device */ if ((fd = open("/dev/kbd", O_RDONLY)) == -1) { perror("open"); exit(-1); } /* do ioctl on device */ if (ioctl(fd, KIOCTYPE, &type) == -1) { perror("ioctl"); exit(-1); } /* close descriptor */ close(fd); /* print type of keyboard */ switch(type) { case KB_KLUNK: printf("KLUNK\n"); break; case KB_VT100: printf("VT100\n"); break; case KB_ASCII: printf("ASCII\n"); break; case KB_SUN2: printf("SUN2\n"); break; case KB_SUN3: printf("SUN3\n"); break; case KB_SUN4: printf("SUN4\n"); break; } } What I would like to know is where the keyboard type is specified... I tried the eeprom program and it thinks the keyboard is type 0 (Micro Switch). Is the type specified in the kernel conf file, or is it determined at startup? Thanks in advance. dcm