Saturday, January 22, 2011

Dual booting XP and Mac Snow Leopard on Asus EEE 1000he pc - and getting to 10.6.6

Dual booting XP and Mac Snow Leopard on Asus EEE 1000he pc - and getting to 10.6.6

Download Files here:

http://www.sendspace.com/file/3xrcs6

Most of what will be used is in there but not all of it.

Notes are for a 1000he, not 1000h, not 1000x not anything other than 1000he and I have the US version and got lucky with the wifi card in it working right off the bat in 10.6.0 (and continued to work in 10.6.6). Also the dual boot part would be different for windows 7 or another operating system but I only wanted xp and snow leopard and this method worked for what I wanted. Back up your hard drive before doing anything. Most of this info is out there already but I've compiled what worked in my particular case and it might be useful for you as well especially the little annoyances and things needed to get setup required a lot of searching and reading, maybe this will save you some time if nothing else. I may not be available to help with all issues here and since there are minor differences in the 1000he's available you'll likely not be able to follow this guide exactly. Just work through any issues you have, do some reading and trial and error (that's how I got this all working).

There are some files I have attached which work with this guide, you may need to use different version depending on your setup or particular EEE 1000he pc.

Getting started:

This assumes you still have your eee in original condition with xp on it.

BACKUP YOUR DRIVE/FILES/PARTITIONS/EVERYTHING FIRST!

ghost eee backup the full drive and all partitions, the recovery partition too if you want to save it
create parted magic usb drive use unetbootin to do so
create windows xp recovery usb drive use the file usbrecoveryconsole.zip to do so

Create a XP RECOVERY CONSOLE USB.
http://www.youtube.com/watch?v=4JUTNIeBVw0
http://www.briteccomputers.co.uk/downloads/usbrecoveryconsole.zip

turn off xp pagefile
reboot safemode and defrag
reboot from the parted magic usb drive to
use gparted to shrink file system
ghost again just xp partition

by ghost i mean image...i've used that so long as a verb for clone/image/backup the drive it's ingrained...but i used ghost the program ghost 9 for only the xp partition...and used clonezilla to back up everything the whole disk several steps along as I got farther so I wouldn't have to repeat the work already done. You're advised to do the same -- backup using clonezillia using your bootable parted magic (has clonezilla on it) usb drive that you'll need for making the hybrid mbr so windows will play nice on the mac's "turf" (aka a guid partitioned disk).

A note
---
Early on I noticed DSDT files are specific for the hardware AND bios version of your 1000he so I updated my bios from 0605 to 1002 because there were some dsdt files that matched that bios but not yet the latest bios which is 1104 as of this writing. You're advised to update to 1002 or 1104 at least since asus fixed some things it won't hurt to update them. Just don't get hacked or patched bioses, they're NOT needed for installing OSX. We'll update our dsdt.aml file that netbookinstaller helps create for us later to fix some issues (like backlight not turning on from wake from sleep, power button not used etc).
---
End note

use mac diskutility to create 3 partitions - GUID (GPT not MBR) -----> THIS ERASES YOUR EEE's HARD DRIVE -- DID YOU BACKUP YET?
FAT32 for the EFI partition 200mb or so doesn't have to be exact
MAC HFS+ Journaled partition about 73.6gb
FAT32 XP NTFS partition about 75.5gb
mac disk utility only allows FAT32 so we have to create the efi and ntfs partitions
to create the efi partition, use gdisk http://www.rodsbooks.com/gdisk/walkthrough.html
change the partition type to 00EF and save
to create the ntfs partition use parted magic live (gparted) usb/cd to format that empty fat32 at the end to ntfs -- use unetbootin to create the parted magic live usb drive.

now use ghost or your drive image/cloning software of choice (clonezilla = free and works well) to copy over the windows partition to the last partition the newly created ntfs partition, ensure the ghost option to restore the mbr is not chosen (we'll fix that later). I used ghost 9 here YMMV.

Use the XP RECOVERY CONSOLE usb you made to boot and then run these commands in order: type "fixmbr" then press enter and yes it is ok to update it. Then type "fixboot c:" and yes write the boot sector to the xp partion, then run "bootcfg /rebuild" and don't add any new ones if you only have one xp install so say no to adding to the boot.ini (you can edit this file manually if you need to using ultimate boot cd/usb for windows ubcd4win usb or by hooking up the hard drive to another computer and doing it that way). With this setup XP will be the 3rd partition so it should look like multi(0)disk(0)rdisk(0)partition(2)\WINDOWS since '0' is the first, '1' is the 2nd and '2' is the 3rd. The last command to run in the recovery console is "chkdsk c: /r" to check the xp partition for errors/fix them if found. Type "exit" to leave the recovery console

Now install chameleon bootloader. The version I used at the time was Chameleon-2.0-RC4-r684-bin. This allows us to boot xp, mac, or off the external usb drive. Without this bootloader working, you'll likely get boot0: error or similar when trying to directly boot off the usb hard drive/flash drive.

To install chameleon do this (i chose to install to the mac partition):
Plug up your hdd to an external sata-usb adapter and connect to working mac or linux machine, you could also boot off a linux
Using a Mac with terminal
su
cd /to the directory of the chameleon files you downloaded
on the mac it's:
fdisk -f boot0 -u -y /dev/rdisk1 <---that last number must be the number of the hard disk. It will probably be 1 if you're hooking up via the usb adapter and have only that as the external drive, it will probably be 0 if using a bootable linux distro to do this but i didn't use the linux method so not sure (the linux terminal command might be similar but maybe not) dd if=boot1h of=/dev/rdisk1s2 cp boot /Volumes/nameofvolume <-that will be the name of the partition (aka volume) you're using for Mac.

While here also run gdisk and create the hybrid mbr windows needs to function while on a guid partition table (gpt) -- run from linux (parted magic usb) gdisk /dev/sda (mac terminal would be something like /dev/disk0 i think) then press p then enter to show current partition table then hit r for recovery/transofrmation then h for hybrid then 3 for just the xp partition then no don't put the efi partition at the begining keep the partition types the same (should be ef for efi partition, af for hfs+ mac partition and 07 for ntfs xp partition) and be sure to NOT set them as bootable or your chameleon won't boot and will need to be reinstalled. hit w to write and yes to confirm then exit it. YOU WILL NEED TO DO THIS PART OF GDISK WHENEVER THE PARTITION TABLE IS UPDATED INCLUDING AFTER MAC OSX SYSTEM UPDATES THE PARTITION TABLE (I had to do this from 10.6.0-10.6.4 and again when going from 10.6.4 to 10.6.6)

Now reboot and hit a key when chameleon boots to choose xp and xp should run disk check and boot. If not you have to figure out why yourself or restore from backup (I had to reghost just the xp partition back from a backup once because i didn't have the hybrid mbr set up exactly as above when testing out how to get osx installed right, but after changing the hybrid mbr to the settings above i was able to reghost, run the xp recovery console running the fixes above and xp booted right up, actually reghosting might not have been needed i think just fixing the hybrid mbr with gdisk would have been enough to fix the hal.dll error as I found out with later subsquent mac os updates but the 'overkill' solution didn't hurt, so now just re do the hybrid mbr after the mac os update and that's all you really need).

Now that XP is set up and the disk is ready for the osx installation we can install that. It probably can be done without a working mac handy but i just happened to have my old G4 running Leopard so I haven't tried any ways without a mac to install this.

INSTALLING OSX

A note ---
Before installing OSX:
My wireless card was recognized right after install but not the internal ethernet. There are various models of wireless cards for the 1000HE but I got lucky. Well my luck meant I had to later swap the en0 and en1 network names because en0 is traditionally ethernet and en1 is traditionally airport wifi. But some mac apps like Time machine don't like them to be swapped so to fix it it would be best at this point to just disable your wlan/wifi in the bio before installing OSX, then install (meaning drop in the ethernet kext into /Extra/General Extensions) the ethernet driver after you get to the mac desktop and run the updateextras program and reboot, then go to network properties and set up the network connection then you can reboot, enable wifi and airport should be en1 and the ethernet should be en0 like it's supposed to be. If they're switched, disable wifi in the bios, delete /Library/Preferences/SystemConfiguration/preferences.plist and networkidentification.plist and reboot. Then set up ethernet, reboot enable wifi and you should be good then.
--- End note

But there are two ways installation can be done with the mac:

1) install via usb bootable drive (must have chameleon installed on local hdd to boot the external drive) RECOMMENDED since you'll have a bootable install usb drive to act for repairs/backups. This is what I used but I've also tried the method below and include some instructions for the curious.

OR 2) install via hacked OSInstall.mpkg NOT RECOMMENDED unless you want to take our your eee's hard drive to do repairs, it is installed by running OSInstall.mpkg on working mac to install directly to the hard drive for the eee pc (which is attached via a sata/usb adapter to the mac). You do NOT NEED TO HACK THE OSInstall.mpkg ON INTEL BASED MACS. As I only had a Powerpc mac I had to change the installer to let it run the install script so I could put snow leopard on my eee's hdd (hooked up to the ppc mac via usb). On my old G4 which is ppc only this wouldn't work unless I patched the osinstall.mpkg package because the SL installation will run only on intel macs without patching. To patch it i used the program xar which is the compression/encoding that the package uses but i found out later there's an easier way: use the developer tools package manager's flat package editor. I found out along the way I needed to UPGRADE the xcode development tools to 10.5 leopard on my g4 as I had installed them previously for 10.4 but forgot to upgrade them for 10.5 leopard. So upgrade your dev tools by installing xcode from your leopard or snow leopard disk (whichever your working mac is currently running). Then you can run the flat package editor to edit the OSInstall.mpkg file to add ppc before the i386, so: "ppc, i386" (there's a comma and a space in there too don't forget that). Then save it and drop it off on your writable snow leopard image or external usb which is writable and run the osinstall.mpkg from there careful to select the eee pc's hard drive only and not your internal mac's hard drive which would be a problem since the g4 powerpc can't run intel mac code so be sure to select your external usb eee hard drive.

Installing via bootable usb drive (RECOMMENDED) Used Snow Leopard 10.6.0 dvd, made disk image dmg file from it using diskutility, then mounted the disk image, then restored mac osx install dvd to external hdd used netbookbootmaker 0.8.3 on the usb drive (other versions wouldn't work for me using the 10.6.0 disk I had). booted using internal hdd in eee pc chameleon boot loader, tab at startup to boot into external usb hdd that was prepared installed mac osx then it rebooted to mac desktop run new netbookinstaller for 10.6.4 (the nov 27th, 2010 version) no options for anything except update installation button so click it

UPDATE TO 10.6.4

Without restarting, after the NBI is done running exit it and run the 10.6.4 combo update then restart. The new netbookinstaller i used patched the kernel for me so no need to manually use the patched kernel for 10.6.4. When it reboots it shows lots of scrolling text and you'll see some NetbookinstallerCLI stuff too -- it's doing its job :) Eventually it will go to the desktop so you can do this: Run netbootinstaller again and it will update more extensions and such then reboot.

UPDATE TO 10.6.6

After getting 10.6.4, update to 10.6.6 normally. I used the combo update but reports are the built in software update will work fine. Keyboard/trackpad issues after update: Run netbookinstaller again to fix things up (like trackpad/ps2 driver) after the OS update. I used a usb mouse to make it easier to launch but you could launch it without the mouse if you need to: key combo for spotlight is apple-space and the alt key acts like the apple key on my 1000he presently so hit that and type in netbookinstaller and then enter to launch it and space to prepare drive to run the fixes, reboot after it finishes (control-f2 for the apple menu, then arrow down to restart and enter twice)

SWAP ALT-APPLE KEYS

Mac OSX has a built in swap for the keys under System Preferences, Keyboard,  Modifier Keys and there you can make it so your Alt key on the keyboard acutally acts like the alt (option) key on the mac and the 'windows' key acts like the apple (command) key.

TRACKPAD ISSUES FIX

You might need to temporarly use a usb mouse to fix the trackpad if it isn't working for you. Still ps2/trackpad issues so I found a stable driver (not the package 0.98 that is available) but a slightly older version that uses the appleacpips2nub with voodoops2controller.kext (not the latest version but the previous version included in files zip with this post). That seemed to take care of the ps2/trackpad/touchpad issues. Link: http://www.insanelymac.com/forum/index.php?showtopic=238085 and http://www.sendspace.com/file/pk6bzc

Remember after the updating to FIX THE HYBRID MBR with gdisk so windows will boot again. You could install gdisk for the mac side so it can be used to fix the problem after every update. Install gdisk, then enable the root user in the terminal if needed: system preferences ->accounts -> login options ->join...->open directory utility->click the lock and authenticate->edit->enable root user->and set your root password->click lock again and close directory utility and system preferences, then go back into terminal and you can, sudo gdisk /dev/disk0 or su, then gdisk /dev/disk0 and then recovery/transformation options just like above and continue as above. Don't forget to write and reboot after updating the hybrid MBR. I've found this will fix the hal.dll problem if XP doesn't boot because a change to the partition table occurred (from a Mac OS update or otherwise).

You might get kernel panics after updating the mac...fear not, just restart and it will load up again. Be sure not to miss the netbookintaller step before you upgrade the first time, that will insure it patches the kernel so you can boot up (or maybe it is chameleon that patches the kernel but anyway it doesn't hurt to run the netbookinstaller before and after an update -- same goes for disk utilities repair permissions).

I could never get Kext Helper b7.app to run properly it would appear to work then freeze when trying to quit it. Best thing to do is not use it, just copy your kexts into the /Extra/General Extensions or /System/Library/Extensions (whichever the kext requires) and then run the UpdateExtra program.

If you add kext files to the /Extra directory (meaning /Extra/General\ Extensions or /System/Library/Extensions then be sure to run the UpdateExtensions ("shoe") program that netbook installer puts in the /Extra directory and reboot after it is finished.

SOUND BUZZING FIX (it's the microphone input gain set too high)

Fix was found here: http://code.google.com/p/voodoohda/issues/detail?id=8#c8

Run these terminal commands:

su
nano /System/Library/Extensions/VoodooHDA.kext/Contents/Info.plist
Ctrl+W
Gain

You can find like this :
MixerValues

iGain
90

Change the 90 to 0 Then save it

Now clean the cache:

sudo rm /System/Library/Caches/com.apple.kext.caches/Startup/*
reboot

That reboots and the sound will be normal now without the microphone buzzing. You can still adjust your input levels in the control panel.

ABOUT THIS MAC FIX

Run AboutThisMac.pkg to fix the about this mac screen. This shows the cpu correctly on the about this mac screen. It doesn't show the cpu correctly on the system profile however. That will be fixed later in this post.

I was also able to run the software update and get the safari fixes and other updates available after the 10.6.6 combo update. App store works nicely.

After putting the kexts in the proper folder, running the update shoe program and restarting I was able, one by one to get bluetooth, ethernet, ps2 trackpad/keyboard, working. Still have a problem with it waking up from sleep and read about a DSDT fix that might help. DSDTSE is a program which can edit and recompile the files.

EDITING THE DSDT.AML (compiled version of DSDT.dsl)

FOUND A FIX FOR SLEEP! The issue I had was sleep was working properly and waking up properly except the backlight wouldn't come back on when waking up. This fixes that.

Have to edit the dsdt and add the code here:
http://s10lenovo.com/viewtopic.php?f=33&t=4128&sid=b1410b25b262cfeac22bbe30e3163594&start=10#p28606
before the Device (PWRB) block of code.

Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}

USE DSDTSE OR DSDT Editor to extract, add the code above and save the dsl then compile the aml file. The compiled dsdt.aml file goes into /Extra and you may want to open a terminal and run these commands on the file after you've copied it in there:

Put your new dsdt.aml in /Extra first. Then run these commands in a terminal

su
cd /Extra
chown root:wheel dsdt.aml
chmod 755 dsdt.aml
exit
exit

I also installed InsomniaX here and set it for my login options and to run at startup so I can close my lid without the computer sleeping but that is just personal preference.

POWER BUTTON FIX

To get the power button working you can run the DSDT autopatcher found here and select Generic as the motherboard type to auto patch your new dsdt for the power button fix. You could probably find some dsdt code like the above backlight fix if you search around and want to do it manually. In my case the autopatcher fixed this really easily.

Download Link for DSDT editor:
http://www.insanelymac.com/forum/index.php?showtopic=223205
Download Link for old dsdt patches:
http://olarila.com/forum/packs.php (free login required) These are the patches from the old autopatcher which has been discontinued in favor of the new DSDT Editor and Patcher. The Generic.txt patch still works to fix the power button issue.
Old Download: (login required)
http://www.insanelymac.com/forum/index.php?showtopic=235523 (old autopatcher link not working)
http://www.insanelymac.com/forum/index.php?s=f2e355ef75410639c7238621d6f01add&act=attach&type=post&id=85365 (old autopatcher link not working)


After running that and rebooting your power button will now give you options to restart, sleep, cancel or shutdown.

FUNCTION (FN) KEYS "FIX"

The newer Voodoops2 driver wouldn't work for me (specifically 0.98) so I used the older version mentioned above. This means my FN keys wouldn't work (fn-f1 'sleep' worked and the pgup/down/home/end keys though but none of the others). So I used a program called Spark to remap my Control CTRL key for the specific system functions like brightness up/down and volume controls. Get Spark Here:

http://www.shadowlab.org/Software/spark.php

I used spark 3.0b9.

STILL NEED TO GET WORKING OR TWEAK

Bluetooth turn off (stuck on or off, toggle in bios, can't be toggled in mac osx unless fixed?)
set serial number in smbios.plist and other hardware info, how and where to find the right info?
system profiler shows wrong cpu speed
chameleon settings/default/timeout
list the extensions in /extra/ and /system/library/extensions and ensure nothing extra needed (might want to list on a forum of those who know)

AFTER THE INSTALLATION:

install xcode developer tools/and other optional installs
ntfs-3g for snowleopard (includes mac-fuse) to save stuff to xp partition
if you have high cpu usage after installing ntfs-3g it is likely spotlight trying to index the ntfs volume,
i just set the privacy to not index my xp volume and cpu usage went from 50%+ down to 1-4% idling.
maybe hfs+ software on xp side to write to mac partition
mac app store works so you can download your apps :)
set dock to left side personal preference, more vertical room on the tiny netbook screen
set up desktop background/apps/screensaver (if any) etc

MAIN SOURCES AND CREDITS:

http://osx86.co/f47/my-asus-eeepc-1000he-and-how-i-installed-t6316/
http://minhdanh2002.blogspot.com/2010/10/dual-booting-mac-os-x-1064-and-windows.html
insanelymac
voodooprojects
technow.cc
osx86.es
meklort
etc (meaning lots of reading and trial and error...and determination to make it work because now it does :)

18 comments:

  1. just quick question: where do you put kexts for 1000he: in /Extra/General Extensions
    or /System/Library/Extension ?

    ReplyDelete
  2. It depends on the kext. Most go in /Extra/General/Extensions. The VooDooHDA goes in /System/Library/Extensions.

    ReplyDelete
  3. only VooDooHDA goes to/System/Library/Extensions
    and the rest of kexts go to /ExtraGeneral Extensions
    is that correct?

    ReplyDelete
  4. I wasn't sure which kexts went where so I went back into the folders and double checked. The VooDooHDA.kext and the AttansicL1eEthernet.kext go into /System/Library/Extensions/
    The rest go in /Extra/General\ Extensions/

    Here's a list of the extensions installed. Some are installed by apple, some are put in there by the netbookinstaller and actually I don't know if any aren't needed or don't belong there (I'll have to check on the forums from someone more knowledgable about this -- but this build does work now and I've even got Wine installed for the one windows app I've been using forever -- UltraEdit (yes I know there is a Mac port of it now but the old version I bought long ago suits me fine and runs great on Wine)).

    Here's are the two files which lists what goes where:

    In /Extra/General\ Extensions/
    http://pastebin.com/raw.php?i=wLsGUkbq

    In /System/Library/Extensions/
    http://pastebin.com/raw.php?i=cZ8PH7U1

    ReplyDelete
  5. can you post list of all files in
    General Extensions folder one more time? (you've posted list of files in Extra folder)
    thanks

    ReplyDelete
  6. Sorry about that.

    Here is the Gen Extensions folder

    /Extra/GeneralExtensions
    http://pastebin.com/raw.php?i=A35P7DKk

    ReplyDelete
  7. which kext is for power management (battery level ect.) ? I can't get it work after upgrade to 10.6.4

    ReplyDelete
  8. Using Apple's built in battery management but with this acpi extension: AppleACPIPS2Nub.kext, which is found in the PS2 folder inside 1000HE KEXTs folder from the zip of the files listed above.

    So updating to 10.6.6 and installing the trackpad fixes should also fix the battery/charge/power issues.

    Also you can run the netbookinstaller after upgrading to 10.6.6 and see if that helps or try another power management extension like Voodoopoweracpi if all else fails. ( http://forum.voodooprojects.org/index.php/topic,1094.0.html )

    ReplyDelete
  9. ok, now I have 10.6.6, but:

    -I've installed Ralink RT2860 drivers for wifi, and this is only works after second restart (turn on-> doesnt work -> restart -> working)

    -tried to install VoodooPowerMini kext for speedstep, but I have kernel panic...

    what can I do with that???

    ReplyDelete
  10. I think that's a known issue with the ralink drivers. I didn't use them because my wireless worked right off the bat. Some folks suggest swapping out the wireless card.

    I think the voodoopoweracpi (not mini) is the one you want:
    http://www.rapidshare.com/files/422606899/VoodooPowerAcpi.kext.zip

    ReplyDelete
  11. installed VoodooPowerAcpi.kext but cpu runs at full speed all time...
    is speedstep working on your 1000he with 10.6.6?

    ReplyDelete
  12. I haven't tried to get speedstep working. I read about p or c states or something like that with chameleon that might allow it to work but haven't tried it yet.

    ReplyDelete
  13. Thanks for putting this guide together, since I want to dual boot my new SSD for my 1000HE. So far I got up to the step where I shrink the NTFS partition on the old HD and then Clonezilla it over to the SSD. But I'm getting stuck at the XP Recovery Console USB step. The recovery console sees the SSD as one big unformatted partition, but GParted correctly shows the EFI, HFS+, and NTFS partitions. Any suggestions?

    ReplyDelete
  14. @bikingbrian,
    sounds like the partition table is 'off' a bit since your recovery console usb drive can't read it...i would try to use gparted to resize the ntfs partiton a little (maybe shrink a tad) commit the changes, then restart and then expand the ntfs partition back to where it was to perhaps rewrite the partition table again and see if the recovery console will see the partitions correctly...btw i'm running 10.6.7 just fine on my 1000he now and updated xp sp3, still haven't tried 10.6.8 yet but i will soon and i think it will be fine

    ReplyDelete
  15. Thanks, I'll have to give that a try. I've already gotten up to 10.6.7 on my USB stick, I also hadn't gotten around to 10.6.8 yet. http://www.bikingbrian.com/tag/hackintosh/

    ReplyDelete
  16. I just tried updating to 10.6.8...had the usual upgrade problems described above got everything working now except the wifi/networking which hangs once in finder for a while then shows as 'not configured' will need to figure this out to get the networking back. Already tried removing the interfaces from networking system preferences and adding them back. So recommendation for now is to stick with 10.6.7 and not upgrade to .8 yet.

    ReplyDelete
  17. Thanks for the tips, got everything up and running, though I had to do a fresh XP install, but that's OK: http://www.bikingbrian.com/2012/01/10/asus-eee-pc-1000he-mac-snow-leopard-and-windows-xp-dual-boot/

    ReplyDelete