Jump to content
NagRaj

Yosemite on HP Envy 15-k204tx, 5th Gen i7, Intel HD 5500/NVIDIA GeForce GTX 850M

14 posts in this topic

Recommended Posts

I've a HP Envy 15-k204tx, 5th Gen i7- 5500U ( broadwell ).

 

Task : Trying to make Yosemite work on this laptop. It has Intel HD 5500 Graphics and NVIDIA GeForce GTX 850M (Optimus).

 

Success so far : I've successfully installed Yosemite 10.10.3 on a separate partition. Can boot from the clover pen drive.

 

Issues : Graphics is not accelerated. There are a few more but my primary focus here is to make Graphics work.

 

What is understood : 1) Optimus does not work, so forget about nvdia.

 

How / What I did :

1) Created a bootable pendrive from the Yosemite app downloaded from app store.

2) Installed Clover to the fat partition of the pendrive.

3) Used clover options like kext-dev-mode=1 nv_disable=1

4) Successfully installed Yosemite and booted successfully using the clover on pendrive.

 

Using config.plist, injected Intel and ig-platform-id=16160000 and also tried with ig-platform-id=16160002 device-id=80861616

 

Graphics card is identified as "Intel HD 5500" but the vram that it shows is 7 mb.

My system has 4 GB of graphics memory. From what I've read on the internet, atleast 1536 mb should be recognized as vram.

 

No kext for graphics is loaded - obviously.

 

In tutorials on the internet, I come to know that I have to check DVMT and it should be atleast 64 mb to pass the stolenMemory error.

 

I tried to change DVMT in various ways. For instance, I booted with EFI-shell, used "setup_var 0x18c 0x3" which could not change the variable value and threw error.

 

So i checked with "setup_var2 0x18c 0x3" which did change the value but it was reverted once the system rebooted.

 

I tried to edit the file "/sys/firmware/efi/efivars/Setup-XXX" but was unable to save it.

 

Access to write to efivars was denied each time. (Yes i did use sudo).

 

[P.S. 0x18c is my DVMT variable. Bios is Insyde F.34]

 

 

So I had to patch AppleIntelBDWGraphicsFramebuffer binary to skip stolenMemory Error. This allowed me to install Yosemite and boot.

 

What is working :

1) Ethernet.

2) Keyboard / touchpad / touchscreen.

 

What is not working :

1) Graphics

2) Wireless

3) Audio

4) Bluetooth

5) and more.

 

Can anyone help me out here to make the graphics work ?

Share this post


Link to post
Share on other sites
Advertisement

Austere J has the info you need about the VRAM thing. In many situation, EFI Shell methods won't work, so I suggest using Linux to change it

Share this post


Link to post
Share on other sites

Ya I tried with Ubuntu. Won't let me write to /sys/firmware/efi/efivars.

 

Its always access denied or invalid argument.

 

If you've the same system could you please share your bios?

Share this post


Link to post
Share on other sites

hi,

 

two way to patch AppleIntelBDWGraphicsFramebuffer binary:

 

1: Patch the file directly

 

Make a copy of the kext on your desktop

show packages / contents/mac/AppleIntelBDWGraphicsFramebuffer

Open this file with hex editor (hex fiend)

select file/find...

type your code to find and replace

apply and save

 

That's it !

 

2: patch on vram

 

use clover kext to patch options

 

open your config.plist with your favorite editor (plistedit pro is good for hexa patching)

you should have something like that:

<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Disable minStolenSize less or equal fStolenMemorySize assertion, 10.10.x (based on Austere.J patch)</string>
				<key>Name</key>
				<string>disabled:AppleIntelBDWGraphicsFramebuffer</string>
				<key>Find</key>
				<data>Oc92PA==</data>
				<key>Replace</key>
				<data>Oc/rPA==</data>
			</dict>
 

this code is one for HD5500 from rehabman, you can have the full config.plist here:

https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/config_HD5300_5500_6000.plist

 

cheers

Share this post


Link to post
Share on other sites

hi,

 

two way to patch AppleIntelBDWGraphicsFramebuffer binary:

 

1: Patch the file directly

 

Make a copy of the kext on your desktop

show packages / contents/mac/AppleIntelBDWGraphicsFramebuffer

Open this file with hex editor (hex fiend)

select file/find...

type your code to find and replace

apply and save

 

That's it !

 

2: patch on vram

 

use clover kext to patch options

 

open your config.plist with your favorite editor (plistedit pro is good for hexa patching)

you should have something like that:

<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Disable minStolenSize less or equal fStolenMemorySize assertion, 10.10.x (based on Austere.J patch)</string>
				<key>Name</key>
				<string>disabled:AppleIntelBDWGraphicsFramebuffer</string>
				<key>Find</key>
				<data>Oc92PA==</data>
				<key>Replace</key>
				<data>Oc/rPA==</data>
			</dict>
 

this code is one for HD5500 from rehabman, you can have the full config.plist here:

https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/config_HD5300_5500_6000.plist

 

cheers

I think itu should be

<key>Name</key>

                <string>AppleIntelBDWGraphicsFramebuffer</string>

 

You need to remove "disable:" before "AppleIntelBDWGraphicsFramebuffer" or it won't work. Am i right??

 

Share this post


Link to post
Share on other sites

i have syccesfulyly installed , how can i activate the grphics? i have set in bios 64mb , and i use the config of rehabman, my hd5500 isnt recognize

Share this post


Link to post
Share on other sites

i have syccesfulyly installed , how can i activate the grphics? i have set in bios 64mb , and i use the config of rehabman, my hd5500 isnt recognize

Upload your Vendor and Device ID and i will patch it for you :)

Share this post


Link to post
Share on other sites

Upload your Vendor and Device ID and i will patch it for you :)

i dont understand what is vendor and device id

i have an hp 15 ac158nl  with i3 5005u and hd5500

i have uploaded my clover folder 

thank you!

Merry Christmas

CLOVER.rar

Share this post


Link to post
Share on other sites

Upload your Vendor and Device ID and i will patch it for you :)

hi i have used dpci manager for vendor and device id i uploaded a photo of vga i will list all vendor and device

Vendor is the same for all : 8086, 

device:1604 (bridge,host brisge),device: 1616 (display controller, vga compatible controller),device:160C (multimedia controller,audio device)

device:1603(signal processing controller, signal processing controller),device:9CBA comunication controller,device: 9CA0 multimedia controller audio device,

device:9C90 BRIDGE, pci bridge ; 

post-1414874-0-32349500-1451125130_thumb.jpg

Share this post


Link to post
Share on other sites

hi i have used dpci manager for vendor and device id i uploaded a photo of vga i will list all vendor and device

Vendor is the same for all : 8086, 

device:1604 (bridge,host brisge),device: 1616 (display controller, vga compatible controller),device:160C (multimedia controller,audio device)

device:1603(signal processing controller, signal processing controller),device:9CBA comunication controller,device: 9CA0 multimedia controller audio device,

device:9C90 BRIDGE, pci bridge ; 

Try with this config -- config.plist.zip

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By aaroncete17
      Can someone help me to detect the graph please

    • By ltooz_audis
      OK, it's been a while since I posted something here. The new Catalina was out last month, the current version is 10.15.1. I decided to install on my HP Envy 13" Kaby Lake. This one should work for all Kaby Lake laptops out there and also with MOJAVE OS too. So read carefully and watch the videos.
      1. You can't install Catalina on MBR unless you patch it, but it too complicated for me and I like to try the APFS system now instead of HFS. So, if you create the external USB drive using Boot Disk Utility, it won't install.
      2. Replace original WIFI-Bluetooth COMBO with DW1560 or better.
      3. Thanks to Lilu and people on Hackintosh world, things are much easier to install than before: Clover boot loader 5070, Lilu 1.3.9, Whatevergreen 1.3.4, AppleAlc 1.4.3, AirportBrcmFixup.kext, Bluetooth Patchram3 (I found BrcmPatchRAM3.kext + BrcmFirmwareData.kext + BrcmBluetoothInjector.kext), Hackintool is a must, VoodooPS2Controller.kext for trackpad, USBinjectAll , ACPIBatteryManager from rehabman, FakeSMC.kext.
      4. Use a 1GB USB flash drive, use Boot Disk Utility to create an EFI folder, then copy it to the EFI folder of the External USB SSD hard drive.
      I'll post more in details, but with these, you can boot Catalina without any problems.
       
      Cheers,
      Louis
       
    • By ludufre
      New guide available for macOS Catalina 10.15 (i3 and i5 versions)!
       
       
      Installing OS X Yosemite 10.10.3 on ASUS VivoBook S400C (also know as S400CA)
      Specifically in S400CA-CA178H model, most likely all other models are compatible
      Can't boot S400CA-CA206H due HD3000 issues (i3-2375M model)
       
        

      Updated 17/06/15 #1:
       
      - Brightness now work. DSDT patch below.
       
       
       
      - Updated attachment with DSDT.aml and missing VoodooHDA kext.
      - Added TO DO list.
       
      Updated 17/06/15 #2:
       
      - WebCam now work. Kext AnyiSightCam.
       
       
       
      - Update attachment with new WebCam kext.
       
      Updated 19/06/15 #1:
       
      - Can't boot installation in S400C-CA206H model (i3-2375M/HD3000).
       
       
       
      - VGA tested. Don't work.
      - Boot logo work. Missed CsmVideoDxe-64 on my install.
       
      Updated 21/06/15 #1:
       
      - I Forgot of the need of FakeSMC.kext.
       
       
       
       
      Updated 22/11/17 #1:
       
      - High Sierra 10.13.1 on ASUS Vivobook S400C (S400CA-CA178H).

       
      Prequel
       
      Hi, my name is Luan and today I will show how I installed the OS X Yosemite version 10.10.3 on my ultrabook.
      I know that my procedure maybe can be made in other ways, but this is about how I made it.
      I am part of this world for four years. Since the launch of XCode 7 and no need to sign the Developer Program to test applications on the iPhone, I decided to install OS X.
      God bless WWDC15 (I'm not religious, just a popular saying in my country).
       
       
      What works and what does not work
       
      - Processor ->  Work. i5-3317U @ 1.7Ghz/2.6Ghz.  SpeedStep 8 to 26 stages. AsusAICPUPM <true/> in Clover config.plist. 
      - Video Card ->  Work. HD4000. Full QE/CI.
      - Chipset ->  Work.
      - HDMI ->  Work.
      - VGA ->  Not work. I did not have time to fix yet.
      - Audio ->  Work. Kext VoodooHDA + AppleHDADisabler.
      - WiFi ->  Work. Replaced by Athero 9285 Wifi/Bluetooth.
      - Ethernet ->  Work. Kext Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8.
      - Touchpad and keyboard ->  Work. Kext ELAN, FocalTech and Synaptics (Smart Touchpad) Driver (Mac OS X).
      - FN keyboards keys ->  Not work. I did not have time to fix yet.
      - Brightness control ->  Work. DSDT patch.
      - Sleep ->  Work.
      - Battery ->  Work. Kext ACPIBatteryManager by RehabMan and DSDT patch (below).
      - Card Reader -> Not tested. I have no adapters.
      - Integrated Camera ->  Work. Kext AnyiSightCam.
      - Bluetooth ->  Work. Kext Bluetooth Firmware Uploader and ControllerPowerState change to 1.
      - Boot Logo ->  Work.
       
       
      What I needed to install
       
      - Running install of Yosemite on VMware -> Downloaded version 10.10 via torrent (Google it). You can use a real Mac of an friend. I believe that Snow Leopard (10.6), Lion (10.7), Mountain Lion (10.8), Mavericks (10.9) also work.
      - Two USB flash drives of 8GB -> One for OSX install and another to the bootloader. This second not need to be 8GB, a 256MB is perfect.
      - OS X Yosemite install app -> Downloaded via App Store inside the virtual machine. I used version 10.10.3.
      - CloverEFI -> Also downloaded inside the virtual machine. I used build 3229.
      - DSDT patch skills -> Needed to battery works. How to patch DSDT.
       
      P.s.: You can use a single flash drive, in my install I used two because I don't wanted lose the os install created on the main flash drive.
       
       
      How I created flash cards
       
      Install flash drive:
       
      Partially used @snatch guide. More specifically this part:
       
       
       
       
       
       
      In the part above used the first flash drive (8GB).
       
      Bootloader flash drive:
       
      Format the second flash drive with GUID partition and Journaled file system type. If you want to use only one flash card, don't format!
       
      Downloaded the CloverEFI (used 3229) and installed with this options:

      Options:
       
      - Install for UEFI booting only
      - Install Clover in the ESP
      - Drivers64UEFI - CsmVideoDxe-64
      - Drivers64UEFI - OsxAptioFixDrv-64
       
      Will be created a partition named EFI. Edit the /EFI/CLOVER/config.plist and change those values:
       
      - SystemParameters - InjectKexts - <true/>
      - Graphics - Inject - ATI - <false/>
      - Graphics - Inject - Intel - <true/>
      - Graphics - ig-platform-id - 0x01660003
      - KernelAndKextPatches - AsusAICPUPM - <true/>
       
      P.s.: I will provide below my config.plist as attachment.
       
      Now you will capable to boot in installation, but your keyboard and mouse will not work. Let's fix that:
       
      - Download the Smart Touchpad kext from here. I used the version 4.3. This also enable the touchscreen.
      - Download the FakeSMC kext from here. I used the version 6.9.1315. This is very important. Can't boot without it.
      - Put the Kexts inside /EFI/CLOVER/kexts/10.10/
       
      Now you can start the instalation without problem (I guess).
       
       
      BIOS Setup Configuration
       
      - Intel Virtualization Technology: Disabled
      - VT-d: Disabled
      - USB Configuration - XHCI Pre-Boot Mode: Disabled
       
      P.s.: BIOS version 210.
       
       
      Installing indeed
       
      - Plug in the two flash drives.
      - When appear the Asus logo, press ESC once to enter Boot Menu.
      - Select the flash drive name with UEFI prefix. In my case "UEFI: KingstonDataTraveler 2.0PMAP".
      - On CloverEFI menu, use arrow to mark the flash drive with de OS X install, press Space on keyboard and select: "Boot Mac OS X in verbose mode".
      - As usual, format your HDD or SSD as GUID and Journaled. Make more partitions if you need. Take a note of the OSX partition name you entered on Disk Utillity.
      - After that, go ahead as always and start the instalation.
      - Go in the kitchen grab some lunch. You deserve it.
       
       
      Post installation
       
      What we have so far? The system installed on your ultrabook. Now you need to get rid of bootable flash drive installing the bootloader on HDD or SSD.
       
      Installing the bootloader in internal HDD or SSD:
       
      - Boot again selecting the flash drive on Boot menu. Same you did before.
      - Now select the partition you noted early.
      - If you do everything wright, the system will start normally.
      - Now you will use the CloverEFI install package again (same options from above). This time, the target will be your OS X installed partition.
       
      Our adorable ultrabook don't boot EFI if partition on the HDD or SSD if isn't MS-DOS. We will need to format and install Clover again.
       
      - Open the Terminal and enter "sudo -s".
      - Run the command: "diskutil list".
      - Take note of what location is your EFI. Usually it is "rdisk0s1". Make sure it's correct or you loose your data.
      - Now, let's format it, now execute: "newfs_msdos -v EFI -F 32 /dev/rdiskXsX". rdiskXsX is your EFI partition location from line above.
       
      Now you need to copy all data of your flash card bootloader to the root of your new created EFI partition on internal disk.
      This EFI partition is unmounted. Mount with "diskutil mount /dev/rdiskXsX".
       
      Just restart without flash drives to test.
       
      Others Kexts:
       
      Download the kexts from the links below. I strongly recommend always use newest versions. If you are too lazy, I attach on end of the post.
       
      Ethernet: ALXEthernet
      Sound: VoodooHDA (You may have to select the output there in System Preferences)
      Battery: ACPIBatteryManager
      Bluetooth: BTFirmwareUploader
      Integrated Camera: AnyiSightCam
       
      All kexts will be placed inside /EFI/CLOVER/kexts/10.10/, mount again this partition (diskutil mount /dev/rdiskXsX) for it.
       
      Now we need to add Battery patch to a new DSDT:
       
      #Maintained by: RehabMan for: Laptop Patches #battery_ASUS-N55SL.txt # created by RehabMan 8/12/2013 # created originally for jesselid # works for: # ASUS N55SL, BIOS rev. 204 # ASUS VivoBook series # ASUS Zenbook UX31A # ASUS UX301LA # ASUS X553E-SX399V # ASUS F501A # ASUS K55VM # ASUS U46SV, BIOS rev. 2.04 # ASUS N43 # ASUS PU500CA (90NB00F1-M01120) # ASUS N73SV # ASUS X401A-WX108 # ASUS F551CA Bios rev. 207 # ASUS S551LB VivoBook # ASUS ZenBook UX32VD # ASUS F550L-X455H # ASUS X53S # ASUS K550JD-XX003H # ASUS G53SX # ASUS K56CB # ASUS UX305 into method label B1B2 remove_entry; into definitionblock code_regex . insert begin Method (B1B2, 2, NotSerialized) { Return (Or (Arg0, ShiftLeft (Arg1, 8))) }\n end; # not really for battery, but might come in handy to read fan speed(s) into device label EC0 code_regex TAH0,\s+16 replace_matched begin TH00,8,TH01,8 end; into device label EC0 code_regex TAH1,\s+16 replace_matched begin TH10,8,TH11,8 end; into method label TACH code_regex \(TAH0, replace_matched begin (B1B2(TH00,TH01), end; into method label TACH code_regex \(TAH1, replace_matched begin (B1B2(TH10,TH11), end; into method label GFAN code_regex \(\\_SB\.PCI0\.LPCB\.EC0\.TAH0, replace_matched begin (B1B2(\\_SB.PCI0.LPCB.EC0.TH00,\\_SB.PCI0.LPCB.EC0.TH01), end; # battery EC into device label EC0 code_regex B0SN,\s+16 replace_matched begin B0S0,8,B0S1,8 end; into device label EC0 code_regex B1SN,\s+16 replace_matched begin B1S0,8,B1S1,8 end; into method label BIFA code_regex \(B0SN, replace_matched begin (B1B2(B0S0,B0S1), end; into method label BIFA code_regex \(B1SN, replace_matched begin (B1B2(B1S0,B1S1), end; into device label EC0 code_regex DT2B,\s+16 replace_matched begin T2B0,8,T2B1,8 end; into method label SMBR code_regex \(DT2B, replace_matched begin (B1B2(T2B0,T2B1), end; into method label SMBW code_regex Store\s+\(([^,]*),\s+DT2B\) replace_matched begin Store(%1,T2B0) Store(ShiftRight(%1,8),T2B1) end; into device label EC0 insert begin Method (RDBA, 0, Serialized)\n {\n Name (TEMP, Buffer(0x20) { })\n Store (BA00, Index(TEMP, 0x00))\n Store (BA01, Index(TEMP, 0x01))\n Store (BA02, Index(TEMP, 0x02))\n Store (BA03, Index(TEMP, 0x03))\n Store (BA04, Index(TEMP, 0x04))\n Store (BA05, Index(TEMP, 0x05))\n Store (BA06, Index(TEMP, 0x06))\n Store (BA07, Index(TEMP, 0x07))\n Store (BA08, Index(TEMP, 0x08))\n Store (BA09, Index(TEMP, 0x09))\n Store (BA0A, Index(TEMP, 0x0A))\n Store (BA0B, Index(TEMP, 0x0B))\n Store (BA0C, Index(TEMP, 0x0C))\n Store (BA0D, Index(TEMP, 0x0D))\n Store (BA0E, Index(TEMP, 0x0E))\n Store (BA0F, Index(TEMP, 0x0F))\n Store (BA10, Index(TEMP, 0x10))\n Store (BA11, Index(TEMP, 0x11))\n Store (BA12, Index(TEMP, 0x12))\n Store (BA13, Index(TEMP, 0x13))\n Store (BA14, Index(TEMP, 0x14))\n Store (BA15, Index(TEMP, 0x15))\n Store (BA16, Index(TEMP, 0x16))\n Store (BA17, Index(TEMP, 0x17))\n Store (BA18, Index(TEMP, 0x18))\n Store (BA19, Index(TEMP, 0x19))\n Store (BA1A, Index(TEMP, 0x1A))\n Store (BA1B, Index(TEMP, 0x1B))\n Store (BA1C, Index(TEMP, 0x1C))\n Store (BA1D, Index(TEMP, 0x1D))\n Store (BA1E, Index(TEMP, 0x1E))\n Store (BA1F, Index(TEMP, 0x1F))\n Return (TEMP)\n }\n end; into device label EC0 insert begin Method (WRBA, 1, Serialized)\n {\n Name (TEMP, Buffer(0x20) { })\n Store (Arg0, TEMP)\n Store (DerefOf(Index(TEMP, 0x00)), BA00)\n Store (DerefOf(Index(TEMP, 0x01)), BA01)\n Store (DerefOf(Index(TEMP, 0x02)), BA02)\n Store (DerefOf(Index(TEMP, 0x03)), BA03)\n Store (DerefOf(Index(TEMP, 0x04)), BA04)\n Store (DerefOf(Index(TEMP, 0x05)), BA05)\n Store (DerefOf(Index(TEMP, 0x06)), BA06)\n Store (DerefOf(Index(TEMP, 0x07)), BA07)\n Store (DerefOf(Index(TEMP, 0x08)), BA08)\n Store (DerefOf(Index(TEMP, 0x09)), BA09)\n Store (DerefOf(Index(TEMP, 0x0A)), BA0A)\n Store (DerefOf(Index(TEMP, 0x0B)), BA0B)\n Store (DerefOf(Index(TEMP, 0x0C)), BA0C)\n Store (DerefOf(Index(TEMP, 0x0D)), BA0D)\n Store (DerefOf(Index(TEMP, 0x0E)), BA0E)\n Store (DerefOf(Index(TEMP, 0x0F)), BA0F)\n Store (DerefOf(Index(TEMP, 0x10)), BA10)\n Store (DerefOf(Index(TEMP, 0x11)), BA11)\n Store (DerefOf(Index(TEMP, 0x12)), BA12)\n Store (DerefOf(Index(TEMP, 0x13)), BA13)\n Store (DerefOf(Index(TEMP, 0x14)), BA14)\n Store (DerefOf(Index(TEMP, 0x15)), BA15)\n Store (DerefOf(Index(TEMP, 0x16)), BA16)\n Store (DerefOf(Index(TEMP, 0x17)), BA17)\n Store (DerefOf(Index(TEMP, 0x18)), BA18)\n Store (DerefOf(Index(TEMP, 0x19)), BA19)\n Store (DerefOf(Index(TEMP, 0x1A)), BA1A)\n Store (DerefOf(Index(TEMP, 0x1B)), BA1B)\n Store (DerefOf(Index(TEMP, 0x1C)), BA1C)\n Store (DerefOf(Index(TEMP, 0x1D)), BA1D)\n Store (DerefOf(Index(TEMP, 0x1E)), BA1E)\n Store (DerefOf(Index(TEMP, 0x1F)), BA1F)\n }\n end; into device label EC0 code_regex BDAT,\s+256 replace_matched begin //BDAT, 256,\n BA00,8,BA01,8,BA02,8,BA03,8,\n BA04,8,BA05,8,BA06,8,BA07,8,\n BA08,8,BA09,8,BA0A,8,BA0B,8,\n BA0C,8,BA0D,8,BA0E,8,BA0F,8,\n BA10,8,BA11,8,BA12,8,BA13,8,\n BA14,8,BA15,8,BA16,8,BA17,8,\n BA18,8,BA19,8,BA1A,8,BA1B,8,\n BA1C,8,BA1D,8,BA1E,8,BA1F,8\n end; into method label SMBR code_regex \(BDAT, replaceall_matched begin (RDBA(), end; into method label SMBR code_regex Store\s\((.*),\sBDAT\) replaceall_matched begin WRBA(%1) end; into method label SMBW code_regex Store\s\((.*),\sBDAT\) replaceall_matched begin WRBA(%1) end; into method label ECSB code_regex Store\s\((.*),\sBDAT\) replaceall_matched begin WRBA(%1) end; into method label ECSB code_regex \(BDAT, replaceall_matched begin (RDBA(), end; into device label EC0 insert begin Method (RDBB, 0, Serialized)\n {\n Name (TEMP, Buffer(0x20) { })\n Store (BB00, Index(TEMP, 0x00))\n Store (BB01, Index(TEMP, 0x01))\n Store (BB02, Index(TEMP, 0x02))\n Store (BB03, Index(TEMP, 0x03))\n Store (BB04, Index(TEMP, 0x04))\n Store (BB05, Index(TEMP, 0x05))\n Store (BB06, Index(TEMP, 0x06))\n Store (BB07, Index(TEMP, 0x07))\n Store (BB08, Index(TEMP, 0x08))\n Store (BB09, Index(TEMP, 0x09))\n Store (BB0A, Index(TEMP, 0x0A))\n Store (BB0B, Index(TEMP, 0x0B))\n Store (BB0C, Index(TEMP, 0x0C))\n Store (BB0D, Index(TEMP, 0x0D))\n Store (BB0E, Index(TEMP, 0x0E))\n Store (BB0F, Index(TEMP, 0x0F))\n Store (BB10, Index(TEMP, 0x10))\n Store (BB11, Index(TEMP, 0x11))\n Store (BB12, Index(TEMP, 0x12))\n Store (BB13, Index(TEMP, 0x13))\n Store (BB14, Index(TEMP, 0x14))\n Store (BB15, Index(TEMP, 0x15))\n Store (BB16, Index(TEMP, 0x16))\n Store (BB17, Index(TEMP, 0x17))\n Store (BB18, Index(TEMP, 0x18))\n Store (BB19, Index(TEMP, 0x19))\n Store (BB1A, Index(TEMP, 0x1A))\n Store (BB1B, Index(TEMP, 0x1B))\n Store (BB1C, Index(TEMP, 0x1C))\n Store (BB1D, Index(TEMP, 0x1D))\n Store (BB1E, Index(TEMP, 0x1E))\n Store (BB1F, Index(TEMP, 0x1F))\n Return (TEMP)\n }\n end; into device label EC0 insert begin Method (WRBB, 1, Serialized)\n {\n Name (TEMP, Buffer(0x20) { })\n Store (Arg0, TEMP)\n Store (DerefOf(Index(TEMP, 0x00)), BB00)\n Store (DerefOf(Index(TEMP, 0x01)), BB01)\n Store (DerefOf(Index(TEMP, 0x02)), BB02)\n Store (DerefOf(Index(TEMP, 0x03)), BB03)\n Store (DerefOf(Index(TEMP, 0x04)), BB04)\n Store (DerefOf(Index(TEMP, 0x05)), BB05)\n Store (DerefOf(Index(TEMP, 0x06)), BB06)\n Store (DerefOf(Index(TEMP, 0x07)), BB07)\n Store (DerefOf(Index(TEMP, 0x08)), BB08)\n Store (DerefOf(Index(TEMP, 0x09)), BB09)\n Store (DerefOf(Index(TEMP, 0x0A)), BB0A)\n Store (DerefOf(Index(TEMP, 0x0B)), BB0B)\n Store (DerefOf(Index(TEMP, 0x0C)), BB0C)\n Store (DerefOf(Index(TEMP, 0x0D)), BB0D)\n Store (DerefOf(Index(TEMP, 0x0E)), BB0E)\n Store (DerefOf(Index(TEMP, 0x0F)), BB0F)\n Store (DerefOf(Index(TEMP, 0x10)), BB10)\n Store (DerefOf(Index(TEMP, 0x11)), BB11)\n Store (DerefOf(Index(TEMP, 0x12)), BB12)\n Store (DerefOf(Index(TEMP, 0x13)), BB13)\n Store (DerefOf(Index(TEMP, 0x14)), BB14)\n Store (DerefOf(Index(TEMP, 0x15)), BB15)\n Store (DerefOf(Index(TEMP, 0x16)), BB16)\n Store (DerefOf(Index(TEMP, 0x17)), BB17)\n Store (DerefOf(Index(TEMP, 0x18)), BB18)\n Store (DerefOf(Index(TEMP, 0x19)), BB19)\n Store (DerefOf(Index(TEMP, 0x1A)), BB1A)\n Store (DerefOf(Index(TEMP, 0x1B)), BB1B)\n Store (DerefOf(Index(TEMP, 0x1C)), BB1C)\n Store (DerefOf(Index(TEMP, 0x1D)), BB1D)\n Store (DerefOf(Index(TEMP, 0x1E)), BB1E)\n Store (DerefOf(Index(TEMP, 0x1F)), BB1F)\n }\n end; into device label EC0 code_regex BDA2,\s+256 replace_matched begin //BDA2, 256,\n BB00,8,BB01,8,BB02,8,BB03,8,\n BB04,8,BB05,8,BB06,8,BB07,8,\n BB08,8,BB09,8,BB0A,8,BB0B,8,\n BB0C,8,BB0D,8,BB0E,8,BB0F,8,\n BB10,8,BB11,8,BB12,8,BB13,8,\n BB14,8,BB15,8,BB16,8,BB17,8,\n BB18,8,BB19,8,BB1A,8,BB1B,8,\n BB1C,8,BB1D,8,BB1E,8,BB1F,8\n end; into method label SMBR code_regex \(BDA2, replaceall_matched begin (RDBB(), end; into method label SMBR code_regex Store\s\((.*),\sBDA2\) replaceall_matched begin WRBB(%1) end; into method label SMBW code_regex Store\s\((.*),\sBDA2\) replaceall_matched begin WRBB(%1) end; into method label ECSB code_regex Store\s\((.*),\sBDA2\) replaceall_matched begin WRBB(%1) end; into method label ECSB code_regex \(BDA2, replaceall_matched begin (RDBB(), end; # additional work for _BIX method present in some ASUS laptops into device label EC0 code_regex B0C3,\s+16 replace_matched begin XC30,8,XC31,8 end; into device label EC0 code_regex B1C3,\s+16 replace_matched begin YC30,8,YC31,8 end; into_all method label _BIX code_regex \(\^\^LPCB\.EC0\.B0C3, replaceall_matched begin (B1B2(^^LPCB.EC0.XC30,^^LPCB.EC0.XC31), end; into_all method label _BIX code_regex \(\^\^LPCB\.EC0\.B1C3, replaceall_matched begin (B1B2(^^LPCB.EC0.YC30,^^LPCB.EC0.YC31), end; # or could remove the _BIX method if it turns out not to work #into_all method label _BIX remove_entry; And the Brightness:
       
       
       
       
       
      #Maintained by: RehabMan for: Laptop Patches #graphics_PNLF_ivy_sandy.txt # This patch enables the brightness slider in SysPrefs->Displays # and will also enable activation of sleep mode by closing # the laptop lid. # # This particular version is intended to be used with ACPIBacklight.kext # although it can also be used with AppleBacklight.kext, # provided AppleBacklight.kext is patched to recognize your # display or an injector is used to set brightness levels. # # See this thread for more information: # http://www.tonymacx86.com/hp-probook-mavericks/121031-native-brightness-working-without-blinkscreen-using-patched-applebacklight-kext.html # (also read any linked threads) # # # Note: This patch should be applied to the DSDT or SSDT that defines # your integrated graphics device (always at _ADR 0x00020000) # into_all device label PNLF remove_entry; into_all device name_adr 0x00020000 code_regex (OperationRegion\s\(RMPC,\sPCI_Config[^\}]*\}) remove_matched; into device name_adr 0x00020000 insert begin OperationRegion (RMPC, PCI_Config, 0x10, 4)\n Field (RMPC, AnyAcc, NoLock, Preserve)\n {\n BAR1,32,\n }\n Device (PNLF)\n {\n // normal PNLF declares (note some of this probably not necessary)\n Name (_ADR, Zero)\n Name (_HID, EisaId ("APP0002"))\n Name (_CID, "backlight")\n Name (_UID, 10)\n Name (_STA, 0x0B)\n //define hardware register access for brightness\n // lower nibble of BAR1 is status bits and not part of the address\n OperationRegion (BRIT, SystemMemory, And(^BAR1, Not(0xF)), 0xe1184)\n Field (BRIT, AnyAcc, Lock, Preserve)\n {\n Offset(0x48250),\n LEV2, 32,\n LEVL, 32,\n Offset(0x70040),\n P0BL, 32,\n Offset(0xc8250),\n LEVW, 32,\n LEVX, 32,\n Offset(0xe1180),\n PCHL, 32,\n }\n // DEB1 special for setting KLVX at runtime...\n //Method (DEB1, 1, NotSerialized)\n //{\n // Store(Arg0, KLVX)\n //}\n // LMAX: use 0x710 to force OS X value\n // or use any arbitrary value\n // or use 0 to capture BIOS setting\n Name (LMAX, 0x710)\n // KMAX: defines the unscaled range in the _BCL table below\n Name (KMAX, 0x710)\n // KPCH: saved value for PCHL\n Name(KPCH, 0)\n // _INI deals with differences between native setting and desired\n Method (_INI, 0, NotSerialized)\n {\n // save value of PCHL for later\n Store(PCHL, KPCH)\n // determine LMAX to use\n If (LNot(LMAX)) { Store(ShiftRight(LEVX,16), LMAX) }\n If (LNot(LMAX)) { Store(KMAX, LMAX) }\n Store(ShiftLeft(LMAX,16), KLVX)\n If (LNotEqual(LMAX, KMAX))\n {\n // Scale all the values in _BCL to the PWM max in use\n Store(0, Local0)\n While (LLess(Local0, SizeOf(_BCL)))\n {\n Store(DerefOf(Index(_BCL,Local0)), Local1)\n Divide(Multiply(Local1,LMAX), KMAX,, Local1)\n Store(Local1, Index(_BCL,Local0))\n Increment(Local0)\n }\n // Also scale XRGL and XRGH values\n Divide(Multiply(XRGL,LMAX), KMAX,, XRGL)\n Divide(Multiply(XRGH,LMAX), KMAX,, XRGH)\n }\n // adjust values to desired LMAX\n Store(ShiftRight(LEVX,16), Local1)\n If (LNotEqual(Local1, LMAX))\n {\n Store(LEVL, Local0)\n If (LOr(LNot(Local0),LNot(Local1))) { Store(LMAX, Local0) Store(LMAX, Local1) }\n Divide(Multiply(Local0,LMAX), Local1,, Local0)\n //REVIEW: wait for vblank before setting new PWM config\n //Store(P0BL, Local7)\n //While (LEqual (P0BL, Local7)) {}\n If (LGreater(LEVL, LMAX))\n { Store(KLVX, LEVX) Store(Local0, LEVL) }\n Else\n { Store(Local0, LEVL) Store(KLVX, LEVX) }\n }\n }\n // _BCM/_BQC: set/get for brightness level\n Method (_BCM, 1, NotSerialized)\n {\n // initialize for consistent backlight level before/after sleep\n If (LNotEqual(PCHL, KPCH)) { Store(KPCH, PCHL) }\n If (LNotEqual(LEVW, 0x80000000)) { Store (0x80000000, LEVW) }\n If (LNotEqual(LEVX, KLVX)) { Store (KLVX, LEVX) }\n // store new backlight level\n Store(Match(_BCL, MGE, Arg0, MTR, 0, 2), Local0)\n If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n If (LNotEqual(LEV2, 0x80000000)) { Store(0x80000000, LEV2) }\n Store(DerefOf(Index(_BCL, Local0)), LEVL)\n }\n Method (_BQC, 0, NotSerialized)\n {\n Store(Match(_BCL, MGE, LEVL, MTR, 0, 2), Local0)\n If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n Return(DerefOf(Index(_BCL, Local0)))\n }\n Method (_DOS, 1, NotSerialized)\n {\n // Note: Some systems have this defined in DSDT, so uncomment\n // the next line if that is the case.\n //External(^^_DOS, MethodObj)\n ^^_DOS(Arg0)\n }\n // extended _BCM/_BQC for setting "in between" levels\n Method (XBCM, 1, NotSerialized)\n {\n // initialize for consistent backlight level before/after sleep\n If (LNotEqual(PCHL, KPCH)) { Store(KPCH, PCHL) }\n If (LNotEqual(LEVW, 0x80000000)) { Store (0x80000000, LEVW) }\n If (LNotEqual(LEVX, KLVX)) { Store (KLVX, LEVX) }\n // store new backlight level\n If (LGreater(Arg0, XRGH)) { Store(XRGH, Arg0) }\n If (LAnd(Arg0, LLess(Arg0, XRGL))) { Store(XRGL, Arg0) }\n If (LNotEqual(LEV2, 0x80000000)) { Store(0x80000000, LEV2) } \n Store(Arg0, LEVL)\n }\n Method (XBQC, 0, NotSerialized)\n {\n Store(LEVL, Local0)\n If (LGreater(Local0, XRGH)) { Store(XRGH, Local0) }\n If (LAnd(Local0, LLess(Local0, XRGL))) { Store(XRGL, Local0) }\n Return(Local0)\n }\n // Use XOPT=1 to disable smooth transitions\n Name (XOPT, Zero)\n // XRGL/XRGH: defines the valid range\n Name (XRGL, 40)\n Name (XRGH, 1808)\n // KLVX is initialization value for LEVX\n Name (KLVX, 0x7100000)\n // _BCL: returns list of valid brightness levels\n // first two entries describe ac/battery power levels\n Name (_BCL, Package()\n {\n 1808,\n 479,\n 0,\n 53, 55, 57, 59,\n 62, 66, 71, 77,\n 83, 91, 99, 108,\n 119, 130, 142, 154,\n 168, 183, 198, 214,\n 232, 250, 269, 289,\n 309, 331, 354, 377,\n 401, 426, 453, 479,\n 507, 536, 566, 596,\n 627, 660, 693, 727,\n 762, 797, 834, 872,\n 910, 949, 990, 1031,\n 1073, 1115, 1159, 1204,\n 1249, 1296, 1343, 1391,\n 1440, 1490, 1541, 1592,\n 1645, 1698, 1753, 1808,\n })\n }\n end;  
       
      It's done! Now go brush your teeth!
       
       
      To do list
       
      - Turn AppleHDADisabler in CloverEFI path.
      - Fix FN keyboard keys.
      - Turn Battery DSDT patch in CloverEFI path.
      - Test Cardreader.
      - Test USB3 port.
       
       
      And last but not least
       
      I would like to thank the following community members, by making these dream possible:
      @crushers, @snatch, @apianti, @blackosx, @blusseau, @dmazar, @slice2009, @autumnrain, @phpdev32, @EMlyDinEsH, @RehabMan, @Scellow, @mitch_de, @Shailua, @Andy Vandijck, @maxfierke, @ArturXXX and all others members involved directly or indirectly.
       
       
      EFI.zip
    • By fusion71au
      This is a brief guide on how to create a vanilla El Capitan (also same process for Sierra) OS X Installer USB with an updated prelinked kernel containing FakeSMC.

      It is tailored for those users who want to understand the “nuts and bolts” of how to create an installer and also to help brush up on their terminal skills (rather than have one made for them with the numerous automated “tools” available or even Apple’s createinstallmedia) :
       
       
      Specifically, it is also a “Proof of Concept” which shows that installation is possible without even having to rely on boot loader kext injection.

      Prerequisites
      Existing Yosemite installation (or Mavericks - see post#4 for steps 7,8) “Install OS X El Capitan.app" downloaded to the Applications folder Pacifist FakeSMC.kext - Slice or Kozlek branch Bootloader - Clover or Chameleon 8GB or larger USB drive (16GB recommended), formatted HFS+ (MBR or GUID) named “Installer”  
      Procedure
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Open OS X terminal and type the following lines, followed by <Enter> after each line.
          The image restore and file copying may take a while to complete, and at the end of the process, the Installer volume is renamed to “OS X Base System"....
       
      sudo -s hdiutil attach /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg asr restore -source /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg  -target /Volumes/Installer -erase -format HFS+ -noprompt -noverify rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages cp -av /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System/System/Installation cp -av /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg /Volumes/OS\ X\ Install\ ESD/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System diskutil unmount /Volumes/OS\ X\ Install\ ESD exit 3.  Right click on the “OS X Base System” Volume and click “Get Info”
       

      4.  Click on the lock icon and untick “Ignore ownership on this volume”
       

      5.  Extract/Copy the El Capitan Kernels folder into /System/Library/ of the USB with Pacifist.  NB It is found in the "Essentials.pkg" in /System/Installation/Packages
       

      6.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel —> OG.prelinkedkernel
       

      7.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of the installer USB using Finder.
       

      8.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel…..
       
      sudo -s chmod -R 755 /Volumes/OS\ X\ Base\ System/Library/Extensions chown -R 0:0 /Volumes/OS\ X\ Base\ System/Library/Extensions touch /Volumes/OS\ X\ Base\ System/System/Library/Extensions kextcache -u /Volumes/OS\ X\ Base\ System exit Any errors should be noted but the output below is normal e.g.


      9. Install your Bootloader targeting the OS X Base System volume
       
       
       
       
      10.  Boot your system with the USB without injected kexts into the OS X Installer GUI....
       
       
       
       
       
      Post Install
      The original prelinked kernel in a fresh install of El Capitan will also lack FakeSMC ie it will only be linked to Apple signed kexts.  In order to boot into El Capitan the first time around without boot loader kext injection, the PLK needs to be rebuilt for the El Capitan volume like we did for the installer:
       
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel for the El Capitan volume —> OG.prelinkedkernel
      3.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of El Capitan using Finder
      4.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel.  In this example, the El Capitan volume is named "El_Capitan" - change if you have named it something else...
      sudo -s chmod -R 755 /Volumes/El_Capitan/Library/Extensions chown -R 0:0 /Volumes/El_Capitan/Library/Extensions touch /Volumes/El_Capitan/System/Library/Extensions kextcache -u /Volumes/El_Capitan exit 5. Install your Bootloader targeting the El Capitan volume.  This step is only necessary if you are installing El Capitan on a new drive without existing boot loader (not required if installing on a disk with existing boot loader beside Yosemite).
      6. Reboot your system without injected kexts into El Capitan!
       
       
      Other links
      The All-In-One Guide to Vanilla OS X for beginners
       
      Updates for Sierra and High Sierra   Custom Prelinkedkernel Generator Tool I have made a custom prelinkedkernel generator "PLK.tool" for Sierra + El Capitan.  Instructions:   1.  Download and extract the attached BaseSystem_PLK.tool.zip into your ~/Downloads folder.   2.  Copy any extra kexts necessary for booting your hack to ~/Downloads/BaseSystem/ExtraKexts (e.g. FakeSMC, VoodooPS2Controller), making sure SIP is disabled. 3.  Copy BaseSystem.dmg to ~/Downloads/BaseSystem  4.  Open terminal and run the following commands... cd ~/Downloads/BaseSystem chmod +x PLK.tool ./PLK.tool ---> supply your admin password ---> will place your new custom prelinkedkernel on the desktop.       macOS High Sierra bypass Firmware and MBR checks in post#13.
      BaseSystem_PLK.tool_ElCap.zip
      BaseSystem_PLK.tool_Sierra.zip
      BaseSystem_PLK.tool_Mojave.zip (need to run in Mojave to avoid dependency errors)
      BaseSystem_PLK.tool_Catalina.zip
    • By k.panic
      Hi to all!

      I've installed Yosemite on:
      - i5 4690
      - ASRock H87M Pro4 (with intel ethernet I219-V) (IntelMausiEthernet, AppleIntelE1000 and RehabMan for I219V kexts)
      - 8gb ddr3 RAM
      - 1tb hard disk
       
      If I disable I219-V from BIOS, when I shutdown it, don't reboots (tested with all kexts)
      If I enable I219-V from BIOS, when I shutdown it, the system reboots.
       
      How can I fix this? Thanks!
×