Posts tagged OSX86

Netkas PC EFI 10.6

Netkas on his blog just release new version of PC EFI (EFI Emulator by Netkas)

PC EFI 10.6

New in this release:

  • Support for desktop Radeons 4300/4500/4600 in GraphicsEnabler
  • Added system-id fix, system doesn’t forget your keyboard settings anymore
  • Added fix for lynnfield cpus

2nd and 3rd are 3rd party fixes.
So it’s ready for snow leopard finaly

Download & Source

Chameleon bootloader modification

After Chameleon team release their new boot loader called Chameleon 2.0 RC4, some people made a modification based on Chameleon 2.0 RC4 and PC EFI 10.5. Here is some of them :

Rekusor Modification :

OK, I modified the bootfile so that we can change the system-id (and not the old IOPlatformUUID).
This is because, though I tried to restore this feature: it has absolutely no effect anymore (at least) on a 10.6.2 system,
so I guess this is why it has been disabled in recent chameleon releases …

Since the IntVar fix, it works like this : the system-id is autogenerated (by uuidgen) then the system generates an IOPlatformUUID from this system ID.

So in few words, we can only change the system id.

This is tricky because you will only be able to check that the resulting IOPlatformUUID is changed if you change the system-id by putting your own UUID, but you won’t be able to read this system ID in the profile info.

Still, it should work and give you a way to avoid to generate a random system-id.

you can get it here

AsereBLN modification: Main thread


  1. First of all I fixed the stupid bug with the fixed Platform UUID.
  2. Fixed a bug regarding PCI-Root-UID different than 0
  3. Fixed a bug regarding the detection of the CPU
  4. Fixed dozens of possible buffer overflows
  5. and all the bugs I forgot to mention

New Features:

  1. You can build Chameleon with GUI-support without the need of an embedded theme (Never understood why this should be necessary). The Booter is a lot smaller now. Only 160 kBytes.
  2. Platform UUID is taken from the BIOS (UUID from SMBIOS Table 1). You can remove PlatformUUID.kext, SMUUID from smbios.plist and also System-ID from
  3. Dynamic memory parameter detecting and injecting like Frequency, Type (DDR2, DDR3), Manufactor, Partnumber, Serialnumber. You can remove all memory related stuff from smbios.plist.
  4. Dynamic PCI-Root-UID detection from PCEFI 10.5
  5. Duvell300′s FACP Restart Fix added (from here)


  1. Filenames configured in (DSDT=…, SMBIOS=…) must be given with the full path. The Booter does not check automatically the Extra Folder. So if you used DSDT=mydsdt.aml and the mydsdt.aml file is in the Extra folder, then you must use now DSDT=/Extra/mydsdt.aml.
  2. ATI and nVidia Video-ROM-Files must be renamed to <vendorid>_<deviceid>.rom and must be put into the Extra folder. vendorid and deviceid as 4-digit hex values without a leading 0x. For instance, a nVidia 9400 GT (55nm) has the vendorid “0x10DE” and the deviceid “0×0641″, so the filename must be “10de_0641.rom”. To enable nVidia VGA BIOS File Loading use: UseNvidiaROM=Yes in To enable ATI VGA BIOS File Loading use: UseAtiROM=Yes in

If you use the Booter without the embedded theme, then you must supply a Theme in Extra/Themes/ to have GUI support. The default theme name is “Default”. You can configure the theme to be used with Theme=”Name” in

Platform UUID is setup by injecting /efi/platform/system-id property. The UUID value from SMBIOS table 1 is used as system-id. If your BIOS does not provide an UUID, then you can configure the UUID with SMUUID in smbios.plist. If you set system-id=No in, then the system-id is not injected into the IORegistry. Use this if you want/need to use PlatformUUID.kext or something similar.

The memory parameter detecting should work with P35/X38/X48/P45 memory controllers and the builtin memory controllers of the Core i5/i7 CPU’s. Reading of memory SPD (Serial Presence Detect EEPROM) data should work on P55, ICH10(R) and ICH9. You must remove all memory related keys from smbios.plist (SMmemmanufacter_X, SMmempart_X, SMmemserial_X, SMmemspeed & SMmemtype).

Dynamic PCI-Root-UID should work if your DSDT defines the UID like this: Name (UID, <value>). Default PCI-Root-UID is 0. You can configure the PCI-Root-UID to be used with PCIRootUID=<value> in (-pci0, -pci1, PciRoot… does not work anymore).

You should also update boot0 (with fdisk) and boot1h with (dd), because the Chameleon team fixed some bugs there.

The archive contains:

  1. boot – the Booter without debugs, without an embedded theme
  2. boot_with_embedded_theme – the Booter without debugs and with an embedded theme
  3. boot_with_debugs – the Booter with some debug messages
  4. boot0 – the fist stage bootloader (goes into the MBR)
  5. boot1h – the second stage bootloader (goes to the beginning of the Chameleon Booter partition)

I ask everyone to use at least one time the Booter with Debugs and to take photos at every “(Press a key to continue…)” stop (PCI-Bus, CPU, Memory-Controller, SPD) to help me to improve Chameleon further. If you have a running Windows on your Hackintosh, then a TXT-Report made with the CPU-Z programm would be very helpful too. If you encounter problems, then use the Booter with debugs. Do not forget to rename it to boot.

Patch against Chameleon-RC4 is included, but without the memory detection stuff. I’ll release it after a grace period. You know… ASEM is also reading here 

Any feedback is welcome!

Update Version 1.1.1:

  1. FACP RestartFix is enabled by default if you have an Intel CPU
  2. Memory Manufactor Code Lookup for some common Vendors (OCZ, G.Skill, GeIL, Crossair, Kingston)

Update Version 1.1.2:

  1. Fixed a bug with Memory Manufactor Code Lookup (DDR3: ManufactorID, Parity-Bit)

Update Version 1.1.3:

  1. Added Patriot, Crucial, A-DATA Memory Manufactor
  2. Support for 945 northbridge and ICH8, ICH7 southbridges
  3. SMBus Device Enable for systems there the controller is disabled (Tip from iNDi)
  4. printout a message if theme fails to load due to a missing file
  5. removed a print in non verbose mode to keep the Booter quiet

Update Version 1.1.4:

  1. You can supply a system-id with system-id=<value> in
  2. You can prevent the system-id injection with system-id=No in
  3. system-type is now supported. Default is 1 (Desktop). Use system-type=2 in if you have laptop. (Link)
  4. Removed the setVideoMode(TEXT) in resume.c to make Hibernation work.
  5. Support for 946GZ/PZ, Q963/Q965a and P965 northbridge memory controllers.

Update Version 1.1.6:

  1. Improved system-type injection. ACPI V2 FACP PM_Profile is patched to match system-type.
  2. Fixed a bug with system-id injection (
  3. Supported memory manufactors: Micron, Samsung, Transcend, Apacer, Kingston, PNY, MDT, Corsair, GeIL, takeMS, Buffalo, Mushkin, OCZ, A-DATA, G.SKILL, TeamElite, Patriot and Crucial.
  4. Supported memory controllers: Core i5/i7 IMC, 945G/P, 955X, 945GM/PM, 945GME, 946GZ/PZ, Q963/Q965, P965, P35, X38/X48, 965GM, 965GME and P45.
  5. Supported SMBus controllers: P55, ICH10, ICH9, ICH8 and ICH7.

To set system-type put a system-type= into (1=Desktop, 2=Laptop enables Battery, 3=Workstation). Default system-type is 1 (Desktop).

Update Version 1.1.7:

  1. Fixed the font swapping bug (small & console font).
  2. Fixed a problem with disabled MCH MMIO on some mainboards (needed to detect dram frequency).

Source n download : here

PS : i use AsereBLN mod boot loader and it work great so far

Chameleon 2.0 RC4

Chameleon team has release their latest boot loader, some new feature:

Hide Partition
Using this option you can enumerate all your partitions what you would like to remove from the boot menu, the syntax is similar to the Default Partition option but here you can specify many volumes in your

<key>Hide Partition</key>
<string>hd(0,1) hd(2,5)</string>

In the above example the booter won’t display partition 1 on BIOS drive 0 and partition 5 on disk 2.

This is a similar option what you can find in PC_EFI, but we’re doing this a bit different: The default value is still 0 but you can set to any arbitrary value like:


Fixed booting the default partition when using timeout. Added Intel Core i5 detection.
Applied rivig’s patch against all stage 1 loaders. Now linear address mapping uses 12 bit offsets. Added DigitalDJ’s SMBIOS CPU detection patch. Applied IntVar’s system-id patch. Applied hnak’s read_lba register saving patch. Added radekg’s HFS filesystem fix to handle 2GB+ file sizes. Backported ATI device injection EFI64 tables and hibernation fix from netkas’ PC_EFI. Thanks and credits goes for them!

you can get the bin and source here.

Install Snow Leopard Using USB

Instalating Snow leopard Using USB/External HDD/HDD Prtition

you need to have:

A working OSX installation for creating installer

Retail Snow Leopard Install DVD (for restore)

1 HSF+ Partition (about 8GB) : Installer

1 HSF+ Partition (+ 10GB) : Snow Leopard Installation

Boot Loader (Chameleon 2 RC3/PC EFI 10.5)

Some Kext (Depend on your system)

legacy kernel (for AMD/Non Vanilla user)

Edited OSInstall.mpkg + OSinstal (for MBR user)

First step is restore Retail Snow Leopard Install DVD to your USB (you can also use an external HDD or your internal HDD as Installer). to restore the DVD you can use Disk Utilities from your working OSX, use Mac Os Install DVD as source and your USB as a target (you can choose erase target disk). this will take some time, depend on your system, wait until it’s finish.

Next Step is install boot loader, Add some kext to /Extra/Extensions/ you an also add smbios.plist, dsdt.aml and modified to /Extra/. the easy way to do this is using MyHack Installer, you can read and download it here. Dont forget to customize MyHack installer, choose some kext you need (its depend on your PC) so you must know what kext you need to boot your hackintosh installation.

Some recomended kext:

NullCPUPowerManagement.kext – you will need it if you dont have a good HPET, and SpeedStep on your DSDT (you will get KP if you dont use it)


OpenHaltRestart.kext or EVOReboot.kext


Some other Kext (depend on your system)

kext for your chipset like JMicronATA, AppleIntelPIIXATA & IOATAFamily.kext, Legacy JMB36xSATA.kext, AppleNforeATA.kext, AppleVIAATA.kext

PS2 Controller (if you are using PS2 mouse and Keyboard)

LegacyAppleRTC.kext (for cmos problem if you dont have a good DSDT, work only in 32bit)

Ethernet Controller like SKGE.kext, Atlantic1eEthernet.kext, Forcedeth.kext, etc

GraphicsEnabler in for your VGA (for suported VGA)

Injector for your VGA or EFI String

You can also install FramebufferDisabler.kext (to prevent KP on some VGA if you dont use Graphic Enabler, injector or EFI String)

For AMD and non vanilla kernel user:

Chocholate Kernel (from myhack) or you can use other snow legacy kernel like modbin mach_kernel.test7, modbin mach_kernel.432, Qoopz XNU kernel, Nawcom 10.6.0 kernel

(note: you will need to copy this kernel to your snow installation for booting after the installation, i recommended you to copy it before you reboot to your USB)

Next Step is boot to your USB and install Snow Leopard, after reboot boot again from USB and choose your snow leopard installation, if you were lucky you will see a welcome video and enter your snow leopard system. after fill the registration form an enter te osx you can install your boot loader and some kext to your snow leopard installation and you will have a working Snow Leopard on your PC.

Installing Snow Leopard

There are a lot of tutorial or guide to install Snow Leopard on your Intel PC or AMD PC, i m just wanna make some option about how to install it to your machine..

Before you install Snow Leopard to your machine, first thing you need to do is knowing your hardware, you can look your hardware specification from your manufacture or you can use a sofware in your windows or linux system. Next thing is understanding  about hackintosh. If you are sure about installing Mac OS X to your machine, you can continue reading this article, if you not sure, please buy an apple hardware with Mac OS X installed inside. Please understand that installing Mac OS X (OSX) is for study or hobby only, if you really like it please buy original Apple Hardware.

if you have understand about Hackintosh, or you have OSX installed on your PC you might wanna try to install Snow Leopard (Mac OS X 10.6) to your machine, if you don’t understand at all, Leopard (Mac OS X 10.5) if the best option for your first OSX installation in your PC/Laptop.

Next step is understanding the Basic Hackintosh installation, you will need a boot loader to boot to your hackintosh installation, you also need some Driver (kext) for your Computer (you need to know what kext need for your computer to run OSX installation, you can look for it on the internet or your leopard installation, it’s depend to your hardware specification). If you have done that now you can go to the next step.

Next Step is get a retail Snow Leopard Installation DVD, you can buy it from apple store or nearest local apple store in your location. Please do not use Snow Leopard Distro (Distro are bad)

Next step is choosing what method for install Snow leopard to your Computer, i will try to write 3 method to install, you can choose which one is the best for you.

  1. Onfly installation from your working Leopard.
  2. Using USB/External HDD/HDD Partition to created a Snow Leopard Installation.
  3. Using CD boot like boot-132/Empire EFI and a Original Retail Snow Leopard Installation DVD.

I will continue this article soon,… please stay tunes….

Updating SL to 10.6.2

Apple has release Mac Os X 10.6.2

you can read and download the update here :

i choose combo update because it full, you can use it to update from 10.6.0 and 10.6.1. How to update:

Download the update n install it. but don’t reboot yet. if you are using sleep enabler you have to remove that kext and install sleepenabler.kext for 10.6.2. you can get the file here. make extension.mkext and you are ready to reboot  and enjoy your 10.6.2 Snow Leopard.

Netkas have make a good tips/release for 10.6.2 you can read it here

if you are using AMD/Atom you need to make sure that you have change the kernel because 10.2.0 kernel cant work with intel ATOM, AMD and non vanilla kernel user.

for ATOM user you can use 10.0.0 kernel or a patched 10.6.2 kernel : maybe you can use this kernel

for AMD user and non vanilla kernel user you can still using test7 kernel or Qoopz “anappirtrvh” kernel. its based on 10.0.0 kernel.

Update : Now nawcom have made a 10.6.0 and 10.6.2 XNU based kernel, he build it from qoopz resource and fix some code, you can get the kernel here. (still lack of cpuids patch for AMD)

CPUIDs Patch for Snow Leopard


Legacy kernel like modbin mach_kernel.test7 and qoopz “anappirtrvh” XNU kernel for snow Leopard doesn’t have on fly cpuids patch for AMD like 10.5 voodoo based kernel.

if you have success installing Snow Leopard on your AMD system, you will need to patch some cpuids. some application will crash without cpuids patch like iTunes and Spotlight. To do cpuids patch you will need a cpuids pacther like Marvin’s AMD Utility v.25. you can download it here.

To Fix iTunes you can do a cpuids patch on:




To fix Spotlight :


You Can do A CPUIDs Patch on /system/library/ but do not patch front row because it will make front row not working..

if you have already patch all cpuids you can restore your frontrow binary to make frontrow work

Building XNU kernel on Snow Leopard

XNU kernel Source for Mac Os X 10.6 Snow Leopard  has ben release on

Building xnu requires some open source (but not pre-installed) tools. Darwinbuild is the most reliable way for building these dependencies and xnu itself. Until that is ready, you can build the tools manually as follows:

make a dir in desktop or some where else (eg Kernel)

Open Terminal and type

cd ~/desktop/Kernel

(if you created a Kernel dir in desktop)

  1. Download the build tools source(s)

    $ curl -s -O
    $ curl -s -O
    $ curl -s -O
    $ curl -s -O
  2. Unpack the tools

    $ tar zxf cxxfilt-9.tar.gz
    $ tar zxf dtrace-78.tar.gz
    $ tar zxf kext_tools-177.tar.gz
    $ tar zxf bootstrap_cmds-72.tar.gz
  3. Build cxxfilt

    $ cd cxxfilt-9
    $ mkdir -p obj sym dst
    $ make install RC_ARCHS="i386 x86_64" RC_CFLAGS="-arch i386 -arch x86_64 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    $ sudo ditto $PWD/dst/usr/local /usr/local
    $ cd ..
  4. Build dtrace

    $ cd dtrace-78
    $ mkdir -p obj sym dst
    $ xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    $ sudo ditto $PWD/dst/usr/local /usr/local
    $ cd ..
  5. Build kext_tools

    $ cd kext_tools-177
    $ mkdir -p obj sym dst
    $ xcodebuild install -target kextsymboltool -target setsegname ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    $ sudo ditto $PWD/dst/usr/local /usr/local
    $ cd ..
  6. Build bootstrap_cmds

    $ cd bootstrap_cmds-72
    $ mkdir -p obj sym dst
    $ make install RC_ARCHS="i386" RC_CFLAGS="-arch i386 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    $ sudo ditto $PWD/dst/usr/local /usr/local
    $ cd ..
  7. Download the xnu source

    $ curl -s -O
  8. Unpack xnu

    $ tar zxf xnu-1456.1.26.tar.gz
  9. Build xnu

    $ cd xnu-1456.1.26
    $ file BUILD/obj/RELEASE_*/mach_kernel
    BUILD/obj/RELEASE_I386/mach_kernel: Mach-O executable i386
    BUILD/obj/RELEASE_X86_64/mach_kernel: Mach-O 64-bit executable x86_64

Original Post :  here

To build a modified XNU with a .diff of an XNU kernel you need to:

1. Download and Apply the patch

download the .diff file and place it in your kernel folder (eg. ~/desktop/Kernel/patch.diff )

Patch the source  with :

cd ~/desktop/Kernel/

patch -p0 -i patch.diff

2. build the kernel (make sure you have remove the BUILD folder in  xnu-1456.1.26 folder i you have try to build before

$ cd xnu-1456.1.26

(for i386 and x86_64 build)


$ cd xnu-1456.1.26

(for i386 build only (legacy kernel))

Go to Top