10 10 X On Intel Nuc I5 4250
Sys_Info_Nvidia.png

Status

Mac OSX Bootloader SMBios Files PM QE/CI (HD Content) Internal Audio AudioHDMI LAN WIFI BT eGPU (web drivers / CUDA) AudioHDMI eGPU
10.10.4 Clover v3202 MacMini7,1 Mediafire (39Mo) Icon_Y.png Icon_Y.png/Icon_Y.png(Icon_N.png) in Icon_Y.png / outIcon_Y.png(EAPD Icon_N.png)
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_N.png
10.10.2 Clover v3152 iMac14,4 Mediafire (22Mo) Icon_Y.png Icon_Y.png/Icon_Y.png(Icon_N.png) in Icon_Y.png / outIcon_Y.png(EAPD Icon_N.png)
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_Y.png
Icon_N.png

Hardware

Intel NUC
BOXD54250WYK2 (H: bigger case for 2,5' drive; 2: EU power plug)
Intel Core i5 4250U
Intel Graphic HD5000
Audio Realtek ALC283
LAN Intel I218-V
Intel_Nuc.jpg
HDD
Sandisk Ultra Plus SSD mSata 128 Go
HDD_Sandisk.jpg
RAM
2 x Crucial 8 Go So-Dimm DDR3L (DD3L 1,35v, not DDR3 1,5v)
Ballistix Sport (PASR support)
PC 12800 1600Mhz
CL9
BLS8G3N169ES4CEU
RAM_Crucial.jpg
WIFI / BT
Azurewave AW-CE123H (Datasheet)
Broadcom BCM94352HMB chipset (uses BCM4360 kext, mandatory for HandOff support)
802.11 ac / n / g / b
Bluetooth 4.0 (mandatory for HandOff support)
Half height
AW-CE123H.jpg
Case
Streacom NC2 Black
Fanless
2,5' HDD support
Case_Streacom_NC2.jpg
S/PDIF interface
M2Tech HiFaceRCA
M2Tech_Hiface2RCA.jpg
eGPU adapter
EXP GDC Beast
miniPCIe / PCI 3.0
126154-beast.png
Graphic Card
PNY GTX 750 Ti 2Go
126156-gtx-750-ti.jpg

Bios Settings

  1. Security Features : de-select Intel(R) VT for Directed I/O (VT-d)
    BIOS_Boot.jpg
  2. Boot > Boot Priority : enable both UEFI Boot and Legacy Boot
    BIOS_Secutity.jpg

USB Installer

  1. Format the USB Drive (> 8 Go, GUID, 1 partition, HFS+)
  2. Run Unibeast (or run this command) with genuine Install OS X Yosemite.app in /Application folder
  3. Install Clover on the USB drive (see Clover Installation for settings)
  4. Copy/Replace :
    1. /EFI/CLOVER/Config.plist file
    2. /EFI/CLOVER/ACPI/patched/ folder
    3. /EFI/CLOVER/kext/ folder

Note: we don't mind the settings of Unibeast, we just want this app to create an installer…

Clover Installation

Install for UEFI booting only (Because we use UEFI)
Install Clover in ESP (Robust install)
Theme
Bootcamp (Nice theme)
Driver64UEFI
CsmVideoDxe-64 (Optional. Video driver for wider set of resolutions)
EmuVariableUefi-64 (Optional. Already present recommendation is to use anyway)
OsxAptioFixDrv2-64 (Mandatory. Fixes memory map. v2 for NVIdia web drivers)

Install RC scrip on target volume

Clover_2.png

Clover Configuration

ACPI

SSDT.aml
CPU Power Management for Intel Core i5 4250U
Generated by ssdtPRGen
SSDT-1.aml
SATA
USB
Audio: layout-id 1
GFX: framebuffer 0x0a26000a
SSDT-2.aml
WIFI support for BCM94352HMB

config.plist

  • Boot Arguments (Optional. Should be handled by SSDT)
    1. Yosemite : kext-dev-mode=1
    2. El Capitan <DP5 : rootless=0
    3. El Capitan >DP5 : See RtVariables
  • Graphics (Optional. Should be handled by SSDT)
    1. Inject / Intel : Yes
    2. ig-platform-id : 0x0a26000a
  • KernelAndKextPatches / KextToPatch
    1. HDMI Audio Out
      Comment First DP connector to HDMI Toleda's version
      Name AppleIntelFramebufferAzul AppleIntelFramebufferAzul
      Find 00000400 00870000 000204 01050900 00040000 87000000
      Replace 00000800 00060000 000204 01050900 00080000 06000000
    2. Trim Enabler
      Comment Trim Enabler
      Name IOAHCIBlockStorage
      Find 4150504C 45205353 44
      Replace 00000000 00000000 00
    3. ALC283
      Comment Binary ALC283
      Name AppleHDA
      Find 8419D411
      Replace 8302EC10
      Comment Zero out ALC884
      Name AppleHDA
      Find 8408EC10
      Replace 00000000
      Comment Zero out ALC885
      Name AppleHDA
      Find 8508EC10
      Replace 00000000
      Comment Remove AppleHDA assertions
      Name AppleHDA
      Find 536F756E 64206173 73657274 696F6E20
      Replace 00000000 00000000 00000000 00000000

      Note: ALC283 takes a 1984 profile, Assertion patch is cosmetic

    4. BCM94352HMB
      Comment BCM94352 Airport Extreme
      Name AirPortBrcm4360
      Find 6B100000 750D
      Replace 6B100000 9090
      Comment BCM94352 Handoff (<10.10.1) Comment BCM94352 Handoff (>10.10.2) Comment BCM94352 Handoff (>10.11 b1)
      Name IOBluetoothFamily Name IOBluetoothFamily Name IOBluetoothFamily
      Find 8B878C01 0000 Find 4885C074 5C0FB748 Find 4885FF7447488B07
      Replace B80F0000 0090 Replace 41BE0F00 0000EB59 Replace 41BE0F000000EB44
      Comment BCM94352 5 GHz (<10.10.1) Comment BCM94352 5 GHz (=10.10.2) Comment BCM94352 5 GHz (>10.10.3)
      Name AirPortBrcm4360 Name AirPortBrcm4360 Name AirPortBrcm4360
      Find 5854002B 182C2100 20 Find 5854005D 19542100 00 Find 4183FCFF742C48
      Replace 5854080A 361C4700 0A Replace 5854008D A85EB600 09 Replace 66C7065553EB2B
      Name Custom BCM94352 5 GHz (>10.10.3)]
      Find 4183FCFF742C48
      Replace 66C706xxxxEB2B

      Code that are mentioned in AirPortBrcm4360

      AE AF AR AT AU AZ
      BD BE BG BN BR BT BY
      CA CH CL CN CO CR CY CZ
      DE DK DO
      EC EE EG ES
      FI FR
      GB GR GT GU HK HN HR HU
      ID IE IL IN IS IT 
      JM JO JP
      KH KRM KZ
      LA LI LK LT LU LV
      MA MM MN MO MT MV MX MY
      NI NL NO NP NZ PA PE PH PK PL PR PT PY
      RO RS RU
      SA SE SG SI SK SV
      TH TR TT TW
      UA US UY 
      VE VI VN
      ZA
      

      HEX values:
      A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
      41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A
      echo CC| xxd -p -l 2
      
    5. Second Boot Stage
      Comment Second Boot Stage 1/2 (<10.10.1) Second Boot Stage (>10.10.2) Second Boot Stage (>10.11 b1)
      Name IOGraphicsFamily IOGraphicsFamily IOGraphicsFamily
      Find 4188C4EB 03 4188C4EB 11 0100007517
      Replace 4188C4EB 23 4188C4EB 31 0100007417
      Comment Second Boot Stage 2/2(<10.10.1)
      Name IOGraphicsFamily
      Find 85C0745D 48
      Replace 31C0745B 48
  • SMBIOS
    MacMini Late 2014 (MacMini7,1) iMac Late 2014 (iMac14,4) MacMini Late 2012 (MacMini6,1) MacBookAir6,2
    Clover Boot OK OK OK OK
    Compatibilty Desktop Haswell Desktop Haswell Desktop Ivy Laptop Haswell
    BiosReleaseDate 24/05/2014 10/23/12 05/24/13
    BiosVendor Apple Inc. Apple Inc. Apple Inc. Apple Computer, Inc.
    BiosVersion MM71.88Z.0220.B00.1409291751 IM144.88Z.0179.B03.1405241029 MM61.88Z.0106.B00.1208091121 MBA61.88Z.0099.B04.1305241529
    Board-ID Mac-35C5E08120C7EEAF Mac-81E3E92DD6088272 Mac-F65AE981FFA204ED Mac-7DF21CB3ED6977E5
    BoardManufacturer Apple Inc. Apple Inc. Apple Inc. Apple Computer, Inc.
    BoardType 10 10 10 10
    ChassisAssetTag Mini-Aluminum iMac-Aluminum Mini-Aluminum Air-Enclosure
    ChassisManufacturer Apple Inc. Apple Inc. Apple Inc. Apple Computer, Inc.
    ChassisType 16 13 16 10
    Family Mac mini iMac Mac mini MacBook Air
    Manufacturer Apple Inc. Apple Inc. Apple Inc. Apple Computer, Inc.
    Mobile <false/> <false/> <false/> <true/>
    ProductName MacMini7,1 iMac14,4 Macmini6,2 MacBookAir6,2
    SerialNumber CK2wwrrrGCVH C02wwrrrG56K C02wwrrrDWYN C02wwrrrF5V8
    Trust <false/> <false/> <false/> <false/>
    Version 1.0 1.0 1.0 1.0
  • SerialNumber :
    Customize with:
    ww: week of production (example: "LE")
    rrr: random caracter (example: "001")
    (Source)
    Check HERE that your S/N matches
    Check HERE that your S/N is valid but not registered
    you must have this answer:
    "We're sorry, the number you have provided cannot be found in our records. Please verify the number and try again"

kexts

FakeSMC.kext (Source)
AppleIntelE1000e.kext (Source)
Ethernet support for Intel I218-V
20140919 get v2.4.14 (or newer but with TSO set to false)
BrcmPatchRAM.kext (Source)
Bluetooth support BCM94352HMB

Integrated Graphics Intel HD 5000 ("Iris")

GPUGT3.jpg

PCI-ID :model 0x0a26 ; sub 0x0009

OSX Framebuffers for Haswell : (Source)

Compatible ones :

[15] : 0x0d220003 - Haswell CRW GT3
[ 9] : 0x0a260000 - Haswell ULT Mobile GT3
[10] : 0x0a260005 - Haswell ULT Mobile GT3
[11] : 0x0a260006 - Haswell ULT Mobile GT3
[17] : 0x0a26000a - Haswell ULT Mobile GT3
[19] : 0x0a26000d - Haswell ULT Mobile GT3

Way to understand all this : Rampage Dev and Tony

Integrated Audio (Realtek ALC283)

Comprehensive Guide to Patch AppleHDA : OSXLatitude Forum

Datasheet

ALC_269.png
Not published by Realtek but close to ALC269
hex (dec) Name
0x12 (18) DMIC
0x14 (20) Internal Speaker
0x17 (21) ?
0x18 (24) MIC1
0x19 (25) MIC2
0x1a (26) Internal MIC
0x1b (27) LINE2
0x1c (28) ?
0x1d (29) PCBEEP
0x1e (30) S/PDIF OUT
0x21 (33) Headphone OUT
PathMap Headphone OUT
2 > 12 > 33 (dec)
PathMap MIC2
25 > 35 > 8 (dec)

Installation

1. DSDT /SSDT edit for "layout-id 1"

Method (_SB.PCI0.HDEF._DSM, 4, NotSerialized)
    {
        If (LEqual (Arg2, Zero))
        {
            Return (Buffer (One)
            {
                 0x03
            })
        }
        Return (Package (0x04)
        {
            "layout-id", 
            Buffer (0x04)
            {
                 0x01, 0x00, 0x00, 0x00
            }, 
            "PinConfigurations", 
            Buffer (Zero) {}
        })
    }

2. 3 AppleHDA patches : ALC283 instead of 1984, zero 884, zero 885

Comment Binary ALC283 Zero out ALC884 Zero out ALC885
Name AppleHDA AppleHDA AppleHDA
Find 8419D411 8408EC10 8508EC10
Replace 8302EC10 00000000 00000000
Notes
I don't know why but we need to remove ALC884 and ALC885
I don't know why we chose a 1984 substitution

3. XML modification in AppleHDAController.kext/Contents/info.plist "HDAConfigDefault"

pinconfig.png
<key>HDAConfigDefault</key>
    <array>
        <dict>
            <key>CodecID</key>
            <integer>283902595</integer>
            <key>ConfigData</key>
            <data>
            AScc8AEnHQABJx4AAScfQAFHHEABRx0BAUceFwFHH5ACFxxQAhcd
            EAIXHiECFx8DAXcc8AF3HQABdx4AAXcfQAGHHPABhx0AAYceAAGH
            H0ABlxwQAZcdAQGXHqABlx+QAacc8AGnHQABpx4AAacfAAG3HPAB
            tx0AAbceAAG3H0AB1xzwAdcdAAHXHgAB1x9AAecc8AHnHQAB5x4A
            AecfQAGXDAICFwwC
            </data>
            <key>FuncGroup</key>
            <integer>1</integer>
            <key>LayoutID</key>
            <integer>1</integer>
        </dict>
    </array>

Usefull app : PinConfigurator.app (Source)
EAPD support should be handled by adding "01970C02 02170C02" at the end (Source)

4. Layout1.xml.zlib modification in AppleHDA.kext/Ressourses/

Copy zlib.pl in the same folder as layout1.xml.zlib

for uncompressing
perl zlib.pl inflate layout1.xml.zlib > layout1.xml

for compressing
perl zlib.pl deflate layout1.xml > layout1.xml.zlib
<key>LayoutID</key>
    <integer>1</integer>
    <key>PathMapRef</key>
    <array>
        <dict>
            <key>CodecID</key>
            <array>
                <integer>283902595</integer>
            </array>
            <key>Headphone</key>
            <dict/>
            <key>Inputs</key>
            <array>
                <string>Mic</string>
            </array>
            <key>IntSpeaker</key>
            <dict/>
            <key>Mic</key>
                         ...
            <dict/>
            <key>Outputs</key>
            <array>
                <string>Headphone</string>
                <string>IntSpeaker</string>
            </array>
            <key>PathMapID</key>
            <integer>283</integer>
        </dict>

5. Platforms.xml.zlib modification AppleHDA.kext/Ressourses/

Copy zlib.pl in the same folder as Platforms.xml.zlib

for uncompressing
perl zlib.pl inflate Platforms.xml.zlib > Platforms.xml

for compressing
perl zlib.pl deflate Platforms.xml > Platforms.xml.zlib
        <dict>
            <key>PathMap</key>
            <array>
                <array>
                    <array>
                        <array>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>8</integer>
                            </dict>
                            <dict>
                                <key>NodeID</key>
                                <integer>35</integer>
                            </dict>
                            <dict>
                                <key>Boost</key>
                                <integer>3</integer>
                                <key>NodeID</key>
                                <integer>25</integer>
                            </dict>
                        </array>
                    </array>
                </array>
                <array>
                    <array>
                        <array>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>20</integer>
                            </dict>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>12</integer>
                            </dict>
                            <dict>
                                <key>Amp</key>
                                ...
                                </dict>
                                <key>NodeID</key>
                                <integer>2</integer>
                            </dict>
                        </array>
                    </array>
                    <array>
                        <array>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>33</integer>
                            </dict>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>12</integer>
                            </dict>
                            <dict>
                                <key>Amp</key>
                                ...
                                <key>NodeID</key>
                                <integer>2</integer>
                            </dict>
                        </array>
                    </array>
                </array>
            </array>
            <key>PathMapID</key>
            <integer>283</integer>
        </dict>

EAPD

After a few seconds, we can hear a "clic" which indicates to off status of the EAPD …
We can use EAPD_Codec_Commander to keep the codec alive even after sleep.

Script to patch AppleHDA.kext

1. Open terminal, type cd hit the spacebar once and drop the folder /PatchingAppleHDA/ into the terminal window
2. Press enter
3. Drag the file patch_hda_sebinouse.sh into the terminal window
4. Hit enter
If all goes well it will generate some output and then put a AppleHDA.kext into the folder /PatchingAppleHDA/
5. Install the generated kext into System/Library/Extensions using KextWizard
6. Make sure in your config.plist that Nocaches (under system Parameters) is set to No
i.e. to make sure it uses caches.
7. Reboot

patch_hda_sebinouse.sh:

#!/bin/bash
 
#set -x
 
codec=ALC283
unpatched=/System/Library/Extensions
 
# AppleHDA patching function
function patchAppleHDA()
{
# patch AppleHDA for Clover setup...
    echo "Creating a copy of AppleHDA for $1..."
    cp -R $unpatched/AppleHDA.kext/ AppleHDA.kext
    echo "Updating Layout/Platform"
    cp ./Resources/layout/*.zlib AppleHDA.kext/Contents/Resources/
    echo "Updating plist"
    plist=AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist
    /usr/libexec/plistbuddy -c "Delete ':IOKitPersonalities:HDA Hardware Config Resource:HDAConfigDefault'" $plist
    /usr/libexec/plistbuddy -c "Add ':IOKitPersonalities:HDA Hardware Config Resource:IOProbeScore' integer" $plist
    /usr/libexec/plistbuddy -c "Set ':IOKitPersonalities:HDA Hardware Config Resource:IOProbeScore' 2000" $plist
    /usr/libexec/plistbuddy -c "Merge ./Resources/ahhcd.plist ':IOKitPersonalities:HDA Hardware Config Resource'" $plist
    echo "Adding CodecCommander"
    cp -R ./Resources/CodecCommander.kext AppleHDA.kext/Contents/PlugIns/
    echo "AppleHDA patching Done."
}
 
patchAppleHDA "$codec"

External GPU

Concept of proof

TB adapter: eGPU for a MacbookAir
Le Journal du Lapin
CPC Box
La console qui fait "Coin"

Hardware

EXP GDC Beast
PCI 3.0 -> Mini PCIe adapter
external 12v psu (PCI 8p or Jack)
PNY GTX 750 Ti 2 Go
Maxwell Chipset
Low comsuption
Compact
Dell D220P
PCI 8p connector
220 W
Compact

Hardware Installation

the Mini PCIe adapter doesn't fit in the half height connector
not enough space due to the location of the internal USB 2.0 connectors
the Mini PCIe adapter does fit in the full height connector
but I can't use my m-sata HDD
I have to use an 2,5' HDD …
I plan to use a "Mini PCI-e PCIe mSATA SSD To 2.5" SATA Adapter"
the adapter uses standard HDMI
I plan to use an HDMI Chassis Connector for convenience
the adapter has no case
I plan to built my own

Software Installation

Various forum threads : Netkas or Insanelymac

1. Download the latest drivers acording to your MacOSX build on Insanelymac
2. Modify it to install with a non MacPro3,1 SMBios

Unzip the drivers:

pkgutil --expand WebDriver-xx.pkg WebDriver

Modify the Distribution file with a text editor :
Find var found_hardware = 0
Replace var found_hardware = 1

Zip the drivers :

pkgutil --flatten WebDriver WebDriver-xx_mod.pkg

3. Install CUDA drivers
4. Add "nvda_drv=1" bootflag to your config.plist
5. Check you are using OsxAptioFixDrv2-64 for Clover
6. Reboot

HDMI audio hint

Two lines must be added in the following three files.

/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext

In these files, look for the sections that begin with <key>CFBundleIdentifier</key> and add, just before the </dict>, the two following lines.

<key>IOPCITunnelCompatible</key>
<true/>

Now start Kext Utility and restart, it should work.

IR

Internal

Nuovotron
LIRC on MacOSX

External

Genuine Apple Receiver over USB : Tonymacx86 Thread

Connect as follows:
Red -> Red,
Yellow -> White,
Green -> Green,
Black -> Small Black.

2010-12-10_19-04-37_265.jpg