On Wed, Oct 28, 2020 at 08:54:13PM +0100, Mathias Schmocker wrote:
> Hello,
> Here a minimal diff to solve the swapped keys of the internal ISO
> keyboard/trackpad found on my older Macbook1,1 13inch black laptop

Looks ok.

One nit: I would propose changing the name of the device.
It seems the commonly used name for this keyboard is GEYSER3_ISO.

I will commit the attached diff but change the name to APPLE_GEYSER3_ISO
unless anyone has objections.

> (6.8 i386 release)
> cvs diff: Diffing .
> Index: ukbd.c
> ===================================================================
> RCS file: /home/cvs/src/sys/dev/usb/ukbd.c,v
> retrieving revision 1.79
> diff -u -p -r1.79 ukbd.c
> --- ukbd.c    23 Aug 2020 11:08:02 -0000      1.79
> +++ ukbd.c    27 Oct 2020 19:18:51 -0000
> @@ -259,6 +259,7 @@ ukbd_attach(struct device *parent, struc
>                               case USB_PRODUCT_APPLE_GEYSER_ISO:
>                               case USB_PRODUCT_APPLE_WELLSPRING6_ISO:
>                               case USB_PRODUCT_APPLE_WELLSPRING8_ISO:
> +                             case USB_PRODUCT_APPLE_INT_KBTP_218_ISO:
>                                       sc->sc_munge = ukbd_apple_iso_munge;
>                                       break;
>                               case USB_PRODUCT_APPLE_WELLSPRING_ISO:
> Index: usbdevs
> ===================================================================
> RCS file: /home/cvs/src/sys/dev/usb/usbdevs,v
> retrieving revision 1.720
> diff -u -p -r1.720 usbdevs
> --- usbdevs   3 Aug 2020 14:25:44 -0000       1.720
> +++ usbdevs   27 Oct 2020 19:24:15 -0000
> @@ -941,6 +941,7 @@ product APPLE FOUNTAIN_ANSI       0x020e  Keybo
>  product APPLE FOUNTAIN_ISO   0x020f  Keyboard/Trackpad
>  product APPLE GEYSER_ANSI    0x0214  Keyboard/Trackpad
>  product APPLE GEYSER_ISO     0x0215  Keyboard/Trackpad
> +product APPLE INT_KBTP_218_ISO       0x0218  Keyboard/Trackpad
>  product APPLE WELLSPRING_ANSI        0x0223  Keyboard/Trackpad
>  product APPLE WELLSPRING_ISO 0x0224  Keyboard/Trackpad
>  product APPLE WELLSPRING_JIS 0x0225  Keyboard/Trackpad
> 
> With this, the sf keyboard maps correcly the less/greater and the
> (swiss-french and swiss-german) section/degree key.
> On the console and on with the X-server.
> 
> I was annoyed by using an external Dell USB keyboard...
> (not affected by this diff, dmesg below)
> 
> OpenBSD 6.8 (GENERIC.MP) #27: Tue Oct 27 20:56:51 CET 2020
>     [email protected]:/sys/arch/i386/compile/GENERIC.MP
> real mem  = 2114273280 (2016MB)
> avail mem = 2059362304 (1963MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: date 07/29/05, SMBIOS rev. 2.4 @ 0xe7440 (37 entries)
> bios0: vendor Apple Computer, Inc. version "MB11.88Z.0061.B03.0610121324"
> date 10/12/06
> bios0: Apple Computer, Inc. MacBook1,1
> acpi0 at bios0: ACPI 3.0
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP HPET APIC MCFG ASF! SBST ECDT SSDT SSDT SSDT
> acpi0: wakeup devices ADP1(S3) LID0(S3) PXS1(S4) PXS2(S4) USB1(S3) USB2(S3)
> USB3(S3) USB4(S3) USB7(S3) EC__(S3)
> 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: Genuine Intel(R) CPU 1500 @ 2.00GHz ("GenuineIntel" 686-class) 2 GHz,
> 06-0e-08
> cpu0: 
> FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,MWAIT,VMX,EST,TM2,xTPR,PDCM,NXE,PERF,SENSOR,MELTDOWN
> mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
> cpu0: apic clock running at 166MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.2.2.2, IBE
> cpu1 at mainbus0: apid 1 (application processor)
> cpu1: Genuine Intel(R) CPU 1500 @ 2.00GHz ("GenuineIntel" 686-class) 2 GHz,
> 06-0e-08
> cpu1: 
> FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,MWAIT,VMX,EST,TM2,xTPR,PDCM,NXE,PERF,SENSOR,MELTDOWN
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins, remapped
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-255
> acpiec0 at acpi0
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 1 (RP01)
> acpiprt2 at acpi0: bus 2 (RP02)
> acpiprt3 at acpi0: bus 3 (PCIB)
> acpisbs0 at acpi0: SBS0 model "ASMB013" serial 1234 type LION oem "HSW"
> acpiac0 at acpi0: AC unit online
> acpibtn0 at acpi0: LID0
> "APP0002" at acpi0 not configured
> acpibtn1 at acpi0: PWRB
> acpibtn2 at acpi0: SLPB
> "PNP0A08" at acpi0 not configured
> asmc0 at acpi0: SMC_ (smc-napa) addr 0x300/0x20: rev 1.4f504, 203 keys
> "APP0003" at acpi0 not configured
> "ACPI0001" at acpi0 not configured
> "IFX0101" at acpi0 not configured
> acpicmos0 at acpi0
> acpicpu0 at acpi0: !C4(100@55 mwait@0x31), !C3(500@1 mwait@0x20), !C2(500@1
> mwait@0x10), C1(1000@1 mwait), PSS
> acpicpu1 at acpi0: !C4(100@55 mwait@0x31), !C3(500@1 mwait@0x20), !C2(500@1
> mwait@0x10), C1(1000@1 mwait), PSS
> acpivideo0 at acpi0: GFX0
> bios0: ROM list: 0xc0000/0xe600!
> cpu0: Enhanced SpeedStep 1998 MHz: speeds: 2000, 1833, 1667, 1500, 1333,
> 1000 MHz
> memory map conflict 0xe00f8000/0x1000
> memory map conflict 0xfed1c000/0x4000
> memory map conflict 0xfffb0000/0x30000
> pci0 at mainbus0 bus 0: configuration mode 1 (bios)
> pchb0 at pci0 dev 0 function 0 "Intel 82945GM Host" rev 0x03
> inteldrm0 at pci0 dev 2 function 0 "Intel 82945GM Video" rev 0x03
> drm0 at inteldrm0
> intagp0 at inteldrm0
> agp0 at intagp0: aperture at 0x80000000, size 0x10000000
> inteldrm0: apic 1 int 16, I945GM, gen 3
> "Intel 82945GM Video" rev 0x03 at pci0 dev 2 function 1 not configured
> vendor "Intel", unknown product 0x27a3 (class DASP subclass Time and
> Frequency, rev 0x03) at pci0 dev 7 function 0 not configured
> azalia0 at pci0 dev 27 function 0 "Intel 82801GB HD Audio" rev 0x02: msi
> azalia0: codecs: Sigmatel STAC9220/1
> audio0 at azalia0
> ppb0 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x02: apic 1 int 17
> pci1 at ppb0 bus 1
> mskc0 at pci1 dev 0 function 0 "Marvell Yukon 88E8053" rev 0x22, Yukon-2 EC
> rev. A3 (0x2): apic 1 int 16
> msk0 at mskc0 port A: address 00:17:f2:2c:6d:81
> eephy0 at msk0 phy 0: 88E1111 Gigabit PHY, rev. 2
> ppb1 at pci0 dev 28 function 1 "Intel 82801GB PCIE" rev 0x02: apic 1 int 16
> pci2 at ppb1 bus 2
> ath0 at pci2 dev 0 function 0 "Atheros AR5424" rev 0x01: apic 1 int 17
> ath0: AR5424 10.3 phy 6.1 rf 10.2 eeprom 5.3, WORAW, address
> 00:17:f2:4c:a6:ba
> uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x02: apic 1 int 21
> uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x02: apic 1 int 19
> uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x02: apic 1 int 18
> uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x02: apic 1 int 16
> ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x02: apic 1 int 21
> 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
> ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xe2
> pci3 at ppb2 bus 3
> "AT&T/Lucent FW322 1394" rev 0x61 at pci3 dev 3 function 0 not configured
> ichpcib0 at pci0 dev 31 function 0 "Intel 82801GBM LPC" rev 0x02: PM
> disabled
> pciide0 at pci0 dev 31 function 1 "Intel 82801GB IDE" rev 0x02: DMA, channel
> 0 configured to compatibility, channel 1 configured to compatibility
> atapiscsi0 at pciide0 channel 0 drive 0
> scsibus1 at atapiscsi0: 2 targets
> cd0 at scsibus1 targ 0 lun 0: <MATSHITA, DVD-R UJ-857, HBEA> removable
> cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4
> pciide0: channel 1 disabled (no drives)
> pciide1 at pci0 dev 31 function 2 "Intel 82801GBM SATA" rev 0x02: DMA,
> channel 0 configured to native-PCI, channel 1 configured to native-PCI
> pciide1: using apic 1 int 19 for native-PCI interrupt
> wd0 at pciide1 channel 0 drive 1: <WDC WD10JPVT-26A1YT0>
> wd0: 16-sector PIO, LBA48, 953869MB, 1953525168 sectors
> wd0(pciide1:0:1): using PIO mode 4, Ultra-DMA mode 6
> ichiic0 at pci0 dev 31 function 3 "Intel 82801GB SMBus" rev 0x02: apic 1 int
> 19
> iic0 at ichiic0
> spdmem0 at iic0 addr 0x50: 1GB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
> spdmem1 at iic0 addr 0x52: 1GB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
> usb1 at uhci0: USB revision 1.0
> uhub1 at usb1 configuration 1 interface 0 "Intel UHCI root hub" rev
> 1.00/1.00 addr 1
> usb2 at uhci1: USB revision 1.0
> uhub2 at usb2 configuration 1 interface 0 "Intel UHCI root hub" rev
> 1.00/1.00 addr 1
> usb3 at uhci2: USB revision 1.0
> uhub3 at usb3 configuration 1 interface 0 "Intel UHCI root hub" rev
> 1.00/1.00 addr 1
> usb4 at uhci3: USB revision 1.0
> uhub4 at usb4 configuration 1 interface 0 "Intel UHCI root hub" rev
> 1.00/1.00 addr 1
> isa0 at ichpcib0
> isadma0 at isa0
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
> uvideo0 at uhub0 port 4 configuration 1 interface 0 "Apple Computer
> Bluetooth" rev 2.00/0.0c addr 2
> uvideo0: can't find video interface
> uhidev0 at uhub1 port 1 configuration 1 interface 0 "Logitech USB Receiver"
> rev 2.00/12.10 addr 2
> uhidev0: iclass 3/1
> ukbd0 at uhidev0: 8 variable keys, 6 key codes
> wskbd0 at ukbd0: console keyboard
> uhidev1 at uhub1 port 1 configuration 1 interface 1 "Logitech USB Receiver"
> rev 2.00/12.10 addr 2
> uhidev1: iclass 3/1, 8 report ids
> ums0 at uhidev1 reportid 2: 16 buttons, Z and W dir
> wsmouse0 at ums0 mux 0
> uhid0 at uhidev1 reportid 3: input=4, output=0, feature=0
> uhid1 at uhidev1 reportid 4: input=1, output=0, feature=0
> uhid2 at uhidev1 reportid 8: input=1, output=0, feature=0
> uhidev2 at uhub1 port 1 configuration 1 interface 2 "Logitech USB Receiver"
> rev 2.00/12.10 addr 2
> uhidev2: iclass 3/0, 33 report ids
> uhid3 at uhidev2 reportid 16: input=6, output=6, feature=0
> uhid4 at uhidev2 reportid 17: input=19, output=19, feature=0
> uhid5 at uhidev2 reportid 32: input=14, output=14, feature=0
> uhid6 at uhidev2 reportid 33: input=31, output=31, feature=0
> uhidev3 at uhub1 port 2 configuration 1 interface 0 "Apple Computer Apple
> Internal Keyboard / Trackpad" rev 2.00/0.64 addr 3
> uhidev3: iclass 3/1
> ukbd1 at uhidev3: 8 variable keys, 5 key codes, country code 13
> wskbd1 at ukbd1 mux 1
> uhidev4 at uhub1 port 2 configuration 1 interface 1 "Apple Computer Apple
> Internal Keyboard / Trackpad" rev 2.00/0.64 addr 3
> uhidev4: iclass 3/1, 5 report ids
> ums1 at uhidev4 reportid 2: 3 buttons
> wsmouse1 at ums1 mux 0
> ums2 at uhidev4 reportid 5
> ums2: mouse has no X report
> uhidev5 at uhub1 port 2 configuration 1 interface 2 "Apple Computer Apple
> Internal Keyboard / Trackpad" rev 2.00/0.64 addr 3
> uhidev5: iclass 3/0
> uhid7 at uhidev5: input=1, output=0, feature=0
> uhidev6 at uhub3 port 2 configuration 1 interface 0 "Apple Computer, Inc. IR
> Receiver" rev 2.00/1.10 addr 2
> uhidev6: iclass 3/0, 38 report ids
> uhid8 at uhidev6 reportid 36: input=4, output=0, feature=0
> uhid9 at uhidev6 reportid 37: input=4, output=0, feature=0
> uhid10 at uhidev6 reportid 38: input=4, output=0, feature=0
> uhidev7 at uhub4 port 1 configuration 1 interface 0 "Apple Computer
> HID-proxy" rev 2.00/19.65 addr 2
> uhidev7: iclass 3/1
> ukbd2 at uhidev7: 8 variable keys, 6 key codes
> wskbd2 at ukbd2 mux 1
> uhidev8 at uhub4 port 1 configuration 1 interface 1 "Apple Computer
> HID-proxy" rev 2.00/19.65 addr 2
> uhidev8: iclass 3/1
> ums3 at uhidev8: 5 buttons
> wsmouse2 at ums3 mux 0
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> root on wd0a (025e72b747930472.a) swap on wd0b dump on wd0b
> inteldrm0: 1280x800, 32bpp
> wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
> wskbd1: connecting to wsdisplay0
> wskbd2: connecting to wsdisplay0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> ------------------------
> uhidev9 at uhub2 port 1 configuration 1 interface 0 "Dell Dell QuietKey
> Keyboard" rev 1.10/1.40 addr 2
> uhidev9: iclass 3/1
> ukbd3 at uhidev9: 8 variable keys, 6 key codes
> wskbd3 at ukbd3 mux 1
> wskbd3: connecting to wsdisplay0
> wskbd3: disconnecting from wsdisplay0
> wskbd3 detached
> ukbd3 detached
> uhidev9 detached
> ======================
> # cat /etc/kbdtype
> # sf
> 
> 

Reply via email to