As i mentioned in the guide, Apple has either completely removed 32 bit kernel or locked it up. (it was present in DP1) Because holding down "3" and "2" on start up and adding arch=i386 does nothing. I couldn't get it to boot in 32 bit mode, therefore non LP64 version of the kexts cannot be used. Eg: all GMA 950 kexts and ATI1600Controller.kext. Unless one can find a way to reenable/reinstall 32bit kernel OR force load 32bit kexts in 64bit mode.
computer:~ me$ file /mach_kernel
/mach_kernel: Mach-O universal binary with 2 architectures
/mach_kernel (for architecture x86_64): Mach-O 64-bit executable x86_64
/mach_kernel (for architecture i386): Mach-O executable i386
computer:~ me$
computer:~ me$ file /mach_kernel
/mach_kernel: Mach-O 64-bit executable x86_64
computer:~ me$
Maybe you could try using the Kernel from ML Developer Preview 1 (includes i386 binary) and the corresponding System.kext (could be found in Mac OS X Install ESD/Packages/BaseSystemBinaries.pkg using Pacifist).To confirm my idea, I simply copied the mach_kernel from Lion to Mountain Lion: Now the system started booting but stopped with a kernel panic. If we get a booting system, we might at least be able to profit from user-space improvements. Any volunteers trying to go this route?
Maybe you could try using the Kernel from ML Developer Preview 1 (includes i386 binary) and the corresponding System.kext (could be found in Mac OS X Install ESD/Packages/BaseSystemBinaries.pkg using Pacifist).
Hi,
as I see it there is no 32bit mode because mach_kernel is 64bit only. This is what I get on Lion:
while on ML I getCode:computer:~ me$ file /mach_kernel /mach_kernel: Mach-O universal binary with 2 architectures /mach_kernel (for architecture x86_64): Mach-O 64-bit executable x86_64 /mach_kernel (for architecture i386): Mach-O executable i386 computer:~ me$
To confirm my idea, I simply copied the mach_kernel from Lion to Mountain Lion: Now the system started booting but stopped with a kernel panic. If we get a booting system, we might at least be able to profit from user-space improvements. Any volunteers trying to go this route?Code:computer:~ me$ file /mach_kernel /mach_kernel: Mach-O 64-bit executable x86_64 computer:~ me$
Otherwise, I suspect we have to wait for the xnu kernel sources and build them with i386 support compiled in. Does anyone knows how to do this? I could only find instructions for the dated SL kernel.
If i pass for linux first could i install ML GM in a macbook late 2006? ( gma950, macbook 2,1)
Oh and it's not just the kernel. Digging in /System/Library/Extensions, I noticed that kexts like IOACPIFamily are also x86_64 only...
Looks like 32bit mode is really a little further away than I (and probably others) would have thought...
Actually, I decided to delete the kextcache entirely since OSX should be able to boot anyhow (albeit slowly). Instead I opted for replacing the whole /S/L/E directory with the Lion version.Have you tried replacing Kextcache as well? Try and report back!
Either it cannot find it's boot device or does not want to launch the existing launchd for some reason. From my understanding, it should not make a difference for OSX that /sbin/launchd is x86_64 only: for OSX, user-mode processes are allowed to be 64bit even if the kernel is 32bit.panic(cpu 0 caller 0x561b6a): "Process 1 exec of /sbin/launchd failed, errno85"@/SourceCache/xnu/xnu-1699.26.8/bsd/kern/kern_exec.c:3546
I will do the list, but I don't have access to DP1.Also, can anyone list out a full list of kexts thats only 64bit? All 64bit kext need to be replaced because i386 does not support 64bit kext. I will replace them with DP1's kext & see how it goes.
1. Get a copy of Mountain Lion, please purchase the retail version of ML from the Mac App Store. Seriously, buy it, its only $19.99
The list is pretty long: of the 209 installed kexts, I found 158 that would need to be replaced. Here is only the perl script to keep this post terse. If you don't know what to do with it, I can post the list as well.Also, can anyone list out a full list of kexts thats only 64bit? All 64bit kext need to be replaced because i386 does not support 64bit kext. I will replace them with DP1's kext & see how it goes.
#!/usr/bin/perl
use warnings;
use strict;
my $dir = '/Volumes/Mountain Lion/System/Library/Extensions';
my $file;
opendir(DIR, $dir);
while($file = readdir(DIR))
{
next if ($file =~ /^\./);
my $path = "$dir/$file";
my $print = 0;
my @executables = split(/\n/, qx#find "$path" -type f -perm -0111#);
foreach my $executable (@executables)
{
my $output = qx#file "$executable"#;
if ($output !~ /i386/)
{
$print = 1;
last;
}
}
print("$file\n") if ($print);
}
closedir(DIR);
exit;
BRILLIANT! Have you tried replacing Kextcache as well? Try and report back! Can you please post the KP message?
Im trying this method, as well as the method fheusel suggest, kernel and kexts from DP1 The question now is, can LP64bit kexts work in i386? If no, that explains why it kernel panic
----------
Should be able to, you must erase Linux and have a copy of Lion installed before installing ML.
----------
To complete the picture, i think i can see why replacing mach_kernel ends up with a kernel panic. Simple, when you try to load i386, kexts like IOACPIFamily is in LP64, and not compatible to i386 so important kexts and dependencies can't be loaded so it ended up with a kernel panic.
The solution:
- Create a hacked version of mach_kernel. (Im on it)
- Use kexts from ML DP1 or Lion 10.7.4.
The outcome:
- Kernel is i386 again if above method works.
- Will be able to kextload ATI1600Controller.kext and all the GMA950 kexts bringing full graphics acceleration to all unsupported system.
Also, can anyone list out a full list of kexts thats only 64bit? All 64bit kext need to be replaced because i386 does not support 64bit kext. I will replace them with DP1's kext & see how it goes.
Ok, if you try to launch a ML program on Lion (simply type /Volumes/Mountain Lion/sbin/md5 in Terminal.app), you get a segmentation fault/illegal instruction/abort trap.Instead I opted for replacing the whole /S/L/E directory with the Lion version.
In this way, the kernel started but it died stating
panic(cpu 0 caller 0x561b6a): "Process 1 exec of /sbin/launchd failed, errno85"@/SourceCache/xnu/xnu-1699.26.8/bsd/kern/kern_exec.c:3546
Image
UPDATE: 7/26/2012 The guide has been modified to support the retail version of Mountain Lion.
A little note:
Unfortunately, either Apple has completely removed 32bit kernel, or locked it up. I tried to start it by holding down "3" and "2" and by typing arch=i386 in com.apple.boot.plist did nothing. (Kernel is still LP64) And because of that, I can't get 32bit kexts started such as ATI1600Controller.kext and all the Intel GMA950 kexts.
What works what doesn't (to avoid confusion)
- Mac Minis with X3100 > Perfect
- Mac Pros with upgraded graphics > Perfect
- MacBooks with X3100 > Works, display brightness issue
- MacBookAir with X3100 > Works, display brightness issue
- MacBookPros with X1600 > Graphics Issue (Frame buffer mode with Core Image lacks Quartz Extreme)
- iMacs with X1900 > Graphics Issue (Frame buffer mode with Core Image lacks Quartz Extreme)
- MacBooks with GMA 950 > Graphics (doesn't work at all)
- iMacs with GMA 950 >Graphics (Doesn't work at all)
- Mac Pros with 7300GT and X1900XT >Graphics (Doesn't work at all)
- Mac Minis with GMA 950 > Graphics (Doesn't work at all)
For education purpose only. Try at your own risk, please back up everything before installing or install it on a second partition.
Requirements:
- a Mac with Core 2 Duo processor and with Lion installed.
- At least 2GB of RAM.
- A copy of Mountain Lion.
- 8GB USB Thumb drive
- A second partition with at least 20GB free. Name it Mountain Lion.
Full instructions:
1. Get a copy of Mountain Lion, please purchase the retail version of ML from the Mac App Store. Seriously, buy it, its only $19.99
2. Boot up to the Lion partition, show hidden file in Finder. Google it if you're unsure.
3. Right click on OS X Mountain Lion.app and click "show all content" Navigate to Shared Support and drag "InstallESD.dmg" to your desktop.
4. Enable hidden files if you haven't. You should see a file called BaseSystem.dmg, open it and mount it.
5. Plug in your 8GB thumb drive and bring up Disk Utility. Click on the 8GB drive and select "Restore" tab, next, drag BaseSystem.dmg from the sidebar to "Source" and the thumb drive to "Destination". The process should take approximately 10 to 20 minutes, when its done, go to the newly restored 8GB drive, navigate to System>Installation and replace the file "Packages" with the one in InstallESD. The file should be 4.xGB.
6. Once the copying is done we have to replace some files, download this modified 1.14MB zip file.
7. Open up the ZIP file. You should get a folder called MountainLionHack, and it contains 2 folder, which is CoreServices and i386. Open up the 8GB thumb drive, navigate to /System/Library and MERGE the patched CoreServices folder in, when it ask about files replacement, click replace. Next, on the same 8GB drive, navigate to /usr/standalone and MERGE the patched i386 folder in. Replace files when asked.
8. Reboot your Mac and hold down "Option" while booting. Select the thumb drive and hit enter. Once you're at the installation screen, click next till you reach the destination drive, click show all drives and select the 20GB partition you made for Mountain Lion, hit next to install. Once installation is completed system will restart, DO NOT try to boot into Mountain Lion. While restarting, hold down "Option" and boot back into Lion 10.7. Bring up Finder, open Mountain Lion drive and navigate to /System/Library/CoreServices and replace PlatformSupport.plist with the one in MountainLionHack folder.
9. Reboot into Mountain Lion drive and set up your Mac. (Guide is not done yet, please continue reading)
10. You will realize that sound and graphics will not work.
Note: Fix sound guide will be up in a bit.
UPDATE: 8.55PM GMT+8
Sound guide
- First download this zip file, it contains 2 file, 1 hacked AppleHDA kext by me, and Kext Utility by Cvad-Mac.
- You will need to install the hacked kext. Launch Kext Utility and drag AppleHDA.kext into Kext Utility. Type in your password and wait. Once its done, reboot and you should get sound now.
11. Working Mountain Lion on not supported system. (Except graphics, for now)
12. Profit$$
Give it a thumbs up if it helped you =) Good luck!
I followed exactly your instructions; with my macbook air1,1 I am getting "MAC OS X Can't be installed on this computer" error. Tried 2 times.
What would be the problem?
Here on a MacBook3.1
All done as per instructions, the 8Gb drive boots up successfully,+ but when the installer application opens it gives a small window saying "MacOS can not be installed on this computer" and 2 options "recover form Backup" or "Restart". So basically there must be one more thing into the installer app of the BaseSystem drive that needs to be changed to include the unsupported machines.
Ok, if you try to launch a ML program on Lion (simply type /Volumes/Mountain Lion/sbin/md5 in Terminal.app), you get a segmentation fault/illegal instruction/abort trap.
Guessing blindly, that is because of unavailable kernel features (Gatekeeper or - more probable - improved ASLR comes to my mind...).
Image
Brief update, but I've got 10.8 GM workin on a late 2006 macbook (2,1 model) with graphics. Not sure if QE/CI is working however. Full guide will be posted when I'm back home.
Image
Brief update, but I've got 10.8 GM workin on a late 2006 macbook (2,1 model) with graphics. Not sure if QE/CI is working however. Full guide will be posted when I'm back home.