|
OpenBSD General Other questions regarding OpenBSD which do not fit in any of the categories below. |
|
Thread Tools | Display Modes |
|
|||
External keyboard not recognized by laptop
I have an Apple Extended ADB Keyboard (the kind with mechanical key switches) connected to a Thinkpad X220 Tablet via a Griffin iMate USB to ADB adapter. This keyboard isn't playing nice with OpenBSD.
Before you run away FAST, please note: I am NOT asking for help with this truly esoteric (and beloved) piece of hardware. For reasons that will (hopefully) become clear, I believe there might be a software solution that involves reconfiguring something that loads before xinit(1). To make sure it really is the keyboard and not some other piece of attached hardware or my window manager, I disabled ~/.xinitrc and powered-off the laptop, then disconnected all external hardware except the ADB keyboard and adapter before restarting and booting into the console. This is my usual way of running X. I don't use a graphical log-in manager. I tried logging in. The ADB keyboard didn't respond. I pressed some keys and nothing appeared on the screen. I tried escaping to an alternate console (Ctrl-Alt-F2, etc.). Same non-response. The laptop keyboard worked. I could log in and run X, and I could escape to an alternate console. Here's where it gets wierd. After I have run xinit(1) once, the keyboard problem disappears. When I quit X and return to the console, I can still enter text from the ADB keyboard and use the alternate consoles. I tried two other keyboards: a native USB, and a PS2 with a USB adapter. The problem only occurs with the ADB keyboard. I ran dmesg(8) immediately after booting, immediately after starting X, and immediately after quitting X. The result was the same in all three cases -- the Griffin iMate and converted keyboard are clearly being recognized by the kernel: Code:
OpenBSD 6.2-beta (GENERIC.MP) #104: Mon Sep 18 23:31:27 MDT 2017 deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 4156157952 (3963MB) avail mem = 4023177216 (3836MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xdae9c000 (65 entries) bios0: vendor LENOVO version "8DET58WW (1.28 )" date 02/14/2012 bios0: LENOVO 4299HB4 acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SLIC SSDT SSDT SSDT HPET APIC MCFG ECDT ASF! TCPA SSDT SSDT UEFI UEFI UEFI acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP4(S4) EXP7(S4) EHC1(S3) EHC2(S3) HDEF(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpihpet0 at acpi0: 14318179 Hz acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2492.36 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT cpu0: 256KB 64b/line 8-way L2 cache cpu0: TSC frequency 2492364500 Hz cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges cpu0: apic clock running at 99MHz cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT cpu1: 256KB 64b/line 8-way L2 cache cpu1: smt 1, core 0, package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT cpu2: 256KB 64b/line 8-way L2 cache cpu2: smt 0, core 1, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT cpu3: 256KB 64b/line 8-way L2 cache cpu3: smt 1, core 1, package 0 ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63 acpiec0 at acpi0 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (PEG_) acpiprt2 at acpi0: bus 2 (EXP1) acpiprt3 at acpi0: bus 3 (EXP2) acpiprt4 at acpi0: bus 5 (EXP4) acpiprt5 at acpi0: bus 13 (EXP5) acpiprt6 at acpi0: bus -1 (EXP7) acpicpu0 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), C1(1000@1 halt), PSS acpicpu1 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), C1(1000@1 halt), PSS acpicpu2 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), C1(1000@1 halt), PSS acpicpu3 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), C1(1000@1 halt), PSS acpipwrres0 at acpi0: PUBS, resource for EHC1, EHC2 acpitz0 at acpi0: critical temperature is 99 degC acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: SLPB "LEN0070" at acpi0 not configured "LEN0020" at acpi0 not configured "SMO1200" at acpi0 not configured acpibat0 at acpi0: BAT0 model "42T4881" serial 23489 type LION oem "LGC" acpiac0 at acpi0: AC unit offline acpithinkpad0 at acpi0 "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured acpidock0 at acpi0: GDCK not docked (0) acpivideo0 at acpi0: VID_ acpivout at acpivideo0 not configured acpivideo1 at acpi0: VID_ cpu0: Enhanced SpeedStep 2492 MHz: speeds: 2501, 2500, 2200, 2000, 1800, 1600, 1400, 1200, 1000, 800 MHz pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel Core 2G Host" rev 0x09 inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 3000" rev 0x09 drm0 at inteldrm0 inteldrm0: msi inteldrm0: 1366x768, 32bpp wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation) wsdisplay0: screen 1-5 added (std, vt100 emulation) "Intel 6 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured puc0 at pci0 dev 22 function 3 "Intel 6 Series KT" rev 0x04: ports: 1 com com4 at puc0 port 0 apic 2 int 19: ns16550a, 16 byte fifo com4: probed fifo depth: 0 bytes em0 at pci0 dev 25 function 0 "Intel 82579LM" rev 0x04: msi, address 3c:97:0e:01:d3:57 ehci0 at pci0 dev 26 function 0 "Intel 6 Series USB" rev 0x04: apic 2 int 16 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 azalia0 at pci0 dev 27 function 0 "Intel 6 Series HD Audio" rev 0x04: msi azalia0: codecs: Conexant CX20590, Intel/0x2805, using Conexant CX20590 audio0 at azalia0 ppb0 at pci0 dev 28 function 0 "Intel 6 Series PCIE" rev 0xb4: msi pci1 at ppb0 bus 2 ppb1 at pci0 dev 28 function 1 "Intel 6 Series PCIE" rev 0xb4: msi pci2 at ppb1 bus 3 iwn0 at pci2 dev 0 function 0 "Intel Centrino Advanced-N 6205" rev 0x34: msi, MIMO 2T2R, MoW, address 8c:70:5a:66:70:d0 ppb2 at pci0 dev 28 function 3 "Intel 6 Series PCIE" rev 0xb4: msi pci3 at ppb2 bus 5 ppb3 at pci0 dev 28 function 4 "Intel 6 Series PCIE" rev 0xb4: msi pci4 at ppb3 bus 13 sdhc0 at pci4 dev 0 function 0 "Ricoh 5U823 SD/MMC" rev 0x04: apic 2 int 16 sdhc0: SDHC 3.0, 50 MHz base clock sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma ehci1 at pci0 dev 29 function 0 "Intel 6 Series USB" rev 0x04: apic 2 int 23 usb1 at ehci1: USB revision 2.0 uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 pcib0 at pci0 dev 31 function 0 "Intel QM67 LPC" rev 0x04 ahci0 at pci0 dev 31 function 2 "Intel 6 Series AHCI" rev 0x04: msi, AHCI 1.3 ahci0: port 0: 6.0Gb/s scsibus1 at ahci0: 32 targets sd0 at scsibus1 targ 0 lun 0: <ATA, ST500LM021-1KJ15, 0002> SCSI3 0/direct fixed naa.5000c5008a80503c sd0: 476940MB, 512 bytes/sector, 976773168 sectors ichiic0 at pci0 dev 31 function 3 "Intel 6 Series SMBus" rev 0x04: apic 2 int 18 iic0 at ichiic0 spdmem0 at iic0 addr 0x50: 4GB DDR3 SDRAM PC3-10600 SO-DIMM isa0 at pcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) wsmouse0 at pms0 mux 0 wsmouse1 at pms0 mux 0 pms0: Synaptics clickpad, firmware 8.1, 0x1e2b1 0x940300 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 aps0 at isa0 port 0x1600/31 uhub2 at uhub0 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2 uhub3 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2 uhidev0 at uhub3 port 1 configuration 1 interface 0 "Griffin Technology, Inc. iMate, USB To ADB Adaptor" rev 1.00/3.70 addr 3 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 wskbd1: connecting to wsdisplay0 uhidev1 at uhub3 port 1 configuration 1 interface 1 "Griffin Technology, Inc. iMate, USB To ADB Adaptor" rev 1.00/3.70 addr 3 uhidev1: iclass 3/1 ums0 at uhidev1: 3 buttons wsmouse2 at ums0 mux 0 uhidev2 at uhub3 port 5 configuration 1 interface 0 "Tablet ISD-V4" rev 1.10/1.39 addr 4 uhidev2: iclass 3/0, 17 report ids ums1 at uhidev2 reportid 2: 3 buttons, tip, barrel, eraser wsmouse3 at ums1 mux 0 uhid0 at uhidev2 reportid 17: input=7, output=0, feature=3 uhidev3 at uhub3 port 5 configuration 1 interface 1 "Tablet ISD-V4" rev 1.10/1.39 addr 4 uhidev3: iclass 3/0, 16 report ids uhid1 at uhidev3 reportid 2: input=0, output=0, feature=1 uhid2 at uhidev3 reportid 3: input=0, output=0, feature=3 uhid3 at uhidev3 reportid 5: input=0, output=0, feature=8 uhid4 at uhidev3 reportid 6: input=0, output=0, feature=8 ums2 at uhidev3 reportid 12: 1 button, tip wsmouse4 at ums2 mux 0 uhid5 at uhidev3 reportid 13: input=13, output=0, feature=0 uhid6 at uhidev3 reportid 14: input=0, output=0, feature=2 ums3 at uhidev3 reportid 15: 2 buttons wsmouse5 at ums3 mux 0 ums4 at uhidev3 reportid 16: 1 button, tip wsmouse6 at ums4 mux 0 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (2a548c9d8383d7d3.a) swap on sd0b dump on sd0b wsconsctl(8) shows two keyboards, "pc-xt" (which I presume is the laptop) and "usb" (which I presume is the converted ADB keyboard), even before starting X: Code:
$ doas wsconsctl -a keyboard.type=pc-xt ...................... keyboard.encoding=us ...................... keyboard1.type=usb ...................... keyboard1.encoding=us ...................... display.type=inteldrm display.width=1280 display.height=768 display.depth=32 display.emulations=vt100 display.screentypes=std display.focus=4 display.brightness=100.00% display.screen_on=250 display.screen_off=0 display.vblank=off display.kbdact=on display.msact=on display.outact=on Code:
/* Get keyboard type. */ #define WSKBDIO_GTYPE _IOR('W', 0, u_int) ....................................................... #define WSKBD_TYPE_PC_XT 3 /* PC-ish, XT scancode */ .......................................................................... #define WSKBD_TYPE_USB 5 /* USB, XT scancode */ .......................................................................... #define WSKBD_TYPE_ADB 10 /* Apple ADB keyboard */ .......................................................................... Would it be helpful to post /var/log/Xorg.0.log? I'm not sure what to look for in this file; I didn't see anything obvious when I inspected it. Troubleshooting questions:
It seems like I should be able to reconfigure something so that the converted ADB keyboard is recognized during the boot sequence or find out what X is doing to the keyboard configuration and somehow move that bit of information into the boot sequence. It's also possible that I have completely misinterpreted the problem. I hope there's a way to fix this. I'd really like to get this keyboard fully working. Many thanks to anyone who can offer assistance. |
|
||||
Quote:
|
|
|||
After reading your responses and re-reading my original post, I can see that I wasn't very clear about some things.
I have examined the output of dmesg(8) and wsconsctl(8) more closely. In both cases, there are two recognized keyboards (PC and USB). "PC" is the laptop keyboard; "USB" is the converted Apple keyboard. Code:
$ dmesg .................................................. pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) .................................................. uhub3 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2 uhidev0 at uhub3 port 1 configuration 1 interface 0 "Griffin Technology, Inc. iMate, USB To ADB Adaptor" rev 1.00/3.70 addr 3 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 wskbd1: connecting to wsdisplay0 uhidev1 at uhub3 port 1 configuration 1 interface 1 "Griffin Technology, Inc. iMate, USB To ADB Adaptor" rev 1.00/3.70 addr 3 uhidev1: iclass 3/1 Code:
$ doas wsconsctl -a keyboard.type=pc-xt ...................... keyboard1.type=usb How do I find out what X is doing that makes it possible for this keyboard to function and what do I need to configure to enable this keyboard at boot time? I hope these are the right questions. My goal is to log in and work from the console immediately after booting without having to resort to the laptop keyboard. Last edited by gustaf; 22nd September 2017 at 05:09 AM. Reason: clarity |
|
||||
Quote:
Quote:
If you're not interested in a source code review (and developing your own patch), consider posting a problem report to the bugs@ mailing list. http://www.openbsd.org/faq/faq1.html#Bugs |
|
|||
This is turning into a bigger project than I have time for; I may come back to it eventually.
In the meantime, I have enabled xenodm(1). The X Window System FAQ and /usr/X11R6/README were also helpful. Thanks for helping me sort this out. |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
any consequences to moving a laptop-based installed disk to another different laptop | daemonfowl | OpenBSD General | 7 | 2nd August 2012 04:29 PM |
NVIDIA GeForce 9100 not recognized | ionflux | FreeBSD Installation and Upgrading | 22 | 5th November 2009 08:59 PM |
Keyboards not (recognized? found? functional?) in 4.3/4.4 i386 on amd64 | Jack | OpenBSD Installation and Upgrading | 13 | 26th January 2009 08:37 PM |
Dell R300 bce interface not recognized under 7.0 | jwilson | FreeBSD General | 2 | 28th July 2008 07:39 PM |
RAID array not recognized on new Intel server | clevershark | OpenBSD Installation and Upgrading | 6 | 14th May 2008 09:20 PM |