Jump to content

Lenovo ThinkPad T420 with UEFI Only


Go to solution Solved by tluck,
5,229 posts in this topic

Recommended Posts

@xtddd - you have to add B1B2 it an extra functions - there are couple of other ones like that int there. they combine 8-bit vars into a single value. there may be some patchmatic scripts now. This DSDT work was done like 3+ years ago to convert relevant 16bit, 32bit variables into a bunch of 8 bit vars per the newer specs for ACPI. 

 

@Frenelius - glad it worked as expected! 

 

@jus12 

so for  my 1600x900 LCD I inject a proper 1600x900 EDID to fix the broken which was common in many of AUO made screens. The LG mfg ones  (like my replacement) seem to be OK.

 

... to get the LCD to display 1920x1080 (non-native) I add that size option to the DisplayOverride files.

i have examples in my zip. they match the vendor/product IDs of the LCD which is defined in the EDID. i presume you have working EDID? I don't know what your native LCD resolution.

 

this screen shows the way to get tap clicks: see Clicking/Dragging/Drag Lock - these seem to be off by default in OSX.

 

attachicon.gifScreen Shot 2016-10-15 at 3.11.41 PM.png

 

NOTE: it would nice/smart of y'all to put your machine specs in your profiles... that way don't have to assume so much when you ask questions.

The lcd works fine on my W520 once booted, only Clover is not booting in the native resolution 1920x1080. It would be nice if that cold. I'm not sure if the override can help here.

you think it can?

sometimes the bios does not support (or have the ability to change to ) the native LCD resolution. Clover will tell what options are available (stop the GUI and hit arrow up/down) or look in the Clover boot.log file. and then you set the size you like in config.plist. i thought you meant after its booted and running. 

sometimes the bios does not support (or have the ability to change to ) the native LCD resolution. Clover will tell what options are available (stop the GUI and hit arrow up/down) or look in the Clover boot.log file. and then you set the size you like in config.plist. i thought you meant after its booted and running. 

Clover Booted and then the MacOS starting. that's what I meant. Just would like to have nice shaped apple, rather than stretched, but it's cosmetics.

 

 

 

Other Topic is Trackpad. I managed to permanently enable touch to click using "defaults" but only one thing missing "two double tap" to get right click I cannot get to work. Any Ideas?

 

This is some hint.

 

defaults read com.apple.applemultitouchtrackpad

{

    ActuateDetents = 1;

    Clicking = 1;

    DragLock = 1;

    Dragging = 1;

    FirstClickThreshold = 1;

    ForceSuppressed = 0;

    SecondClickThreshold = 1;

    TrackpadCornerSecondaryClick = 2;

    TrackpadFiveFingerPinchGesture = 2;

    TrackpadFourFingerHorizSwipeGesture = 2;

    TrackpadFourFingerPinchGesture = 2;

    TrackpadFourFingerVertSwipeGesture = 2;

    TrackpadHandResting = 1;

    TrackpadHorizScroll = 1;

    TrackpadMomentumScroll = 1;

    TrackpadPinch = 1;

    TrackpadRightClick = 1;

    TrackpadRotate = 1;

    TrackpadScroll = 1;

    TrackpadThreeFingerDrag = 0;

    TrackpadThreeFingerHorizSwipeGesture = 2;

    TrackpadThreeFingerTapGesture = 0;

    TrackpadThreeFingerVertSwipeGesture = 2;

    TrackpadTwoFingerDoubleTapGesture = 1;

    TrackpadTwoFingerFromRightEdgeSwipeGesture = 3;

    USBMouseStopsTrackpad = 0;

    UserPreferences = 1;

    version = 11;

}

 

My Commands for tap to click:

defaults read com.apple.applemultitouchtrackpad Clicking -int 1

defaults read com.apple.applemultitouchtrackpad DragLock -int 1

defaults read com.apple.applemultitouchtrackpad Dragging -int 1

 

Enable two finger tap for right click:

 

defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2

defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true

defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1

defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true

defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 2

defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool true

 

 

​Could you share your defaults for?:

 

1. defaults read com.apple.applemultitouchtrackpad

2. defaults -currenthost read -g

i was curious...so i did some sleuthing..

 

apparently those defaults are only part of the story, seems like this what you need to look at for the Click thing is in a .GlobalPreferences file

 

i turned everything on in the Trackpad prefs and then everything off and ran diff

$ cd ~/Library/Preferences/ByHost

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple
    com.apple.trackpad.version = 5
    com.apple.trackpad.fourFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerPinchSwipeGesture = 2
    com.apple.trackpad.fiveFingerPinchSwipeGesture = 2
    com.apple.mouse.tapBehavior = 3
    com.apple.trackpad.rotateGesture = true
    com.apple.ColorSync.Devices = Dict {
    com.apple.trackpad.enableSecondaryClick = true
    com.apple.trackpad.pinchGesture = true
    com.apple.trackpad.scrollBehavior = 2
    com.apple.trackpad.twoFingerFromRightEdgeSwipeGesture = 3
    com.apple.trackpad.threeFingerDragGesture = false
    com.apple.trackpad.threeFingerTapGesture = 2
    com.apple.trackpad.threeFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerVertSwipeGesture = 2
    com.apple.trackpad.threeFingerVertSwipeGesture = 2
    com.apple.mouse.swapLeftRightButton = false
    com.apple.trackpad.momentumScroll = true
    com.apple.trackpad.twoFingerDoubleTapGesture = 1

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > on

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > off

$ diff on off
5c5
<     com.apple.mouse.tapBehavior = 3
---
>     com.apple.mouse.tapBehavior = 0
8c8
<     com.apple.trackpad.enableSecondaryClick = true
---
>     com.apple.trackpad.enableSecondaryClick = false
10c10
<     com.apple.trackpad.scrollBehavior = 2
---
>     com.apple.trackpad.scrollBehavior = 0

@xtddd - i am not understanding your question or problem? what sensors are missing? FAN? if so you can follow the example in the T420 DSDT. 

 

 

find the FAN variable.

if it is 16 bit - split into to values where defined.

and use B1B2 function.

 

you should be able to cut and paste the t420 SMCD device - define the B1B2 functions (see end of dsdt) and look for the HFN1 and HFN2 to do same variable change.

@tluck hi,,,,i have the same devie(smcd) with the post of patches for 420 before i watch this post...but he say install ACPISensors.kext (change the IONameMatch to MONITOR) ,,i find three IONameMatch in acpisensors.kext...so i dont know which IONameMatch to change....

some the old patches from Manwe150 original post will not work anymore. thats why the DSDT is the way it is now. i suggest your change the name to MON0000 in SMCD device so the iasl compiler will not complain.

 

the ACPISensors kext looks for any of these 4 names:

 

tluck@Toms-T460 /Extra/kexts-used/common/FakeSMC.kext/Contents/PlugIns/ACPISensors.kext/Contents
$ grep -i MON *.plist
  <key>ACPI Customizable Monitoring Plugin</key>
    <string>monitor</string>
    <string>MONITOR</string>
    <string>MON0000</string>
    <string>MON00000</string>
    <string>acpi-monitor</string>
  <key>PTID Device Monitoring Plugin</key>
  <key>Thermal Zone Monitoring Plugin</key>

@tluck..need to modify ??:::

<key>ACPI Customizable Monitoring Plugin</key>

    <string>monitor</string>
    <string>MONITOR</string>
    <string>MON0000</string>
    <string>MON00000</string>
    <string>acpi-monitor</string>

i was curious...so i did some sleuthing..

 

apparently those defaults are only part of the story, seems like this what you need to look at for the Click thing is in a .GlobalPreferences file

 

i turned everything on in the Trackpad prefs and then everything off and ran diff

$ cd ~/Library/Preferences/ByHost

$ @
    com.apple.trackpad.version = 5
    com.apple.trackpad.fourFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerPinchSwipeGesture = 2
    com.apple.trackpad.fiveFingerPinchSwipeGesture = 2
    com.apple.mouse.tapBehavior = 3@
    com.apple.trackpad.rotateGesture = true
    com.apple.ColorSync.Devices = Dict {
    com.apple.trackpad.enableSecondaryClick = true
    com.apple.trackpad.pinchGesture = true
    com.apple.trackpad.scrollBehavior = 2
    com.apple.trackpad.twoFingerFromRightEdgeSwipeGesture = 3
    com.apple.trackpad.threeFingerDragGesture = false
    com.apple.trackpad.threeFingerTapGesture = 2
    com.apple.trackpad.threeFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerVertSwipeGesture = 2
    com.apple.trackpad.threeFingerVertSwipeGesture = 2
    com.apple.mouse.swapLeftRightButton = false
    com.apple.trackpad.momentumScroll = true
    com.apple.trackpad.twoFingerDoubleTapGesture = 1

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > on

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > off

$ diff on off
5c5
<     com.apple.mouse.tapBehavior = 3
---
>     com.apple.mouse.tapBehavior = 0
8c8
<     com.apple.trackpad.enableSecondaryClick = true
---
>     com.apple.trackpad.enableSecondaryClick = false
10c10
<     com.apple.trackpad.scrollBehavior = 2
---
>     com.apple.trackpad.scrollBehavior = 0

@xtddd - i am not understanding your question or problem? what sensors are missing? FAN? if so you can follow the example in the T420 DSDT. 

 

 

find the FAN variable.

if it is 16 bit - split into to values where defined.

and use B1B2 function.

 

you should be able to cut and paste the t420 SMCD device - define the B1B2 functions (see end of dsdt) and look for the HFN1 and HFN2 to do same variable change.

 

Thanks @tluck for looking into that. I have actually two .GlobalPreferences files. But all seems to be already setup through the default write commands.

Can I actually remove the older file? Would it harm. I've rebooted system couple of times already and the two finger double tap doesn't work.

I've found patch prefpane for trackpad, which enabled the settings to be set and all then works, but after reboot everything goes back to normal, and touch can be again enabled by opening the prefpane, so not perfect solution.

 

Older .Global Preferences:

 /usr/libexec/PlistBuddy -c print .GlobalPreferences.62723277-8A85-5BAC-8FFF-79008D51CA1F.plist |grep com.apple

    com.apple.mouse.tapBehavior = 3

    com.apple.keyboard.modifiermapping.1061-257-0 = Array {

    com.apple.trackpad.scrollBehavior = 2

    com.apple.trackpad.threeFingerTapGesture = 0

    com.apple.trackpad.fourFingerPinchSwipeGesture = 2

    com.apple.ColorSync.Devices = Dict {

    com.apple.trackpad.fiveFingerPinchSwipeGesture = 2

    com.apple.trackpad.twoFingerFromRightEdgeSwipeGesture = 3

    com.apple.trackpad.momentumScroll = true

    com.apple.trackpad.threeFingerVertSwipeGesture = 2

    com.apple.trackpad.twoFingerDoubleTapGesture = 1

    com.apple.trackpad.enableSecondaryClick = true

    com.apple.trackpad.version = 5

    com.apple.trackpad.fourFingerHorizSwipeGesture = 2

    com.apple.trackpad.threeFingerHorizSwipeGesture = 2

    com.apple.trackpad.threeFingerDragGesture = false

    com.apple.trackpad.pinchGesture = true

    com.apple.trackpad.fourFingerVertSwipeGesture = 2

    com.apple.trackpad.rotateGesture = true

    com.apple.keyboard.modifiermapping.1452-65535-0 = Array {

 

Newer .Global Preferences:

/usr/libexec/PlistBuddy -c print .GlobalPreferences.9BBD27DC-D5BD-536E-8843-C9FAB6420EE0.plist |grep com.apple

    com.apple.keyboard.modifiermapping.1452-65535-0 = Array {

    com.apple.keyboard.modifiermapping.1061-257-0 = Array {

    com.apple.trackpad.scrollBehavior = 2

    com.apple.trackpad.threeFingerTapGesture = 0

    com.apple.trackpad.fourFingerPinchSwipeGesture = 2

    com.apple.ColorSync.Devices = Dict {

    com.apple.trackpad.fiveFingerPinchSwipeGesture = 2

    com.apple.trackpad.twoFingerDoubleTapGesture = 1

    com.apple.trackpad.momentumScroll = true

    com.apple.trackpad.twoFingerFromRightEdgeSwipeGesture = 3

    com.apple.trackpad.threeFingerVertSwipeGesture = 2

    com.apple.trackpad.enableSecondaryClick = true

    com.apple.trackpad.version = 5

    com.apple.trackpad.fourFingerHorizSwipeGesture = 2

    com.apple.trackpad.threeFingerHorizSwipeGesture = 2

    com.apple.trackpad.threeFingerDragGesture = false

    com.apple.trackpad.pinchGesture = true

    com.apple.trackpad.trackpadCornerBehavior = 1

    com.apple.trackpad.fourFingerVertSwipeGesture = 2

    com.apple.trackpad.rotateGesture = true

    com.apple.mouse.tapBehavior = 3

i was curious...so i did some sleuthing..

 

apparently those defaults are only part of the story, seems like this what you need to look at for the Click thing is in a .GlobalPreferences file

 

i turned everything on in the Trackpad prefs and then everything off and ran diff

$ cd ~/Library/Preferences/ByHost

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple
    com.apple.trackpad.version = 5
    com.apple.trackpad.fourFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerPinchSwipeGesture = 2
    com.apple.trackpad.fiveFingerPinchSwipeGesture = 2
    com.apple.mouse.tapBehavior = 3
    com.apple.trackpad.rotateGesture = true
    com.apple.ColorSync.Devices = Dict {
    com.apple.trackpad.enableSecondaryClick = true
    com.apple.trackpad.pinchGesture = true
    com.apple.trackpad.scrollBehavior = 2
    com.apple.trackpad.twoFingerFromRightEdgeSwipeGesture = 3
    com.apple.trackpad.threeFingerDragGesture = false
    com.apple.trackpad.threeFingerTapGesture = 2
    com.apple.trackpad.threeFingerHorizSwipeGesture = 2
    com.apple.trackpad.fourFingerVertSwipeGesture = 2
    com.apple.trackpad.threeFingerVertSwipeGesture = 2
    com.apple.mouse.swapLeftRightButton = false
    com.apple.trackpad.momentumScroll = true
    com.apple.trackpad.twoFingerDoubleTapGesture = 1

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > on

$ /usr/libexec/PlistBuddy -c print .GlobalPreferences.5F91CEA7-0EC9-590C-8B25-3CF61527E083.plist |grep com.apple > off

$ diff on off
5c5
<     com.apple.mouse.tapBehavior = 3
---
>     com.apple.mouse.tapBehavior = 0
8c8
<     com.apple.trackpad.enableSecondaryClick = true
---
>     com.apple.trackpad.enableSecondaryClick = false
10c10
<     com.apple.trackpad.scrollBehavior = 2
---
>     com.apple.trackpad.scrollBehavior = 0

@xtddd - i am not understanding your question or problem? what sensors are missing? FAN? if so you can follow the example in the T420 DSDT. 

 

 

find the FAN variable.

if it is 16 bit - split into to values where defined.

and use B1B2 function.

 

you should be able to cut and paste the t420 SMCD device - define the B1B2 functions (see end of dsdt) and look for the HFN1 and HFN2 to do same variable change.

 

OK, now I found best solution.

 

Tluck, please update your trackpad.kext accordingly.

 

I added couple of more options. Touching works great now.

 

<key>TrackPad</key>

<dict>

<key>BogusDeltaThreshX</key>

<integer>400</integer>

<key>BogusDeltaThreshY</key>

<integer>350</integer>

<key>Clicking</key>

<integer>1</integer>

<key>DivisorX</key>

<integer>1</integer>

<key>DivisorY</key>

<integer>1</integer>

<key>DragLock</key>

<integer>1</integer>

<key>DragLockTempMask</key>

<integer>262148</integer>

<key>Dragging</key>

<integer>1</integer>

<key>FakeMiddleButton</key>

<false/>

<key>FingerZ</key>

<integer>47</integer>

<key>MomentumScrollThreshY</key>

<integer>16</integer>

<key>MouseMultiplierX</key>

<integer>8</integer>

<key>MouseMultiplierY</key>

<integer>8</integer>

<key>MultiFingerHorizontalDivisor</key>

<integer>4</integer>

<key>MultiFingerVerticalDivisor</key>

<integer>4</integer>

<key>OutsidezoneNoAction When Typing</key>

<integer>0</integer>

<key>PalmNoAction Permanent</key>

<integer>0</integer>

<key>PalmNoAction When Typing</key>

<integer>0</integer>

<key>Resolution</key>

<integer>1200</integer>

<key>ScrollDeltaThreshX</key>

<integer>20</integer>

<key>ScrollDeltaThreshY</key>

<integer>20</integer>

<key>ScrollResolution</key>

<integer>1600</integer>

<key>SmoothInput</key>

<false/>

<key>TrackpadHorizScroll</key>

<integer>1</integer>

<key>TrackpadMomentumScroll</key>

<integer>1</integer>

<key>TrackpadRightClick</key>

<integer>1</integer>

<key>TrackpadScroll</key>

<integer>1</integer>

<key>USBMouseStopsTrackpad</key>

<integer>0</integer>

<key>UnitsPerMMX</key>

<integer>200</integer>

<key>UnitsPerMMY</key>

<integer>200</integer>

<key>UnsmoothInput</key>

<false/>

</dict>

Hi tluck

 

I am use"T420_UEFI-Clover-b3794_10.11_10.12-2016-10-10.zip" for my X220 and install OS X 10.11.6

Every thing is OK.

But I am find one problem one touchpad.

If I use the <PrtSc> or F8 key to touchpad off and the touchpad top button (3 button) off.

The trackpoint can work for cursor move, but no button (right/mid/left click) can use.

If I am use early file "T420_UEFI-Clover-b3578_10.10_10.11_2016_06-27.zip", it is no this problem.

Can you fix this problem?

PrtScr disable touchpad in new version of voodoops2. Why u use this button it isn't even mapped to do anything 

Because sometime I want use trackpoint only.

On older version VoodooPS2 use the <PrtSc> or F8 key disable touchpad and the red button can work for trackpoint.

The trackpoint use this button to right/mid/left click

The newest version VoodooPS2 use the <PrtSc> or F8 key disable touchpad and the red button cannot work for trackpoint.

The trackpoint no button can right/mid/left click.

So if I am use the <PrtSc> or F8 key to disable touchpad, then the trackpoint cannot use.

Jus12, does the Touchpad have multi touch gestures?

 

Sent from my SM-G928F using Tapatalk

Well, all the options I've listed are the options available I suppose. Pinch to zoom is not mentioned. But things like Launchpad, view desktop, swipe between desk opts can be enabled. (use keyboard shortcuts configurator to make sure those gestures are aligned).

@jus12 - cool. thanks.  i will try out your settings in a few days. i am in Puerto Rico on vacation without my T420 - so i cant test anything until i get back home.

 

@jenyunhuang - yes F8 (if you use the newer Key mapping) or PrtScr is supposed to turn off/on TrackPad - windows has a similar thing.

 

it the same VoodooPS2Controller kext as before but with different settings.  you can use the key mappings or not. but if you want to use the kexts in the older packaging thats fine too. there are differrent Info.plist options to switch behavior to suite your needs.

 

@NSCXP2005 - remember the Lenovo touchPad is not an apple (magic) TrackPad - so can do some 1,2,3 finger gestures and similar features because of RehabMan's kext/driver.

With my almost perfect setup on W520 with Nvidia, I'm missing Airplay icon in the menu even though I can tick the box in the display setting.

Do you know where to start looking for the fix. T420 with Intel graphics is working great and Airplay is there.

@jus12 - cool. thanks.  i will try out your settings in a few days. i am in Puerto Rico on vacation without my T420 - so i cant test anything until i get back home.

 

@jenyunhuang - yes F8 (if you use the newer Key mapping) or PrtScr is supposed to turn off/on TrackPad - windows has a similar thing.

 

it the same VoodooPS2Controller kext as before but with different settings.  you can use the key mappings or not. but if you want to use the kexts in the older packaging thats fine too. there are differrent Info.plist options to switch behavior to suite your needs.

 

@NSCXP2005 - remember the Lenovo touchPad is not an apple (magic) TrackPad - so can do some 1,2,3 finger gestures and similar features because of RehabMan's kext/driver.''

@tluck after some more testing, I figured out that in general, writing into defaults works fine. The only missing point (for me) was the two finger double tap as right click (this can be enabled in the voodoops2trackpad.kext). So you cannot use only voodoops2trackpad.kext only, as if you disable the defaults clicking=0 nothing will work. I hope that makes sense.

×
×
  • Create New...