VoodooSMBus / VoodooRMI

Synaptic Trackpad driver over SMBus/I2C for macOS
GNU General Public License v2.0
232 stars 19 forks source link

No support for SYNA30B3 #178

Closed Thisisauser6443 closed 2 months ago

Thisisauser6443 commented 2 months ago

Describe the bug The trackpad does work with the kext added and enabled, but the physical mouse buttons and the trackpoint remain not working. Also, enabling VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext causes a kernel panic, similar to what happens if I try and enable the same for VoodooI2C. (If it helps, this is running on a HP EliteBook 840 G7)

To Reproduce Steps to reproduce the behavior:

  1. Add VoodooRMI.kext to EFI/OC/Kexts and add to the config.plist
  2. Reboot and observe a kernel panic with VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext enabled
  3. Disable the aforementioned entry, and reboot again
  4. Successfully boot to the userspace with a working trackpad, but with no trackpoint/mouse buttons

Expected behavior Not much, I guess? I mean, I was hoping I’d get lucky, and this would work right out of the box, but as I expected, the trackpad does work (But only because of VoodooI2CHID?), but not the physical mouse buttons or trackpoint

Log log.txt

Here are all of my kernel extensions, just in case you spot something off image

1Revenger1 commented 2 months ago

Is the log empty? It isn't showing up on my phone although could just be my phone being weird. The panics from VoodooInput are expected when multiple copies are injected. You only can inject one copy of any kext at a time as otherwise macOS will panic when trying to load them. Generally you only inject VoodooInput from whichever kext is responsible for the touchpad.

Thisisauser6443 commented 2 months ago

Is the log empty? It isn't showing up on my phone although could just be my phone being weird.

Shoot, it’s empty. Bit weird, since I did follow the guide on getting logs to the letter (At least I think I did)

Generally you only inject VoodooInput from whichever kext is responsible for the touchpad

Problem is that if I enable either one of the VoodooInput entries, it goes to a KP. Also, if I disable either I2C or PS2, then either the built-in KB or touchpad is non-responsive

1Revenger1 commented 2 months ago

It could be that VoodooRMI isn't attaching then, especially if you have VoodooI2CHID as well. Probably worth checking ioreg or IoRegistryExplorer. With regards to VoodooInput, you do have a third copy that comes with VoodooPS2. As long as that one is enabled, enabling the copy in VoodooI2C or VoodooRMI will cause a panic.

Thisisauser6443 commented 2 months ago

Checked IOReg a while ago, and the trackpad did show Transport as I2C, under VoodooI2CHIDDevice.

Also, if I disable all the related entries to VoodooI2C, leaving just VoodooRMI and VoodooPS2 enabled, then the trackpad does not work, so I'd assume RMI is not being attached, even if I2CHID is disabled

1Revenger1 commented 2 months ago

Does Hid-rmi attach in Linux or do you see a Synaptics I2C HID device attach in windows? It could just be that your touchpad doesn't support the RMI4 protocol, in which case it sounds like a bug fix in VoodooI2CHID would be needed.

If you want, you could send the report descriptor shown on the VoodooI2CHID device in IoRegistryExplorer.

Thisisauser6443 commented 2 months ago

Can you be a little bit more specific on what the "Report descriptor" is? I don't have Windows installed, right now, so IOReg is my only option, for the time being

1Revenger1 commented 2 months ago

The report descriptor is a big list of numbers used by VoodooI2CHID to figure out the touchpad's capabilities and what the reports look like when the touchpad sends them to the OS. VoodooI2CHID exposes it as a device property, so you probably can see it with ioreg as well. Not entirely sure how though, it might list it if you don't limit the width.

Thisisauser6443 commented 2 months ago

image

I believe this is what you’re looking for, then

1Revenger1 commented 2 months ago

Yep, would you be able to get a text copy of that? Can just copy directly from ioregistryexplorer if you double click on the data.

Thisisauser6443 commented 2 months ago
<05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01 29 02 15 00 25 01 75 01 95 02 81 02 95 06 81 01 05 01 09 30 09 31 15 81 25 7f 75 08 95 02 81 06 c0 c0 05 01 09 02 a1 01 85 18 09 01 a1 00 05 09 19 01 29 03 46 00 00 15 00 25 01 75 01 95 03 81 02 95 05 81 01 05 01 09 30 09 31 15 81 25 7f 75 08 95 02 81 06 c0 c0 06 00 ff 09 02 a1 01 85 20 09 01 a1 00 09 03 15 00 26 ff 00 35 00 46 ff 00 75 08 95 05 81 02 c0 c0 05 0d 09 05 a1 01 85 03 05 0d 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 05 09 51 81 02 75 01 95 03 81 03 05 01 15 00 26 f8 04 75 10 55 0e 65 11 09 30 35 00 46 24 04 95 01 81 02 46 30 02 26 a0 02 09 31 81 02 c0 05 0d 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 05 09 51 81 02 75 01 95 03 81 03 05 01 15 00 26 f8 04 75 10 55 0e 65 11 09 30 35 00 46 24 04 95 01 81 02 46 30 02 26 a0 02 09 31 81 02 c0 05 0d 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 05 09 51 81 02 75 01 95 03 81 03 05 01 15 00 26 f8 04 75 10 55 0e 65 11 09 30 35 00 46 24 04 95 01 81 02 46 30 02 26 a0 02 09 31 81 02 c0 05 0d 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 05 09 51 81 02 75 01 95 03 81 03 05 01 15 00 26 f8 04 75 10 55 0e 65 11 09 30 35 00 46 24 04 95 01 81 02 46 30 02 26 a0 02 09 31 81 02 c0 05 0d 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 05 09 51 81 02 75 01 95 03 81 03 05 01 15 00 26 f8 04 75 10 55 0e 65 11 09 30 35 00 46 24 04 95 01 81 02 46 30 02 26 a0 02 09 31 81 02 c0 05 0d 55 0c 66 01 10 47 ff ff 00 00 27 ff ff 00 00 75 10 95 01 09 56 81 02 09 54 25 7f 95 01 75 08 81 02 05 09 09 01 25 01 75 01 95 01 81 02 95 07 81 03 05 0d 85 08 09 55 09 59 75 04 95 02 25 0f b1 02 85 0d 09 60 75 01 95 01 15 00 25 01 b1 02 95 07 b1 03 85 07 06 00 ff 09 c5 15 00 26 ff 00 75 08 96 00 01 b1 02 c0 05 0d 09 0e a1 01 85 04 09 22 a1 02 09 52 15 00 25 0a 75 08 95 01 b1 02 c0 09 22 a1 00 85 06 09 57 09 58 75 01 95 02 25 01 b1 02 95 06 b1 03 c0 c0 06 00 ff 09 01 a1 01 85 09 09 02 15 00 26 ff 00 75 08 95 14 91 02 85 0a 09 03 15 00 26 ff 00 75 08 95 14 91 02 85 0b 09 04 15 00 26 ff 00 75 08 95 45 81 02 85 0c 09 05 15 00 26 ff 00 75 08 95 45 81 02 85 0f 09 06 15 00 26 ff 00 75 08 95 03 b1 02 85 0e 09 07 15 00 26 ff 00 75 08 95 01 b1 02 c0>
1Revenger1 commented 2 months ago

Interesting, looks like the trackpoint data does come through a HID report. Give me a couple days, I think I can get you a version of VoodooI2CHID that works. Going to close this for now since this uses VoodooI2CHID instead of VoodooRMI.

Thisisauser6443 commented 2 months ago

Grand, thanks for that

1Revenger1 commented 1 month ago

VoodooI2C-2.8-RELEASE.zip I've got no clue if this will work or not. Have a way to get back in if this causes a panic.

Thisisauser6443 commented 1 month ago

Yeah, didn’t work, unfortunately - Tested with both I2CHID and Synaptics kexts, and there was no kernel panic, but the trackpad, touchpoint and physical buttons were non-functioning after boot

1Revenger1 commented 1 month ago

Does an ioreg property show up showing the number of mice/track point devices it detected? It should show up under VoodooI2CPrecisionHIDEventDriver iirc.

Thisisauser6443 commented 1 month ago

The only entry I have that’s similar to that is VoodooI2CPrecisionTouchpadHIDEventDriver

1Revenger1 commented 1 month ago

Yep that would be it

Thisisauser6443 commented 1 month ago

Screenshot 2024-06-02 at 14 19 46

1Revenger1 commented 1 month ago

VoodooI2CHID.kext.zip Hrmm, I don't see what I am expecting there. Try this version - a property called "Trackpoints" should be there.

Thisisauser6443 commented 1 month ago

Yeah, no luck, unfortunately - I get one, maybe a few Invalid Parameters, with the new kext, and then the trackpad doesn't work after booting

Thisisauser6443 commented 1 month ago

image

Though, I am wondering if it’s just down to the order of my kext placements

1Revenger1 commented 1 month ago

Doubt it is order, although Invalid Parameters could mean you have the wrong versions of kexts somewhere. When you replaced VoodooI2CHID, did you also replace VoodooI2C from that first ZIP I sent?

Thisisauser6443 commented 1 month ago

I think I did, but I'll try again

Edit: No luck, still an Invalid Parameter

1Revenger1 commented 1 month ago

Are you able to provide any log from OC? Should say what kext is causing the invalid parameter

Thisisauser6443 commented 1 month ago

OC says that the culprit is VoodooI2CHID

00:000 00:000 OCCPU: TSC Adjust 0
00:079 00:079 OCCPU: Known Model Core Crystal Clock Frequency    24000000Hz
00:153 00:074 OCCPU: CPUFrequencyFromART  2304000000Hz  2304MHz = 24000000 * 192 / 2
00:235 00:082 HDA: GPIO stages 0x0 mask 0x0 (auto); Restore NSNPEN 0; Force device <null string> codec 0(0); Conn none 0; Delay 0
00:320 00:084 OCCPU: TSC Adjust 0
00:404 00:084 OCCPU: Known Model Core Crystal Clock Frequency    24000000Hz
00:486 00:081 OCCPU: CPUFrequencyFromART  2304000000Hz  2304MHz = 24000000 * 192 / 2
01:325 00:838 BEP: Reset NVRAM entry, preserve boot 0, apple 0
03:016 01:690 AAPL: #[EB.H.IS|!] Err(0xE) <- RT.GV boot-signature 7C436110-AB2A-4BBB-A880-FE41995C9F82
03:105 00:089 AAPL: #[EB.H.IS|!] Err(0xE) <- RT.GV boot-image-key 7C436110-AB2A-4BBB-A880-FE41995C9F82
03:191 00:085 AAPL: #[EB|H:IS] 0
03:277 00:085 AAPL: #[EB|LOG:INIT] 2024-06-03T16:40:30
03:354 00:077 AAPL: #[EB|VERSION] <"boot.efi 580~2215 (Official), built 2024-04-13T12:11:32-0700">
03:437 00:082 AAPL: #[EB|BUILD] <"BUILD-INFO[392]:{"DisplayName":"boot.efi","DisplayVersion":"580~2215","RecordUuid":"89DA234B-23D1-4BE2-BF23-E0277E2EE72F","BuildTime":"2024-04-13T12:11:32-0700","ProjectName":"efiboot","ProductName":"boot.efi","SourceVersion":"580","BuildVersion":"2215","BuildConfiguration":"Release","BuildType":"Official","Compiler":"clang-1500.3.9.1","SdkVersion":"14.5","SdkBuild":"23F63","TargetArchitectures":"x86_64"}">
03:521 00:084 AAPL: #[EB.CFG.DEV|!] Err(0xE) <- RT.GV booter-strict-xmlparser 7C436110-AB2A-4BBB-A880-FE41995C9F82
03:603 00:081 AAPL: #[EB|CFG:DEV] r5 0x0 0x0
03:677 00:074 AAPL: #[EB|H:IS] 0
03:761 00:083 AAPL: #[EB|WL:MODE] 0
03:843 00:081 AAPL: #[EB|CFG:ARG] boot-save-log 0x0000000000000002 (0x0000000000000002 < 0xFFFFFFFFFFFFFFFF) default
03:925 00:081 AAPL: #[EB|CFG:ARG] wake-save-log 0x0000000000000002 (0x0000000000000002 < 0x0000000000000002) default
04:008 00:082 AAPL: #[EB|CFG:ARG] console       0x0000000000000001 (0x0000000000000001 < 0x0000000000000001) default
04:090 00:082 AAPL: #[EB|CFG:ARG] serial        0x0000000000000001 (0x0000000000000001 < 0x0000000000000000) default
04:175 00:084 AAPL: #[EB|CFG:ARG] preoslog      0x0000000000000001 (0x0000000000000001 < 0xFFFFFFFFFFFFFFFF) default
04:260 00:084 AAPL: #[EB|CFG:ARG] timestamps    0x0000000000000000 (0x0000000000000000 < 0xFFFFFFFFFFFFFFFF) default
04:343 00:083 AAPL: #[EB|CFG:ARG] log-level     0x0000000000000001 (0x0000000000000001 & 0x0000000000000021) default
04:416 00:072 AAPL: #[EB|CFG:ARG] breakpoint    0x0000000000000000 (0x0000000000000000 & 0x0000000000000000) default
04:500 00:084 AAPL: #[EB|CFG:ARG] kc-read-size  0x0000000000100000 (0x0000000000100000 < 0xFFFFFFFFFFFFFFFF) default
04:585 00:084 AAPL: #[EB|CFG:ARG] force-error   0x0000000000000000 (0x0000000000000000 & 0x0000000000000000) default
04:680 00:094 AAPL: #[EB|H:IS] 0
04:752 00:072 AAPL: #[EB|WL] 0 0 0x01 0x01   0 0x00
04:837 00:084 AAPL: #[EB|BRD:NV] Mac-E7203C0F68AA0004
04:921 00:083 AAPL: #[EB|B:VAw]
05:003 00:082 AAPL: #[EB|B:IAw]
05:077 00:074 AAPL: #[EB|WL] 0 0 0x01 0x01   2 0x00
05:162 00:084 AAPL: #[EB.BST.IDT|+]
05:244 00:082 AAPL: #[EB.BST.IDT|-]
05:337 00:092 AAPL: #[EB|WL] 0 0 0x01 0x01   3 0x00
05:409 00:071 AAPL: #[EB|WL] 0 0 0x01 0x01   4 0x00
05:494 00:084 AAPL: #[EB|BRD:NV] Mac-E7203C0F68AA0004
05:578 00:084 AAPL: #[EB|WL] 0 0 0x01 0x01   5 0x00
05:661 00:082 AAPL: #[EB.H.CHK|BM] 0x0000000000000000
05:735 00:074 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.GV boot-signature 7C436110-AB2A-4BBB-A880-FE41995C9F82
05:817 00:081 AAPL: #[EB|WL] 0 0 0x01 0x01  23 0x0E
05:901 00:084 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.GV boot-image-key 7C436110-AB2A-4BBB-A880-FE41995C9F82
05:996 00:095 AAPL: #[EB|WL] 0 0 0x01 0x01  24 0x0E
06:081 00:084 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.GV boot-image 7C436110-AB2A-4BBB-A880-FE41995C9F82
06:156 00:075 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.SV- boot-signature 7C436110-AB2A-4BBB-A880-FE41995C9F82
06:242 00:085 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.SV- boot-image-key 7C436110-AB2A-4BBB-A880-FE41995C9F82
06:326 00:084 AAPL: #[EB.H.LV|!] Err(0xE) <- RT.SV- boot-image 7C436110-AB2A-4BBB-A880-FE41995C9F82
06:409 00:082 AAPL: #[EB|H:NOT]
06:483 00:074 AAPL: #[EB|SB:P] 0x0
06:569 00:086 AAPL: #[EB|LIMG:DP] Acpi(PNP0A03,0)/Pci(1D|0)/Pci(0|0)/?[ 0x83 0x17 0x10 0x0 0x1 0x0 0x0 0x0 0x64 0x79 0xA7 0x7E 0x10 0x0 0x1 0x68 ]/HD(Part2,SigF5615C9B-AECE-4ED7-9291-EB6D57F7BF0A)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842)
06:662 00:092 AAPL: #[EB|LIMG:FP] \4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\System\Library\CoreServices\boot.efi
06:744 00:082 AAPL: #[EB|LIMG:OPT] 
06:818 00:073 AAPL: #[EB.OPT.LXF|F] <"\\4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\\System\\Library\\CoreServices\\com.apple.Boot.plist">
06:900 00:082 AAPL: #[EB.LD.LF|IN] 0 1 <"\\4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\\System\\Library\\CoreServices\\com.apple.Boot.plist"> <"0">
06:984 00:084 AAPL: #[EB.LD.OFS|OPEN!] Err(0xE) <"\\4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\\System\\Library\\CoreServices\\com.apple.Boot.plist">
07:066 00:082 AAPL: #[EB.OPT.LXF|LF!] Err(0xE)
07:141 00:074 AAPL: #[EB.OPT.LXF|F] <"Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist">
07:225 00:084 AAPL: #[EB.LD.LF|IN] 0 1 <"Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"> <"0">
07:318 00:092 AAPL: #[EB|KF] <"">
07:401 00:083 AAPL: #[EB|MBA:CL] <"">
07:477 00:075 AAPL: #[EB|MBA:NV] <"-v keepsyms=1 swd_panic=1 debug=0x100 -liludbgall -ecedbg -revbeta revpatch=sbvmm igfxfw=2 -wegnoegu slide=118">
07:560 00:083 AAPL: #[EB|MBA:KF] <"">
07:643 00:082 AAPL: #[EB|MBA:OUT] <"-v keepsyms=1 swd_panic=1 debug=0x100 -liludbgall -ecedbg -revbeta revpatch=sbvmm igfxfw=2 -wegnoegu slide=118">
07:728 00:084 AAPL: #[EB|LOG:VERBOSE] 2024-06-03T16:40:34
07:813 00:085 AAPL: #[EB.CSR.S|VAR] 0x0000007F
07:898 00:085 AAPL: #[EB|OPT:BM] 0x80182
07:983 00:084 AAPL: #[EB.OPT.LXF|F] <"\\4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\\System\\Library\\CoreServices\\PlatformSupport.plist">
08:064 00:081 AAPL: #[EB.LD.LF|IN] 0 1 <"\\4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10\\System\\Library\\CoreServices\\PlatformSupport.plist"> <"0">
08:150 00:085 AAPL: #[EB|P:CPR] N
08:224 00:074 AAPL: #[EB|P:MPI] N
08:309 00:084 AAPL: #[EB|P:BPI] N
08:391 00:081 AAPL: #[EB.OPT.RKS|!] Err(0xE) <- BS.LocP EDB4A040-6D8A-11EC-8FAD-3E22FB93ADCF
08:475 00:084 AAPL: #[EB|KMR] 210755584
08:556 00:081 AAPL: #[EB.CS.CSKSD|+]
08:641 00:084 AAPL: #[EB.CS.CSKSD|!] Err(0xE) <- RT.GV boot-info-payload 8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF
08:725 00:084 AAPL: #[EB|WL] 0 0 0x01 0x01   6 0x0E
08:808 00:082 AAPL: #[EB.CS.LFC|+]
08:882 00:074 AAPL: #[EB.LD.LF|IN] 0 1 <"System\\Library\\Caches\\com.apple.corestorage\\EncryptedRoot.plist.wipekey"> <"0">
08:983 00:100 AAPL: #[EB.FS.AGSVH|PU] 4AC908A6-4CE9-4FC2-8A66-3D3E5E2AAE10
09:315 00:331 AAPL: #[EB.FS.AGSVH|!] Err(0xE) <- BS.LocHB 59D76AE4-37E3-55A7-B460-EF13D46E6020
09:393 00:078 AAPL: #[EB.G.CS|-?] Ok(0)
09:551 00:157 AAPL: #[EB.LD.LF|IN] 0 1 <"<null string>"> <"1">
09:636 00:085 AAPL: #[EB.B.SBS|SZ] 723512
09:741 00:104 AAPL: #[EB|B:SHA] <23f0b3886bf141bf8a47113707baabff148b5d8b>
09:826 00:084 AAPL: #[EB.WL.PWLFNV|!] Err(0xE) <- RT.GV wake-failure 7C436110-AB2A-4BBB-A880-FE41995C9F82
09:909 00:083 AAPL: #[EB.WL.DT|!] Err(0xE) <- EB.WL.PWLFNV
09:982 00:073 AAPL: #[EB.WL.PWLFRTC|NONE]
10:067 00:084 AAPL: #[EB.WL.DT|!] Err(0xE) <- EB.WL.PWLFRTC
10:152 00:085 AAPL: #[EB.LD.LKC|D] <"boot\System\Library\KernelCollections\BootKernelExtensions.kc.development">
10:246 00:094 AAPL: #[EB.LD.OFS|OPEN!] Err(0xE) <"boot\\System\\Library\\KernelCollections\\BootKernelExtensions.kc.development">
10:321 00:074 AAPL: #[EB.LD.LKC|R.2] <"boot\System\Library\KernelCollections\BootKernelExtensions.kc">
15:472 05:151 OC: Prelinked injection VoodooI2CHID.kext (I2C and USB Trackpads) - Invalid Parameter
16:061 00:588 AAPL: #[EB.LD.LKFS|-?] Ok(0)
16:145 00:084 AAPL: #[EB.LD.LKC|-?] Ok(0)
16:221 00:075 AAPL: #[EB|BST:REV1]
16:305 00:084 AAPL: #[EB|CSR:OUT] 0x0000006F
16:390 00:084 AAPL: #[EB.BST.FBS|+]
16:482 00:092 AAPL: #[EB.BST.FBS|ADSZ] 0
16:557 00:074 AAPL: #[EB.BST.FBS|KSSZ] 0
16:641 00:084 AAPL: #[EB|SB:SBGMFNS] x86legacyap.im4m
16:726 00:084 AAPL: #[EB|RH:PF] usr\standalone\OS.dmg.root_hash
16:809 00:082 AAPL: #[EB|RH:MF] <"usr\\standalone\\OS.dmg.root_hash.x86legacyap.im4m">
16:883 00:074 AAPL: #[EB.LD.LF|IN] 0 1 <"usr\\standalone\\OS.dmg.root_hash"> <"0">
16:973 00:090 AAPL: #[EB.LD.LF|IN] 0 1 <"usr\\standalone\\OS.dmg.root_hash.x86legacyap.im4m"> <"0">
17:058 00:084 AAPL: #[EB.BST.FBS|RHPSZ] 229
17:153 00:094 AAPL: #[EB.BST.FBS|RHMSZ] 3657
17:235 00:082 AAPL: #[EB|LOG:DT] 2024-06-03T16:40:44
17:309 00:074 AAPL: #[EB|LOG:EXITBS:START] 2024-06-03T16:40:44
1Revenger1 commented 1 month ago

I think my local builds are completely broken, give me a day or two to figure this out. Trying it locally is causing panics and other odd behavior which makes no sense. image

Thisisauser6443 commented 1 month ago

Oof, alright

1Revenger1 commented 1 month ago

Sorry for dropping the ball on this. Once I figure out Sequoia stuff I'll get back to this. For now I've thrown my changes in here though: https://github.com/VoodooI2C/VoodooI2C/pull/551 Feel free to try and build it yourself.

1Revenger1 commented 1 month ago

Archive.zip Finally fixed the panic and loading - give this a shot and see if VoodooI2CPrecisionTouchpadHIDEventDriver finds anything.

Thisisauser6443 commented 1 month ago

Screenshot 2024-06-12 at 09 33 00

The mouse buttons and trackpoint are recognised, by the looks of it - Only issue is that when I use either of them, the pointer goes straight to the bottom of the display, and if I keep using it, then it gradually makes its way to the lower-left corner

Edit: Interestingly, when I try and use the buttons, I can’t also use any context menus (By that, I mean I can still access them as expected, I just can’t select any option from them)

1Revenger1 commented 1 month ago

VoodooI2CHID.kext.zip Want to give this a shot?

Thisisauser6443 commented 1 month ago

No dice - Same thing happens if I use the mouse buttons, just that the movement to the lower-left corner is a tad bit less erratic

1Revenger1 commented 1 month ago

VI2C-CastUIntToSInt.zip Forgot to cast from an unsigned to a signed int, oops.

Thisisauser6443 commented 1 month ago

Lol, all good - It stopped the erratic movement, but any clicks from the buttons aren't being registered, and the trackpoint doesn't look like it's working either

1Revenger1 commented 1 month ago

VI2C-Log.kext.zip This has some additional logging - mind giving this a spin? After using the touchpad, run sudo dmesg | grep -i i2c and it should show the delta x, y, and button values coming from the trackpoint. It may be a little easier to do this if you have msgbuf=1048576 in your boot-args.

Thisisauser6443 commented 1 month ago

Uh, problem, the trackpad doesn’t work with the custom build. I still managed to get the output of the dmesg command, but I’m guessing it’s fairly useless in this case

[    0.693909]: VoodooI2CPCILakeController::pci8086,2e9 Starting I2C controller
[    0.693944]: VoodooI2CPCILakeController::pci8086,2e9 Set PCI power state D0
[    0.693948]: VoodooI2CPCILakeController::pci8086,2e9 Current CPU is Comet Lake or Ice Lake, patching...
[    0.693980]: VoodooI2CPCILakeController::pci8086,2e9 Publishing nub
[    0.694070]: VoodooI2CControllerDriver::pci8086,2e9 Probing controller
[    0.694086]: VoodooI2CControllerDriver::pci8086,2e9 Found valid Synopsys component, continuing with initialisation
[    0.694116]: VoodooI2CControllerNub::pci8086,2e9 SSCN not implemented in ACPI tables
[    0.694121]: VoodooI2CControllerNub::pci8086,2e9 FMCN not implemented in ACPI tables
[    0.694124]: VoodooI2CControllerDriver::pci8086,2e9 Warning: Error getting bus config, using defaults where necessary
[    0.694224]: VoodooI2CControllerDriver::pci8086,2e9 Publishing device nubs
[    0.695358]: VoodooI2CPCILakeController::pci8086,2e8 Starting I2C controller
[    0.695458]: VoodooI2CPCILakeController::pci8086,2e8 Set PCI power state D0
[    0.695464]: VoodooI2CPCILakeController::pci8086,2e8 Current CPU is Comet Lake or Ice Lake, patching...
[    0.695547]: VoodooI2CPCILakeController::pci8086,2e8 Publishing nub
[    0.696281]: VoodooI2CControllerDriver::pci8086,2e8 Probing controller
[    0.696351]: VoodooI2CControllerDriver::pci8086,2e8 Found valid Synopsys component, continuing with initialisation
[    0.696526]: VoodooI2CControllerNub::pci8086,2e8 SSCN not implemented in ACPI tables
[    0.696535]: VoodooI2CControllerNub::pci8086,2e8 FMCN not implemented in ACPI tables
[    0.696537]: VoodooI2CControllerDriver::pci8086,2e8 Warning: Error getting bus config, using defaults where necessary
[    0.696657]: VoodooI2CControllerDriver::pci8086,2e8 Publishing device nubs
[    0.696664]: VoodooI2CControllerDriver::pci8086,2e8 Found I2C device: SYNA30B3
[    0.697045]: VoodooI2CDeviceNub::TPD0 Found valid resources from _CRS method
[    0.697755]: VoodooI2CDeviceNub::TPD0 Found valid resources from _DSM or XDSM method
[    0.697768]: VoodooI2CDeviceNub::TPD0 Prefer resources from _DSM or XDSM method
[    0.697785]: VoodooI2CDeviceNub::TPD0 Found valid GPIO interrupts
[    0.697809]: VoodooI2CDeviceNub::TPD0 Got GPIO Controller! VoodooGPIOCannonLakeLP
[   11.147538]: u> 11147536 I2CAUXLOG: +dpAuxChWrite: MOTWR@0x00050 (0) - Status:0
[   11.147785]: u> 11147783 I2CAUXLOG: +dpAuxChWrite: MOTWR@0x00050 (1) - Status:0
[   11.147791]: WriteI2COverAUX:791 AuxData [0xfffffffddf82f64f:1, 32:1]
[   11.147923]: u> 11147921 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (0) : Status: 0
[   11.148285]: u> 11148284 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.148290]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f920:16, 32:1]
[   11.148664]: u> 11148662 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.148669]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f930:16, 32:1]
[   11.148852]: 1 duplicate report for Sandbox: com.apple.AmbientDisplayAgent(336) deny(1) mach-lookup com.apple.windowserverSandbox: locationd(334) deny(1) mach-lookup com.apple.tccdu> 11149039 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.149045]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f940:16, 32:1]
[   11.149410]: Sandbox: locationd(334) deny(1) mach-lookup com.apple.tccd.systemu> 11149416 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.149422]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f950:16, 32:1]
[   11.149796]: u> 11149794 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.149801]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f960:16, 32:1]
[   11.149992]: Sandbox: systemstats(101) deny(1) mach-lookup com.apple.tccdu> 11150170 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.150177]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f970:16, 32:1]
[   11.150408]: Sandbox: systemstats(101) deny(1) mach-lookup com.apple.tccd.systemu> 11150552 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.150559]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f980:16, 32:1]
[   11.150642]: Sandbox: locationd(334) deny(1) mach-lookup com.apple.tccdSandbox: systemstats(101) deny(1) mach-lookup com.apple.tccdu> 11150929 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00050 (10) : Status: 0
[   11.150936]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f990:16, 32:1]
[   11.150993]: Sandbox: locationd(334) deny(1) mach-lookup com.apple.tccd.systemu> 11151068 I2CAUXLOG: +dpAuxChRead: I2CRD@0x00050 (0) : Status: 0
[   11.151203]: Sandbox: systemstats(101) deny(1) mach-lookup com.apple.tccd.systemu> 11151615 I2CAUXLOG: +dpAuxChWrite: MOTWR@0x00040 (0) - Status:0
[   11.152104]: u> 11152102 I2CAUXLOG: +dpAuxChWrite: MOTWR@0x00040 (1) - Status:0
[   11.152109]: WriteI2COverAUX:791 AuxData [0xfffffffddf82f528:1, 32:1]
[   11.152724]: u> 11152722 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.152730]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f640:16, 32:1]
[   11.153336]: u> 11153334 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.153341]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f650:16, 32:1]
[   11.153882]: Sandbox: systemstats(101) deny(1) mach-lookup com.apple.tccdu> 11153955 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.153962]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f660:16, 32:1]
[   11.154442]: Sandbox: systemstats(101) deny(1) mach-lookup com.apple.tccd.systemu> 11154571 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.154578]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f670:16, 32:1]
[   11.155193]: u> 11155190 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.155198]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f680:16, 32:1]
[   11.155829]: u> 11155826 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.155834]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f690:16, 32:1]
[   11.156445]: u> 11156443 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.156451]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f6a0:16, 32:1]
[   11.157065]: u> 11157063 I2CAUXLOG: +dpAuxChRead: MOTWR@0x00040 (10) : Status: 0
[   11.157071]: ReadI2COverAUX:738 AuxData [0xfffffffddf82f6b0:16, 32:1]
[   11.157556]: u> 11157554 I2CAUXLOG: +dpAuxChRead: I2CRD@0x00040 (0) : Status: 0
1Revenger1 commented 1 month ago

Weird, guessing that VoodooI2CHID didn't inject. Is this using the copy from when I fixed the signed values? Here is a new copy with both VoodooI2C and VoodooI2CHID: VI2C-LogV2.zip

Thisisauser6443 commented 1 month ago

Yeah, that’s solved it. There’s a lot more coming from VoodooI2CPrecisionTouchpadHIDEventDriver, and from what I can see in the logs, it does seem to be displaying the dx/dy co-ordinates, just that a lot of the lines are duplicates of each other

1Revenger1 commented 1 month ago

VI2C-LogNativeEngine.zip Got another one to try out. That log looks like what I would expect.

Thisisauser6443 commented 1 month ago

Right, so the behaviour is a little different on this one - The movement of the pointer when I use the trackpoint is a a bit jumpy/stuttery/delayed, and the movement is a little bit random (as in, I can’t deduce any significant pattern of movement)

Here are the logs which I got using dmesg in case they’re of any use Untitled.txt

1Revenger1 commented 1 month ago

I'm not entirely sure where to go from here as the log looks fairly normal. I got one last version where I divide the delta values by 5 but otherwise I got nothing else :(. Do the buttons work normally now at least? VI2C-DeltaDivisor.zip

Thisisauser6443 commented 1 month ago

Well, it’s bad news, again - The trackpoint and buttons aren’t registered at all

1Revenger1 commented 1 month ago

Any logs from VoodooI2CHID?

Thisisauser6443 commented 1 month ago

Logs.txt

I should mention that the same hovering issue is back, from before

zhen-zen commented 1 month ago

It's interesting that I didn't hit much issue back on an 8*0G7 where I added F17 support.

image

Found some details in an old ioreg dump. The touchpad is reported as SYNA30B4 but I guess it's less useful than VID/PID 06CB:CE09 and VersionID 0x2107. HPID is a field from NVS memory set by the vendor.

            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                Switch (HPID)
                {
                    Case (0x103C00B0)
                    {
                        Return ("SYNA30B1")
                    }
                    Case (0x103C00B8)
                    {
                        Return ("SYNA30B1")
                    }
                    Case (0x103C00B2)
                    {
                        Return ("SYNA30B3")
                    }
                    Case (0x103C00BA)
                    {
                        Return ("SYNA30B3")
                    }
                    Case (0x103C00B5)
                    {
                        Return ("SYNA30B3")
                    }
                    Case (0x103C00BD)
                    {
                        Return ("SYNA30B3")
                    }
                    Case (0x103C00B3)
                    {
                        Return ("SYNA30B4")
                    }
                    Case (0x103C00BB)
                    {
                        Return ("SYNA30B4")
                    }
                    Case (0x103C00B7)
                    {
                        Return ("SYNA30B4")
                    }
                    Case (0x103C00BF)
                    {
                        Return ("SYNA30B4")
                    }
                    Default
                    {
                        Return ("SYNA30B1")
                    }

                }
            }

I forgot whether VoodooI2CHID has button support but RMII2C should work as expected.