Jump to content
About Just Joined group Read more... ×
ludufre

[GUIDE] Yosemite 10.10.3 on ASUS VivoBook S400CA (S400CA-CA178H)

21 posts in this topic

Recommended Posts

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 -> Tick.png Work. i5-3317U @ 1.7Ghz/2.6Ghz.  SpeedStep 8 to 26 stages. AsusAICPUPM <true/> in Clover config.plist. 
- Video Card -> Tick.png Work. HD4000. Full QE/CI.
- Chipset -> Tick.png Work.
- HDMI -> Tick.png Work.
- VGA -> Cross.png Not work. I did not have time to fix yet.
- Audio -> Tick.png Work. Kext VoodooHDA + AppleHDADisabler.
- WiFi -> Tick.png Work. Replaced by Athero 9285 Wifi/Bluetooth.
- Ethernet -> Tick.png Work. Kext Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8.
- Touchpad and keyboard -> Tick.png Work. Kext ELAN, FocalTech and Synaptics (Smart Touchpad) Driver (Mac OS X).
- FN keyboards keys -> Cross.png Not work. I did not have time to fix yet.
- Brightness control -> Tick.png Work. DSDT patch.
- Sleep -> Tick.png Work.
- Battery -> Tick.png Work. Kext ACPIBatteryManager by RehabMan and DSDT patch (below).
- Card Reader -> Not tested. I have no adapters.
- Integrated Camera -> Tick.png Work. Kext AnyiSightCam.
- Bluetooth -> Tick.png Work. Kext Bluetooth Firmware Uploader and ControllerPowerState change to 1.
- Boot Logo -> Tick.png 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:

 

 

 

 

 

Quote

Format a 8GB+ USB with GUID partition mapping and name it Install.
Insure the OS X Yosemite.app is in your Application folder.
In terminal run the following script.
 
sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Install --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction
 
This will take several minutes so be patient, the script will notify you when complete.

 
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:
Screen_Shot_2015_06_17_at_7_23_30_AM.pngScreen_Shot_2015_06_17_at_7_23_39_AM.png
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

Edited by ludufre

Share this post


Link to post
Share on other sites
Advertisement

Hi,

 

The FN keys perhaps can be fixed by opening the ApplePS2SmartTouchPad.kext/Contents/Plugins/ApplePS2Keyboard.kext/Contents/Info.plist

			<key>Fn keys Layout</key>
			<string>NONE</string>
			<key>Fn keys Mode</key>
			<integer>2</integer>

To:

			<key>Fn keys Layout</key>
			<string>ASUS</string>
			<key>Fn keys Mode</key>
			<integer>3</integer>

For the brightness keys to work, it could be you have to install the ACPIDebug.kext by RehabMan to find the right EC query and edit the DSDT. 

In my case, in the DSDT the keyboard device is KBD0, Brightness up is _Q1C, brightness down is _Q1D.

 

My DSDT edit to go with the ApplePS2SmartTouchpad: 

               Method (_Q1C, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        Notify (KBD0, 0x10)
                    }

                    Method (_Q1D, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        Notify (KBD0, 0x20)
                    }

This however is on an Acer, needs to be researched on the ASUS like described above. 

Share this post


Link to post
Share on other sites

Good guide @Luan, congrats for your work  :)


The performance is good with OS X Yosemite? Post some geekbench results for us  :P

Share this post


Link to post
Share on other sites

Hi,

 

The FN keys perhaps can be fixed by opening the ApplePS2SmartTouchPad.kext/Contents/Plugins/ApplePS2Keyboard.kext/Contents/Info.plist

			<key>Fn keys Layout</key>
			<string>NONE</string>
			<key>Fn keys Mode</key>
			<integer>2</integer>

To:

			<key>Fn keys Layout</key>
			<string>ASUS</string>
			<key>Fn keys Mode</key>
			<integer>3</integer>

For the brightness keys to work, it could be you have to install the ACPIDebug.kext by RehabMan to find the right EC query and edit the DSDT. 

In my case, in the DSDT the keyboard device is KBD0, Brightness up is _Q1C, brightness down is _Q1D.

 

My DSDT edit to go with the ApplePS2SmartTouchpad: 

               Method (_Q1C, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        Notify (KBD0, 0x10)
                    }

                    Method (_Q1D, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        Notify (KBD0, 0x20)
                    }

This however is on an Acer, needs to be researched on the ASUS like described above. 

Thanks!

 

At first test don't work. I will try again later.

Good guide @Luan, congrats for your work  :)

The performance is good with OS X Yosemite? Post some geekbench results for us  :P

Thanks.

 

I'm developing in Xcode 7 and playing Netflix on second monitor22" in fullscreen. No freezes, no hangs.

 

Follow Geekbench 3 32bit (I'm sorry, free licence):

 

Single-core: 2216

Multo-core: 4478

Link: http://browser.primatelabs.com/geekbench3/2794074

 

It's good those values?

Share this post


Link to post
Share on other sites

 

Installing OS X Yosemite 10.10.3 on ASUS Vivobook S400C (also know as S400CA)

 

I have a similar ultrabook-S400CA , installed Niresh Mavericks 10.9 on section 6 (erased Windows recaveru), with Chameleon bootloader to load properly, but when you install Clover bootloader at boot have boo1: /boot and blinks 5 , what do I need to do to boot into Clover? ((sorry for my bad English))

Share this post


Link to post
Share on other sites

I have a similar ultrabook-S400CA , installed Niresh Mavericks 10.9 on section 6 (erased Windows recaveru), with Chameleon bootloader to load properly, but when you install Clover bootloader at boot have boo1: /boot and blinks 5 , what do I need to do to boot into Clover? ((sorry for my bad English))

 

You did not follow the guide properly.

 

"Install for UEFI booting only"

Share this post


Link to post
Share on other sites

You did not follow the guide properly.

 

"Install for UEFI booting only"

Thank you! I will try!

Share this post


Link to post
Share on other sites

Hi,

 

I'm trying to follow this guide to install yosemite on a S400C.

 

It's my first hakintosh so maybe I'm doing something wrong.

 

The thing is I get stuck at boot just after the message:

AppleLPC::start - Could not find IOPlatformPlugin driver

I'm booting with the default flags and -v -x

 

I've searched for the error and I seem to find it on upgrades not on fresh OS installs.

 

What can I do to get it to boot?

 

thanks!

 

 

post-1467688-0-65536600-1443098029_thumb.jpg

Share this post


Link to post
Share on other sites

У меня сейчас стоит EL 10.11 Beta (15215h) , работает все - звук, тачпад, камера, интернет карта, а после замены и Wi fi   Тип карты: AirPort Extreme  (0x168C, 0x8F)   Версия прошивки: Atheros 9280: 4.0.74.0-P2P , поставил пока в 6 раздел вместо раздела восстановления. загрузчик кловер.()

I now stands EL 10.11 Beta (15215h), running all - the sound , touchpad , camera, Internet card , and after replacement and Wi fi , is set in section 6 , instead of the recovery partition . loader clover .

Share this post


Link to post
Share on other sites

У меня сейчас стоит EL 10.11 Beta (15215h) , работает все - звук, тачпад, камера, интернет карта, а после замены и Wi fi Тип карты:AirPort Extreme (0x168C, 0x8F) Версия прошивки:Atheros 9280: 4.0.74.0-P2P , поставил пока в 6 раздел вместо раздела восстановления. загрузчик кловер.()

I now stands EL 10.11 Beta (15215h), running all - the sound , touchpad , camera, Internet card , and after replacement and Wi fi , is set in section 6 , instead of the recovery partition . loader clover .

Were your settings exactly the same as the guide's? Or did you use the guide to install Yosemite and then upgrade to El Capitan?

Share this post


Link to post
Share on other sites

Were your settings exactly the same as the guide's? Or did you use the guide to install Yosemite and then upgrade to El Capitan?

Yes setting in cap threads , El Capitan installed on a clean partition, it does not work I have a touch screen and battery level , and the rest work.

Share this post


Link to post
Share on other sites

Yes setting in cap threads , El Capitan installed on a clean partition, it does not work I have a touch screen and battery level , and the rest work.

 

After trying for a few hours I still can't get the installer to boot for El Capitan :/

 

Could you link me a zip of your Clover EFI folder?

 

Thanks A lot,

ZRC007

Share this post


Link to post
Share on other sites

Hi Brumas, your link does not longer work.

 

Could you please reaupload?

 

Did you get "El Capitan" to work?

 

Thanks!

"El Capitan" version 10.10.1 I installed almost everything works, except - stopped working the touch screen, and it shows 4gb memory installed 8gb physically. link to efi -https://yadi.sk/d/kctif_Ukk5b2B, ( to reduce the size of some files (themes) have been removed. wifi -Atheros 9285.

Share this post


Link to post
Share on other sites

"El Capitan" version 10.10.1 I installed almost everything works, except - stopped working the touch screen, and it shows 4gb memory installed 8gb physically. link to efi -https://yadi.sk/d/kctif_Ukk5b2B, ( to reduce the size of some files (themes) have been removed. wifi -Atheros 9285.

after I put in clover kekst -USBInjectAll.kext from 23 October 2015, touch screen I have earned and 10.11.1 for Asus S400CA, glitch with the display memory is also corrected through the clearing clover

Share this post


Link to post
Share on other sites

Hi Luan Eduado,

 

I need your guidance.

i have this laptop

ASUS VIVOBOOK S550CB CJ048H

i7-3537U 2.00 GHz Ivybridge

VGA: Intel HD Graphics 4000 1366x768@60Hz
NVIDIA GeForce GT 740M (2 GB GDDR3)
RAM:8 GB DDR3
Audio: Realtek High Definition Audio
Network: Realtek PCIe GBE Family Controller
Qualcomm Atheros AR9485WB-EG Wireless Network Adapter
 
Will your guide and config.plist work on this laptop?
If not then can you guide me a little how do i install it.
Thanks in advance.
 
Rony

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

  • Similar Content

    • By 83427
      I'm member of this community for 10 years and now I feel I can finally somehow help to other beginners like me, who has the same or similar hardware like me. 
       
      Here is my EFI partition with OpenCore 0.6.1 configured for 
      Asus Maximus VI Formula (chipset Z87)
      Intel Core i5-4670K @ 4GHz
      32GB DDR3 1600MHz
      Sapphire Radeon RX480 4GB
       
      I removed SN, UUID and others unique values from config.plist so don't forget to fill yours own or generate new. For beginners like me is very useful OpenCore Configurator
       
      Its compatible with macOS Catalina. I'm not sure, but I think that Mojave works also.
       
      I spent a lot of time by resolving problem with integrated sound card (Realtek ALC1150). If you have problems with sound, try another layout number via alcid=XX in boot-args. For Maximums VI Formula value 5 match the best I think. For more info how to fix soundcard read here: https://dortania.github.io/OpenCore-Post-Install/universal/audio.html 
       
       
       
      EFI.zip
    • By HerryYT
      I own a asus eee pc 1025c with patched bios to support x64 os, is it possible to install any version of mac os even with patched kernel? anyone interested in helping? 
    • By rvilbert
      Good evening,
       
      I apologies for the broadcast message but i have decided to reinstall my Hackintosh machine using Catalina 10.15.6 and .... I'm stuck at "PCI configuration begin".. 
       
      My configuration is:
      Asus X99 Deluxe Core i7 5960x 32 Gb memory GTX 980  
      Knowing that my graphic card would not be fully recognised in Catalina i have also tried to install High Sierra but I managed to get exactly to the same point  and i have therefore decided to give another try to Catalina and .... I'm still stuck.
       
      (FYI I had managed to install 10.8 on my machine a while ago but a few things have changed since then and I may be missing a trick).
       
      In a nutshell I believe my issue is linked to this message that i'm getting:
       
      Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourcesMatch</key><string ID="2">boot-uuid-media</string></dict> 
       
      I tried all options (with/without flags and with/without kext) but i think that my issue is between my DSDT, SSDT and config.plist files.
       
      Any help would be much appreciated!
       
      I have attached my EFI folder and the print screen with the error message.
       
      Let me know if you need any further information.
       
      Thanks a lot
       
       
       
       

      EFI.zip
    • By macinsane
      *This guide is deprecated and will not be maintained anymore*

      Update: Now running Mojave! Thanks to mojave2core! Yeah   Still using C2D in 2019!
      Inserted a nice and cheap GT710 that is not relying on nVidias Webdrivers and runs OOB under Mojave.
       
      Nice, seeing High Sierra running on this old but capable system! It rocks with a new ASUS GT1030
       
      Config:
      Gigabyte EP43-DS3L
      Core2Quad Q9300
      6 GB DDR2 RAM
      Asus GT1030 2GB
      Sandisk SSD 128GB
      TP-Link AC1200 Wifi USB
      Inateck KT4006 USB 3.0 PCIe (No boot)
       
      SMBIOS: iMac14,1
      Clover: 4297  4360
       
      A good deal of DSDT editing was necessary to get this machine to boot High Sierra but finally it works flawlessly, even sleep and wake!
      You NEED to have the DSDT put in place for installation because otherwise macOS doesn't recognize the SATA ports.
      There are a few important BIOS settings: SATA hast to be set to AHCI and "native" and HPET has to be run "64-bit", I'd recommend to disable IDE and the serial and parallel port.
      For the GT1030 nVidia Webdrivers are needed, have to boot with nv_disable=1 until you have them installed.
      You have to install Clover in legacy mode because this old fella does not support UEFI.
       
      Only downside: The so often recommended Inateck USB-card isn't recognized by BIOS, so you cannot boot from it. It works perfectly within macOS though, have the ac-Wifi connected to it.
      config.plist.zip
      DSDT.aml.zip
    • By VortexisTV
      I'm trying to enable UHD 620 graphics on my laptop since it's almost impossible to use Catalina with it disabled (freezing), so after I followed this guide, every time I try to boot into Catalina it does get stuck at the apple logo and progress bar. Heres also the EFI if anyone wants to look at. I'm using this UHD 620 plist to try to get my graphics to work.
       
      ASUS Zenbook UX331FN
      i5-8265U
      Intel UHD Graphics 620
      8GB of SDDR4 Ram

       
×