Jan 29 2009
Definitive Mac OS X installation guide for netbooks
There is currently a great demand for laptops which provide the user-friendliness of a Mac without the cost and weight of a MacBook or MacBook Pro, or without the cost of size of a MacBook Air.
Given that the ever-increasing varieties of Intel Atom-based netbooks are low-cost and roughly equivalent in hardware terms to the original MacBook Air, they make a tempting target to conversions to “MacBook Mini”s.
Indeed, there are a large (and also increasing) number of guides which will tell you how to get OS X running using a variety of ISO images downloaded via BitTorrent and hacked kernels which then require extensive changes to the installed system and come with copious warnings not to upgrade the OS when Software Updater prompts you to… and even then it’s common for basic functions such as sleep or USB not to work (although it has to be said that no method is entirely free from caveats).
This guide doesn’t work like that. This guide will describe how to install OS X from an original Leopard installation DVD and how to end up with an entirely unmodified system (*) which will not break when Apple issues updates.
DISCLAIMER: Please do not attempt anything you read about below without understanding what you're doing! Following these instructions will erase your hard drive before Leopard is installed, so only continue if you're happy with this and have backups. This guide is written from memory, and I haven't wiped my netbook to confirm every step - although I'm happy to receive feedback about any errors.
This guide is written with the Samsung NC10 in mind, for this is the only netbook I have available to test with. Other netbooks should also work with the same method, but I’ll post updates if I hear of any problems or improvements. This guide does not cover multi-boot systems, although it should be relatively easily achievable for anyone with a working knowledge of boot-loaders.
- What you will need:
-
- An Intel Atom-based netbook with the ability to boot from USB devices;
- A USB data stick or USB hard disc to boot from with 64Mb of free space;
- A USB DVD drive or, alternatively, a 16Gb or larger USB data stick or USB hard disc from which to install Leopard and access to a machine with a DVD drive already running OS X. 1
Some people have reported problems in getting external DVD drives to be recognised, so the current best advice is to image the Leopard DVD onto a USB hard disc, as described below, and install from this; - An OS X-supported WiFi MiniPCI-e card, an OS X-supported internal ethernet adapter, or an Apple MacBook Air USB to Ethernet adapter (or similar);2
- Access to a machine running Windows to start with (although this can be the netbook itself prior to OS X installation, or alternatively a Linux machine);
- A basic knowledge of UNIX command-lines is helpful, but not required.
1 Most (all?) netbooks do not feature an optical drive, so installing Leopard isn’t as simple as just dropping the DVD into a DVD drive… unless you happen to have one handy. If you don’t, then all is not lost – if you have access to another machine running OS X which also has a DVD drive, then you can simply insert the Leopard installation DVD and connect your removable media and launch Disk Utility. Click on the DVD icon on the left and then select the “Restore” tab. Now drag the DVD icon onto the “Source” text-box and your USB hard disc or data stick onto the “Destination” text-box and click “Restore”. Note that the Leopard DVD image is just slightly too large to fit onto an 8Gb data stick 🙁
2 This is probably the greatest hurdle to getting Leopard running on the NC10 in particular, as it is unlucky enough to have both wireless and ethernet adapters which aren’t supported as standard on OS X. If an install is attempted on a stock machine without a USB ethernet adapter, then the first stage will succeed but the user-creation stage will loop endlessly because the OS can’t find a network adapter. It is possible to avoid this by configuring a Bluetooth PAN connection, but since this doesn’t have an ethernet MAC address other problems (and lots of log messages concerning UUIDs) will result.
It is actually possible to get the stock wireless adapter running, but this is a complex process and the result is not stable, so I won’t cover it here. The ethernet adapter is currently a non-starter, with no support in OS X at all. Thus, whilst it is possible to get by with a USB network adapter, by far the best solution is to crack open the chassis and replace the standard MiniPCI-e WiFi card with a Broadcom replacement – Dell TrueMobile cards seem to be the popular choice. I opted for the 802.11BG Dell 1395 over the 802.11ABG Dell 1490 on the assumption that the lack of 802.11A networking, something I’ve never come across in the UK, might lead to some power savings. 802.11N cards also work, but check around first to ensure that there are no hardware incompatibilities with OS X.
- What you will need to download:
- This bit’s easy – you only need a single file: The installation image available from here (8.6Mb), which now includes the Windows syslinux binary, used to make your USB data stick or disc drive bootable. If you need to install from an OS other than Windows, the latest release of syslinux is available from here (but you won’t need this if you do have a Windows machine available to prepare the USB boot data stick).
- What will happen next:
- Firstly we’re going to copy the installation files, which are actually only just over 45Mb in size, to the USB data stick or hard disc. Then syslinux is run from Windows or Linux in order to make the device bootable. Booting from this device allows the Leopard installation to complete. After this, we’ll run a script which automagically performs the system changes necessary to boot without the USB device in place, and… that’s it!
- Preparing the boot device:
- If necessary, start by (re)formatting your USB data stick or disc drive as FAT32. Extract the installation image Zip file, downloaded above, and copy all of the files contained within to the root of the USB device (so that “BOOT“, “BOOT.CAT“, etc. are at the top level of the USB device – not in any subdirectory). Now open a Command Prompt and change directory to your USB device – for example, drive U:. Now run the command:
U:\syslinux -ma U:
… to make the drive (U: in this example) bootable.
Note that this command shouldn’t produce any output: if anything appears on-screen, then the process has failed. This can be caused by supplying the wrong drive-letter, or by not running the command with elevated privileges on Windows Vista or Windows 7. In this latter case, “CMD” should be typed into the Start Menu search box and then the ‘CMD’ icon above should be right-clicked and “Run as administrator” should be chosen.
At the very next step, we will be reformatting the drive for use with Leopard – so now would be an excellent time to backup your Windows partition(s), or even swap out the internal hard disc (and wireless). I took the latter approach, and installed a 30Gb OCZ Core Series v2 SSD. The capacity is plenty for my needs (even with a full Xcode install, I still have almost 10Gb of space free) and has the benefits of being totally silent, having no moving parts, consuming less power, and actually performing better than the drive installed as standard!
- Installing Leopard:
- Reboot your netbook with the USB device inserted and enter the BIOS Setup (probably by pressing Escape, F2, or Delete as the machine powers on) and ensure that the following options, if available, are enabled:
- NX / XD / EDB
- HPET
… and also ensure that you change the boot order to place the USB drive before the internal disc drive. The NC10 has two USB sockets on the left and one on the right, and it simplified things greatly to place the bootable USB device in the right-hand socket with the USB DVD drive or larger-capacity USB device on the left.
Now hold your breath, cross your fingers, and allow the system to start to begin installing Leopard!
… almost. First you should see a simple text-mode boot menu where you have to press Enter to confirm booting from the DVD (image). As noted above, the most reliable installation method is currently to boot an image of the Leopard DVD from a USB hard disc (or large USB data stick).
You should now be looking at the Leopard installer’s language select screen. Please email me with details if this isn’t the case. Note that the screen will look strange at this stage, because 800×600 output is being stretched onto a 1024×600 screen.
Instead of proceeding with installation as normal, select your language and then select Disk Utility from the Utilities menu. Choose your internal drive from the list on the left, and then select the Partition tab. Define a single partition covering the entire device, but before applying hit the Options button to pull up the dialog below:
… from where the GUID Partition Table option should be selected. Now continue to select the file system to use and format the newly-created partition. Users of SSD’s should avoid the “Journalled” option (as it will needlessly generate addition wear on the device) and the “Case-sensitive” option, whilst technically correct, should be avoided if planning to run Adobe applications at any point in the future – because Adobe’s inability to consistently use either upper- or lower-case results in breakage when the file system differentiates between the two.
Now, finally, proceed through the installation as normal – being sure to deselect options, such as printer drivers, which would consume a large amount of disk space if space is at a premium such as with an SSD.
Installation should continue successfully until the very last stage when the installer tries to set the partition with the newly-installed OS as the boot volume – which will fail since this is not a real Mac. This is completely normal. Remove the installation DVD but keep the USB boot device inserted and reboot.
- Creating the EFI partition:
- The last stage of this installation method will reformat the 200Mb EFI partition, which is currently otherwise unused (but which the EFI standards say must be formatted as FAT32) as HFS+ to form an alternative boot partition for OS X. Modified override kernel extensions can then be loaded from here before the actual system extensions are seen, allowing Leopard to work transparently on foreign hardware.
You should be looking at the Leopard desktop, and have a drive icon for the bootable USB drive. In here should be a disk image named ‘MacOS Installer.dmg’: open this, and there should be a variety of items including a script named “Installer”. Run this and follow the prompts (the default answers should be sensible) in order to setup your EFI partition.
- Important Note:
-
It has just been brought to my attention that versions of the NC10 with integrated 3G modems have (slightly) different DSDTs to the non-3G models. Therefore, if you have the 3G NC10 then please do not choose to install a DSDT override when prompted by the Installer. There is now a replacement DSDT.aml for 3G editions – if you wish to install the DSDT override then either copy this in to place on your EFI partition manually, or drag it into the mounted ‘MacOS Installer.dmg’ disk-image before running the “Installer” script.
I accidentally wiped out my (real) MacBook Pro when testing the installer, but it did seem that for some reason the /Volumes/EFI/Extensions/ directory had been created, but that the contents of the Extensions directory from the installer image hadn’t been copied across. It’s worth choosing not to reboot, and double-checking that this has succeeded before restarting. It’s best to copy the files across from a Terminal session, and then run /Volumes/EFI/update.sh as root once they are in place. Again, please let me know if this works for you or not.The Version 1.1 update has now been tested on a variety of hardware, and the correct files are being created. The glitch above must have been related to accidentally running the installer on a real Mac. Don’t do it, kids 😉
If the version of Leopard installed isn’t 10.5.6, it would be worthwhile to now apply the 10.5.6 Combo update, as the extensions supplied with the Installer are the 10.5.6 versions, and may not work as expected on earlier releases.
This update can be downloaded from Apple’s Downloads site.
Eject the Installer image and the USB device, and then reboot for the final time (note that you will not see an Apple logo as the system boots from now on – this was removed from the bootloader for code-size reasons), and you should find that you have an all-singing, all-dancing, and mostly functional Leopard machine in front of you! 😀
- Where do we go from here?:
- There are still issues related to running external displays over the VGA port in non-mirrored mode which are unresolved. Audio switching from the headphone jack to the internal speakers is currently a manual job, but forthcoming drivers due soon promise to fix this. Because the touchpad is assumed to be square, the vertical sensitivity is too high, but this is also being worked on. Finally, scripts are needed to change the brightness level as this can’t be done with the function keys. And yes, the Euro key on Fn+F3 really does output “0128” instead of anything useful <sigh>.
At the time of writing, none of the SMBIOS replacement extensions work on 10.5.6, so correcting the System Profiler output is not currently possible. Finally, Intel’s EIST is currently unsupported, and extensions which enable this on other Intel processors crash the Atom. Given that the processor’s TDP is a measly 2.5W this isn’t really the big issue it would be on other more powerful systems.
Note that, after going to all of this trouble to get Leopard installed without modifying the installed copy in any way, it’s important to resist the temptation to then go and install any extensions onto the system partition itself – and ignore any instructions which direct you to do so! Any new extensions should be installed instead into the Extensions directory on the EFI partition, and the update.sh script in the root of this partition must be run after any change.
Two excellent tips from the ever-useful MacOSXHints.com are:
- Disable Safe Sleep, aka Hibernation – which doesn’t work with the current version of efi_boot, although support is already working in other bootloaders and is promised for the next release of Chameleon. Once Safe Sleep is disabled, /var/vm/sleepimage can be removed to reclaim some disk space.
- Enable remote DVD mounting allows any machine to use 10.5’s new MacBook Air feature of making remote DVD drives appear local for software installation purposes.
Apple updates should all be fine, although Snow Leopard (OS X 10.6), being 64bit (and the Atom N270 being 32bit only), is an unknown quantity. There are currently rumours of an Atom-based Mac Mini update or even an official Apple netbook, either of which could vastly improve the, already very good, hardware support for this platform.
If/when Apple to release further Mac OS updates, or when upgrading to 10.5.6 initially, it’s well worth making a (Time Machine?) backups first. I’d then advise downloading the Combo Update from Apple’s support site rather than installing the Delta update offered through Software Update. It’s well known that running “Verify Disk Permissions” can throw back warnings after installing a Delta update, whilst this doesn’t happen after applying a (more comprehensive) Combo update.
- Update:
- Version 1.1 of the installer fixes several problems, including preventing the Quiet boot plist from being given the wrong name and fixing the location of the log files which are created during the install. Anyone who has already downloaded the original release should upgrade to this version and re-run the installer if any problems were encountered previously.
* Almost 😉
eblot
22nd May 2009 @ 10:06 am
> do they stick at 10.5.0 (presumably) and then rely on Software Update to perform the upgrade?
The Mac Box Set I bought was shipped with a Leopard 10.5.6 release; I don’t remember which version came with my MBP Unibody, but it’s definitely > 10.5.0.
There’s no need to remove useless files – it works fine with them, but to get a smaller image file. The smaller the image, the smallest the USB stick partition needed. Now that both the installer partition and the Leopard DVD partition both stand on a single USB 8GB stick, it’s easier to perform the whole installation.
eblot
22nd May 2009 @ 10:43 am
> I’m afraid that I’m absolutely sure that there’s no other operation needed other than moving the AppleYukon2.kext plugin from within IONetworkingFamily.kext to the top-level Extensions directory, and then running /Volumes/EFI/update.sh
Stuart, sorry again, but could you show the actual size and permisions of your AppleYukon2 file? From your archive, the top-level extension directory contains a file that seems to have been patched with a 00:13:77 OID (i.e. NOT 00:11:22). It looks like a patched file for NC10. However, it is not the same as the IONetworkingFamily.kext with contains a 00:11:22 OID.
I still cannot understand what’s going on: from your blog message, the top-level file should be the only file used to drive the Ehternet chip. However mine contains a 00:13:77 OID, but ifconfig keeps reporting 00:11:22, which means that the MAC address is ignored, or that the extension itself is not used.
eblot
22nd May 2009 @ 11:46 am
Ok, got it!
So here is what I had to do to get it working (it slightly different from your description). I don’t know why I cannot follow the same method as yours.
1. Do not move an extension from one directory to another. Moving AppleYukon2 file from the IONetworkingFamily directory to the top-level extension directory always leads, on my NC10, to a crash at boot up w/o even editing the file.
2. IONetworkingFamily/Plugins file *is* used: I’ve edited it and the MAC address is now ok. [it even takes precedence on top-level AppleYukon2 extension: when I edit the top-level file, and keep the IONetworkingFamily/Plugins file, the MAC address of the later is used]. I removed the top-level AppleYukon2 file from the Extensions/ directory, and everything work as expected.
Stuart
22nd May 2009 @ 4:33 pm
eblot, that’s weird – I had exactly the opposite experience!
I first edited the AppleYukon2 binary within IONetworkingFamily (yes, the 00:13:77 OID is the MAC address of my machine – I meant to restore the original file but I guess I forgot), and the system booted with working ethernet but a MAC address of 00:11:22:33:44:55. I then copied the extension to the top-level directory, and everything worked, no crashes.
Answers on a postcard, please 😉
Stuart
22nd May 2009 @ 5:00 pm
Chris, I’m afraid that I can’t help with the Windows 7 problems as I’ve not tried it on my NC10. Installing Chameleon to the MBR shouldn’t affect Windows at all, though – so unless Microsoft is being over-zealous about checking whether its own boot-loader is present, I’d expect it to just-work.
I’d favour the official Chameleon instructions over what people online are saying 😉
What you need is:
You then need an ‘Extras’ folder in the root of the EFI partition, and your ‘Extensions’, ‘com.apple.Boot.plist’, ‘smbios.plist’, and ‘DSDT.aml’ (the last two optionally) within this.
The ‘update.sh’ included with the 10.5.7 extensions already auto-detects Chameleon directory layouts, so if you’re using this then you shouldn’t need to edit anything.
(*) Since the kernel resides on disk0s2, this is really the correct location for the second-stage boot-loader. Having said this, disk0s1 is much less likely to be overwritten, and the primary boot-loader seems to search for the second-stage, and so will work with either. To be on the safe side, there’s no harm in writing the image to both partitions – but bear in mind that strange things could happen after a future update if the versions don’t match.
Chris
23rd May 2009 @ 8:44 am
Answers to my own questions about booting Win7 + Leopard & Chameleon (in case anyone else wants to know, because I sure used this post as an immense resource (better than any other!))
Started the NC10 from scratch! So order of steps that worked for me
Phase 1
Used your USB booter to start NC10
Used 10.5.6 Retail Installer to partition as GUID with two partitions, one HFS+, one FAT32 (apparently very critical to installing Win7, possibly also Vista)
Installed Leopard
Phase 2
Now boot from Win7 USB disk
Use the repair functions and command prompt to run Diskpart and make the Fat32 partition Active
Reboot into Win7 USB Installer
Choose the FAT32 partition and format as NTFS
Install Win7 (It’ll reboot twice, but you’ll have to pull the USB Win7 installer Hard drive between each so that it can continue the install)
Unit now ONLY boots Win7
Phase 3
Booted using Stuarts USB key into Leopard
Wiped EFI partition (disk0s1) as HFS+
diskutil eraseVolume “HFS+” “EFI” /dev/disk0s1
Installed Chameleon’s boot0 to MBR
sudo fdisk -f boot0 -u -y /rdisk0
Installed boot1h to EFI partition (which is different than chamelon’s instructions)
sudo dd if=boot1h of=/dev/rdisk0s1
Copied boot to EFI partition root
sudo cp boot /
Copied Stuarts 10.5.7 Extensions and copied em to /Volumes/EFI/Extra/Extensions
Copied Stuarts com.apple.boot.plist to /Volumes/EFI/Extra (this plist with the key inside, I take it that this is necessary for the display resolution?)
Copied Stuarts DSDT.aml to /Volumes/EFI/Extra
(This is probably where I originally went wrong and was having problems with audio and video previously.)
Modified Stuarts update.sh to look at /Volumes/EFI/Extra/Extensions to create the Extensions.mkext inside of /volumes/EFI/Extra
(I had thought that the mkext file was unnecessary by the way things read from other posts, but quite needed when done properly)
Update with 10.5.7 updater
(All this chameleon install breaks Windows)
Phase 4
Set Windows partition as active
boot from Win7 USB installer and used the repair windows tool to fix startup problems. Unit now boots only to windows on its own again.
Boot using Stuarts USB key into Leopard
Make the Leopard partition the active one
Voila! Everything is fancy and chameleon allows you to choose a boot drive and all that jazz!
Now to figure out what you boys and girls are talking about with the Yukon driver! yegads!
Marcos Scriven
24th May 2009 @ 5:28 pm
Hi Chris
Thanks for that little how to. *almost* worked for me. I’ve now got the Chameleon bootloader working so that I can choose to boot Leopard or Windows 7.
However, despite following your instructions (putting all of Stuart’s stuff into the /Extra/ dir), when booting into OS X its clear that not all the extensions are being picked up.
I altered the update script with the new directory name. However, it failed because there was no /Volumes/EFI/System or /Volumes/EFI/System/Bootloader directories – so I made them
was there supposed to be something there in the first place (as in your steps you say to erase Stuart’s EFI partition setup)
Thanks
Marcos
Marcos Scriven
24th May 2009 @ 5:49 pm
Scrap that – got it working – replaced /System/Bootloader with /Extra
Although I’m not entirely sure why that works.
Nor am I sure why my CPU speed is reported as 1.6GHz again – with Stuart’s latest stuff it was reported as 4GHz!
Chris
24th May 2009 @ 8:13 pm
I should have been a little clear – I didn’t use Stuarts paths from the EFI root. I followed Chameleons wants which is to put those files directly in the Extras folder. I also have the unit reporting 1.6GHz, but I think it’s because we don’t have an SMBios.plist file (which I believe to be the area that describes the computer’s hardware).
Okay Stuart and eblot, I feel like I’ve come so far! I’ve had this NC10 for a week and I’ve learned what an EFI partition is, how your and chameleons bootloaders work in it, and now I’ve edited my very own AppleYukon2.kext to have my very own MAC address! (jumping for joy!)
I, like eblot, found that removing AppleYukon2.kext from the /Volumes/EFI/Extensions folder and using the one inside the IONetworking plugin folder to operate properly. Also, I noticed the version numbers of Stuarts AppleYukon2.kext from the Extension root and the IONetworking to be different. I used the older one that had the proper markers as described in the insanelymac forum. I suspect the newer Yukon driver to be the one that actually detects the hardware’s ethernet ID.
So here’s my newest set of issues if you can shed any light on it.
1. What scripts/hacks do I need to be able to adjust brightness?
2. So when trying to do the audio switching by installing the Azalea audio items (first drivers, then the switching app), would it be better to put the Azalea drivers in the EFI partition or let it install into the leopard installation? I’d like to keep Leopard pretty vanilla (another term i learned in the past week and a half!).
3. Stuart, you said you got trackpad settings to operate. I fixed my Ethernet ID and I’ve never got the trackpad settings. Is this provided by the software from the chameleon folks? the voodoo software?
4. I can’t get MobileMe syncing to work! I can so far sync everything except calendars. Originally, I had problems syncing anything. I suspected this was because my Ethernet ID was the 00:11:22… and that my UID was messed up according to the MobileMe server. But after fixing it, the issue persists – calendars give an error while attempting to sync. Any ideas/solutions?
sakalli
3rd June 2009 @ 5:00 pm
are the 10.5.7 drivers published somewhere?