Contribute
Register

Lenovo T560 Post Installation

Status
Not open for further replies.
The codes in the Notify DO NOT specify ADB codes. They specify PS2 codes. If you want a particular ADB code, you must use Notify with the PS2 codes that will map to the desired ADB codes.

Note that brightness ADB codes have not worked for quite a while (Sierra 10.12.2?), which is why we generally send F14/F15 (PS2 codes, mapped to F14/F15 ADB) for the brightness keys.

So the Notify thing is in this order : EC -> PS2 -> ADB right ? But how to get the PS2 code of keys like F14 and so on ?
 
So the Notify thing is in this order : EC -> PS2 -> ADB right ? But how to get the PS2 code of keys like F14 and so on ?

Look at ApplePS2ToADBMap.h in the VoodooPS2 project.
 
Look at ApplePS2ToADBMap.h in the VoodooPS2 project.
To be honest, even I read the guide again and again, I am a bit lost

To remap :
- I can remap a PS2 code to a PS2 code or a PS2 code to ADB code (Cf. How to Use Custom Keyboard Mapping)
- I can also use the Notify method to emit PS2 code with EC

I believe this is what I should do : (Using: Brightness Keys)
- Get the key codes of the keys I want to remap (EC or PS2)
- Make a patch for my DSDT in EFI/CLOVER/ACPI/patched :
- I need to convert my EC queries to emit PS2 code then ADB code

I want to do this with the following (cropped) patch :

Code:
into method label _Q15 replace_content
begin
Notify(\_SB.PCI0.LPBC.PS2K, 0x04XX)
end;
end;
with XX being a PS2 code
How to determine the path (\_SB.PCI0.LPBC.PS2K) ? I don't have anything related to PS2 in my DSDT
The closest I have is \_SB.PCI0.LPC.EC, where my EC methods are..

And when I debug, if the patch is successful, doing a Fn+F5 (which is _Q15 in my case) will emit a PS2 code in the console ?
I wish I could configure all my Fn+FXX keys in the system preferences

Please enlighten me
 

Attachments

  • DSDT.zip
    31.4 KB · Views: 86
To be honest, even I read the guide again and again, I am a bit lost

To remap :
- I can remap a PS2 code to a PS2 code or a PS2 code to ADB code (Cf. How to Use Custom Keyboard Mapping)
- I can also use the Notify method to emit PS2 code with EC

Yes/Yes.

I believe this is what I should do : (Using: Brightness Keys)
- Get the key codes of the keys I want to remap (EC or PS2)
- Make a patch for my DSDT in EFI/CLOVER/ACPI/patched :
- I need to convert my EC queries to emit PS2 code then ADB code

EC query methods can emit only PS2 codes (via Notify).
PS2 codes emitted by such EC queries are eventually translated to ADB by the keyboard driver.

How to determine the path (\_SB.PCI0.LPBC.PS2K) ?

Should be obvious by looking at your ioreg. It is the node that the PS2 driver is connected to.
And has the PNP code for PS2 keyboard as 'name'.

The closest I have is \_SB.PCI0.LPC.EC, where my EC methods are..

That is the Embedded controller node, not the PS2 keyboard node.

And when I debug, if the patch is successful, doing a Fn+F5 (which is _Q15 in my case) will emit a PS2 code in the console ?

If done correctly, yes.

I wish I could configure all my Fn+FXX keys in the system preferences

Map each to a code that can be configured in SysPrefs->Keyboard->Shortcuts.
 
Hooray, it works! All my keys are emitting a PS2 Code
I've done the ADB remapping in the Info.plist of the Voodoo controller, under my platform profile, but it's actually not used by the controller. How the VoodooPS2Controller is choosing the right platform profile (DSDT is my guess), and how to make sure a specific profile is used ?

EDIT: I've moved my remaps to the default profile and my remaps are working. Thanks a lot for your help !
But the mapping of my PrintScreen key doesn't work.

I have
ApplePS2Keyboard: sending key e037=0, 0=80 down

So I used
<string>e037=3d</string>
but it doesn't work

I also still have the issue with my mouse (the speed that cannot be set in the System preference pane)
I'm using tluck fork of your VoodooPS2Controller
 
Last edited:
Hooray, it works! All my keys are emitting a PS2 Code
I've done the ADB remapping in the Info.plist of the Voodoo controller, under my platform profile, but it's actually not used by the controller. How the VoodooPS2Controller is choosing the right platform profile (DSDT is my guess), and how to make sure a specific profile is used ?

EDIT: I've moved my remaps to the default profile and my remaps are working. Thanks a lot for your help !
But the mapping of my PrintScreen key doesn't work.

I have
ApplePS2Keyboard: sending key e037=0, 0=80 down

So I used
<string>e037=3d</string>
but it doesn't work

I also still have the issue with my mouse (the speed that cannot be set in the System preference pane)
I'm using tluck fork of your VoodooPS2Controller

Print screen is a special case. Must use "Custom PS2 Map" to map it to a different PS2 code.
You should do all customization of the keymaps with ACPI.
See u430 repo for details.
 
I did that ! The keyboard is now fully functional, thanks a lot RehabMan
I still have the issue with my pad (for the tracking speed), any clues about that?
 
The VoodooPS2Controller.kext I'm using is tluck's fork of yours.

The problem is that I can't set the track speed of the mouse, it has no real effect
You should find everything you need attached.

I was also wondering, I currently have brightness working thanks to your "Brightness Fix" applied to my DSDT
I also have the battery indicator working thanks to your "T440p" applied to my DSDT
Do I need something for Backlight control as it have an impact on my battery?
I read this guide, but after adding the IntelBacklight.kext, I don't have brightness working anymore (the slider is maxed, and not having any effect). Also, the status of my battery is sometimes somehow buggy (not refreshing alone).

We might discuss this matter after I'll managed to fix the trackpad issue, but as I'm attaching all my report file, you might kill two birds with one stone.

If you see anything strange in my conf, please let me know!

EDIT: I removed the EFI/CLOVER/ACPI/patched/DSDT because it seemed to have a strange behaviour with my battery and sleep/wake. It was generated using this guide (ssdtPRGen).
 

Attachments

  • ConsoleOutput.zip
    2.2 KB · Views: 70
  • EFI.zip
    1.8 MB · Views: 71
  • IOReg.zip
    463.9 KB · Views: 82
  • RehabMan.zip
    32.5 KB · Views: 61
Last edited:
The VoodooPS2Controller.kext I'm using is tluck's fork of yours.

The problem is that I can't set the track speed of the mouse, it has no real effect

With my VoodooPS2Trackpad.kext, tracking speed is set in SysPrefs->Trackpad.

I was also wondering, I currently have brightness working thanks to your "Brightness Fix" applied to my DSDT

Your ioreg shows brightness is not implemented correctly.
See guide:
https://www.tonymacx86.com/threads/...rol-using-applebacklightinjector-kext.218222/

EDIT: I removed the EFI/CLOVER/ACPI/patched/DSDT because it seemed to have a strange behaviour with my battery and sleep/wake. It was generated using this guide (ssdtPRGen).

Perhaps you mean SSDT.aml, not patched/DSDT.
But your problem reporting files show both present.
CPU PM requires only SSDT-PluginType1.aml or config.plist/ACPI/SSDT/Generate/PluginType=true as per CPU PM guide linked from the FAQ. You already have Generate/PluginType=true and a Clover new enough to support it. No need for SSDT.aml (generated from ssdtPRgen.sh) or SSDT-PluginType1.aml.

FYI: Your config.plist is a mess. It seems to have AppleHDA Info.plist content mixed in. Why did you do that?
 
Status
Not open for further replies.
Back
Top