iPhone Life magazine

Develop iPhone applications on your PC: Installing OS X on PC’s (and, particularly, the IBM Thinkpad T42p)


(Important note: as of 29/12/2008 22:16 CET, the inline images aren’t visible. My database provider is working on fixing the problem; hope it’ll very soon be fixed.)

A quick summary: in this tutorial, I explain how OS X, the operating system of Mac computers, can be installed on standard PC’s (that is, non-Macs) and elaborate on the latest hacks and developments in this regard. You’ll find the tutorial vastly useful if you in no way can’t afford to buy a genuine Mac but would really want to enjoy the goodies of OS X – the, (according to many) vastly superior GUI, stability, hackability, the Unix operating system it’s based on, compatibility with a lot of PC’s not being able to run Vista because of driver problems and, last but not least, the only way to program the iPhone.

Unfortunately, there are very few comprehensive step by step tutorials on the subject, let alone up-to-date ones explaining for example why and how you will want to change the kernel of well-known “hacked” OS X distributions, what drivers there are and how they should be installed, how you can enable SpeedStep on the CPU’s that support it, resulting in dramatically enhanced battery life etc.

Note that while my tutorial mostly discusses getting and installing the right drivers for the IBM Thinkpad T42p, most of the material are usable on all (for example, the advantages of the just-released Voodoo kernel and separately installing it) or at least a lot of (for example, the problems of the Intel 2200bg Wi-Fi driver) computers currently in use.

Not just a toy to play around or show off with: when WILL you need OS X?

Apple has never released the iPhone SDK, the free and excellent OS X + iPhone development environment for Windows – it only exists for OS X, the native operating system of Apple’s own computers.

There are two reasons for this: first, the iPhone SDK is huge. Porting it to Windows, debugging it etc. would have taken enormous time and effort. Second, and quite understandably, Apple wanted to take advantage of the huge popularity of the iPhone among (even would-be) developers and wanted to force them to purchase a genuine Apple computer for development. Given that Apple notebooks aren’t cheap (particularly not the higher-end Pro and Air models), this may result in having to spend at least 1500 bucks. Of course, desktop Apple models can be purchased for a lot less off eBay. I, however, wouldn’t purchase a desktop computer – completely switching to notebooks provides a lot of advantages I simply don’t want to give up, particularly not when I have two high-end Thinkpads with IPS UXGA screens, after which I find cheap and, therefore, the most common desktop TN (twisted nematic) monitors plain unacceptable (and the ones that use the same IPS technology – or, quality-wise, the very similar MVA or PVA - are almost as expensive as a second-hand high-end notebook already having an IPS screen). I think a lot of developers feel the same way.

Now that I had some time at Christmas, at last I had the chance to really look into the problem of installing (“hacking”) OS X onto Wintel (Windows + Intel) PC’s. I’ve downloaded tens of Gigabytes of different hacked OS X distributions from RapidShare (it isn’t free, but much faster than getting the same from Torrents; therefore, I happily paid for the Premium account and the additional 100 Gigabyte traffic), burned them all to DVD’s and tested them. Following is a very thorough report of what runs on my IBM ThinkPad t42p and what does not. First, a quick shot of running the iPhone SDK on my notebook, also showing my iPhone’s being connected to it and accessed via Xcode’s Organizer (click the image for the originally-sized image; sorry for the interference effects, which are pretty hard to avoid when taking photos of LCD screens – even FlexView ones):



Again, let me emphasize that the following report can not only be used by other Thinkpad T42p users, but also Thinkpad T4x and R5x ones (and, probably, the Thinkpad A3x / X3x / X4x ones as well) – folks that have an SSE2-compliant Pentium 4 Mobile (A3x / X3x series) or a Pentium M (also see, albeit they aren’t equal, “Centrino”) (T4x / R5x) processor. The reason for this is the largely similar hardware (mostly, peripherals, video “cards” etc.) shared by these models. Just an example: the third (waltsu’s) post HERE is about the Thinkpad T43 (with the most impprtant difference between it and the T42p being having switched to using DDR-2 RAM’s). However, the modules, patches it lists are exactly the same with the T42p.

Note that newer IBM / Lenovo Thinkpads (the T6x/Z6x/X6x series and the even newer Lenovo Thinkpad T500/T400/X200 models are all based on the SSE3-capable Core (2) Duo architecture, which makes it possible to run native OS X images with far less hacking than the previous, only SSE2-capable CPU generations. In this tutorial, I don’t devote any section to this – after all, the highly recommended “Voodoo” kernel is deployable on any kind of PC and doesn’t force you to use software-based SSE3 emulation if your CPU already supports it out of the box (OOB).

Also note that several people have reported success with running OS X under VMWare; see for example THIS and THIS. Note that the GenToo LiveCD it refers to no longer exists; use THIS instead (also see the official documentation HERE). I didn’t bother going the VMWare route: my notebook can only have 2 Gbyte of RAM, which means I would have run into some excessive disk swapping with more than a handful of windows opened. After all, booting into the other operating system only takes about a minute (if you hibernate Windows XP and fix the PCMCIA boot bug of OS X, that is) and, if I really want to run OS X and Windows at the same time, I just put my HP TC1100 tablet (or Thinkpad a31p) next to my t42p.

Getting OSx86

The official sticky thread at Insanely Mac is, while it does mention some sources, is pretty vague: it recommends Torrents, with the help of Pirate Bay or Demonoid. In this article, on the other hand, I also provide you with exact RapidShare URL’s so that you don’t end up having to torrent. Of course, if your DSL (home) or work bandwidth isn’t constrained (or using Torrents is plain forbidden at work – like at us), you may want to prefer Torrents as it’s free.

Most recommended: iDeneb 10.5.5

Currently (as of 12/29/2008), I recommend iDeneb v1.3, based on Leopard 10.5.5, the most. You can acquire it from for example HERE, HERE or HERE (Torrent links). On RapidShare, you can get it HERE and HERE (start at the bottom on the former and continue with all the z0r-iDeneb.v1.3.DVD.ISO.partXX.rar’s on the latter).

Burn it onto a DVD. Note that many recommend using only DVD+R discs and not DVD-R ones. In my practice, this has turned out not to be necessary: I’ve only used DVD-R discs (and, what is more, cheap Memorex ones, which, according to the latest tests conducted by Finnish computer mag Tietokone [see page 41 in issue 13/2008], are clearly worse than most other brand DVD’s.) I haven’t encountered any install-time problem because of this. I’ve installed each image several time (not only the above-mentioned iDeneb 10.5.5, but also the famous and, by some people [not me!], still recommended Kalyway 10.5.1 and 10.5.2) ones.)

Then, just boot from the DVD. Some people recommend for example disabling SpeedStep in the BIOS before doing so. Note that this is ONLY necessary if you plan to boot in from battery and only after installing the entire OS. If you can make sure you boot up using AC and only after booting up OS X you remove the charger (and switch to DC, that is, battery mode), you won’t need to disable this. Otherwise, do disable it; on the t42p, it’s under Config / Power / Intel Speedstep (R) Technology (just switch Enabled to Disabled). You can start the BIOS config utility by pressing F1 on the bootup screen.

Also note that some people recommend disabling all the other boot-up peripherals, including hard disks and so on. In my opinions, this wasn’t at all necessary; if you, on the other hand, really want to do this, feel free to remove the USB / network / HDD boot sources from the BIOS. (Note that, after installing OS X, you can restore them in one step, by just pressing the “1” button on the t42p – and probably on all other Thinkpads. No need to enable them one by one and make sure they’re in the original order.)

Also, if you own a Pentium CPU with two (or four, or eight) cores, you might want to disable them in either the BIOS or at the bootup command line with cpus=1. (Note that, for some chipsets like nForce, this seems to be fixed.)

After some bootup, you’ll see a menu at the top. Select Utilities / Disk Utility from there. You’ll see something like the following:


(screenshot source: Wiki)

Just make sure you select the partition you’d like to install OS X to (on the screenshot, it’s “Dingy”) and also make sure you select the “Mac OS Extended (Journaled)” format to format it to. If it’s already been formatted but you’d like to delete its current content (after, for example, a non-working OS X installation attempt), select the “Erase” tab instead and click Erase in the bottom right.

After selecting and formatting the target partition, press Continue twice until the Options button (in the bottom left) becomes active (clickable). It’s here that you will need to select the first kernel and some of the drivers. With the t42p, do the following:

From Audio, select AC'97 Audio:



From Chipset, select ICHx fixed:



From Kernel, select 9.2.0 SpeedStep (basically, you can select any of the first three as we’ll later change it to the superior and SpeedStep-capable Voodoo) and, from Network / Ethernet, AppleBC5751 (which is the same as Broadcom NetXtreme used in all T42+ models (R5x / R6x, T6x, Z6x etc.)):



Finally, from Fix, select ACPI-Fix and PowerManagement:



After this, press Done and Install. Disc checking will start; just click Skip as there’s no point in making it finish (it’s very long and, in my practice, very prone to reboots). After this very lengthy install process will start, which may reboot immediately after reaching about 40%. Don’t be afraid of this: the operating system will be installed just fine.

After the reboot, don’t boot from the DVD any more; that is, when you’re asked to boot from the DVD, don’t press any buttons but let the system boot in. Just fill in the registration form to create an account. You may use non-existing data as depicted in the following shot:



The initial account creation dialog displayed next will be based on the data you entered in the previous dialog; you can, of course, edit it:



Make sure you enter your password here. By default, you’ll only need it when accessing root functionality like installing kexts (more about them later), not at booting in.

After this, you can start enjoying OS X. If you’re a complete newbie, start with Finder (the leftmost icon at the bottom), which is pretty much the same as Explorer in Windows. Safari (the fourth icon) will already be familiar. Note that the traditional keyboard shortcuts like Ctrl-C, V, X or, in Safari, additional shortcuts like Ctrl-T (opening a new tab) will require you to use the Alt key instead of Ctrl. Note that you can easily change this; see THIS for more info.

Installing the latest kernel

While iDeneb v1.3 is a new distribution, it still doesn’t contain the latest developments like the latest Voodoo kernel on top of the already-installed iDeneb. It doesn’t change how the system fundamentally works and everything remains supported you’ve installed a driver for or the particular distribution (iDeneb in our case) supports. An example of the former is the PCMCIA support (see the dedicated section below) and USB hotplug of the latter (which doesn’t exist with, for example, Kalyway 10.5.2 out of the box - that is, without installing other drivers).

Installation

Download the kernel HERE (currently, you’ll want to click the Voodoo_Kernel_Release_1.0_Rev_A.dmg link on the right) and let it install. No manual copying is necessary, as opposed to how some older kernels needed to be installed. (If you do want to know what happens behind the scenes and what files are overwritten / renamed, check out THIS).

Advantages

While it does keep everything that worked in the older kernel, it adds a lot of goodies; for example, much faster SSE3 emulation for SSE2-only users (for example, Intel people with CPU’s prior to the Core (2) Duo or all the AMD folks) and somewhat better hard disk sleep support. With iDeneb, if you (or the system) puts the HDD into sleep (that is, powers it down), the system crashed after you press a button or move the mouse. With the Voodoo kernel, it will. Incidentally, should you want to stop OS X stopping the hard disk all the time, click the Battery icon or System Preferences, go to Energy Saver, click Show Details, and untick “Put the hard disk(s) to sleep when possible” checkbox – and, possibly, also raise Put the computer / displays to sleep.

Real (!) speedstep support is where the Voodoo kernel also shines at. While, under iDeneb's 9.2 kernel, there was no real speedstep (dynamically switching the CPU frequency and voltage depending on the load to heavily reduce battery consumption) support (on the t42p), with Voodoo, there already is. To make use of it, make sure you download Superhai’s speedstep kext from HERE and install it following the quick tutorial available HERE: that is, after clicking it (which, by default, will install it under /Users/your username/Downloads), issue the

sudo -s
chmod -R 755 GenericCPUPowerManagement.kext
chown -R root:wheel GenericCPUPowerManagement.kext


commands, and, then, kextload GenericCPUPowerManagement.kext. This will manually (not at bootup time) load the controller. Should you want to make it start automatically, either move it to /System/Library/Extensions as is explained HERE or HERE or, if you don’t want to do all this manually, just use the excellent Kext Helper. See THIS for more info on using the latter.

Superhai’s GenericCPUPowerManagement, after installing it, automatically starts working. I’ve double-checked this by spending some two hours of very thoroughly checking how much the battery charge level decreases with both GenericCPUPowerManagement disabled and enabled. With a 9-cell battery at wear level 15%, I got about 3:30 full battery life with it enabled and about 2:20 without it. Note that if you start it manually (without putting it in /System/Library/Extensions or using Kext Helper to install it) and, later, you kextunload it, it’ll still remain effective – only a complete system restart will get rid of its effects.

Also note that GenericCPUPowerManagement has two additional tools you won’t necessarily need: GenericCPUPowerManagement Application and GenericCPUPowerManagement Command Line Control. They are both available HERE. Make sure you download the (upper) “Leopard edition”, not the (lower) “Snow leopard edition”. Also note that, with Intel CPU’s, the former may display wrong clock rates, as is also explained the documentation.

Note that there is another Speedstep application, XNU-Speedstep, for OSx86. (Incidentally, there is a third one, the commercial CoolBook, but, according to some people, it doesn’t actually make the CPU use the built-in SpeedStep support, just varies its voltage). This, however, throws a Kernel Panic upon invoking it and, therefore, can’t be used – at least not on my t42p. It, however, is reported to work flawlessly on most Core (2) Duo CPU’s.

Installing the Intel Wi-Fi driver (here: for the 2200bg); problems

(Feel free to just skip this section if your Wi-Fi card / support isn’t Intel- but, for example, Atheros-based. If, on the other hand, you have an Intel PROSet/Wireless 2200-2915, 2100, 3945 or 4965, you’ll want to read this. You may also want to check out [How To] Solutions for Wireless Problems, A Compilation for a complete(?) list of all Wi-Fi cards ever used in Windows PC’s, should you have a rare one. The first post has an excellent list, with direct links to drivers and the dedicated discussion threads. As far as the latter are concerned, the Intel-specific one, that is, the one dedicated to, among other cards, the 2200gb, is HERE.)

You may remember, while configuring iDeneb before installing, we haven’t selected any wireless driver. The reason for this is that Intel Wi-Fi drivers have only recently been released for OSx86 and you need to manually install them.

To do this, just navigate HERE, on the iwidarwin project homepage and download the driver meant for your particular card. For example, if you have the 2200bg card (the most common one with the T4x-series Thinkpads), just download and install (keep it clicking) THIS file.

Some minor problems with the 2200gb driver

Right now, the Intel drivers are, generally, unable to use anything stronger than WEP. That is, if you use WPA or WPA-2 in your wireless network, either consider downgrading to WEP or get another, supported, generally non-Intel Wi-Fi card.

Also note that the 2200bg driver may need a restart the first time to greatly speed up scanning the available network (so that you can select the right one). Finally, it only seems to support 40-bit WEP (10-digit hexadecimal keys); not 128-bit ones (26-digit hexa). Whenever I tried to connect to 128-bit ones, it just wouldn’t connect. Also note that you’ll need to input WEP all the time you connect as the driver doesn’t seem to be able to remember them.

Finally, note that it’s only with the Wi-Fi card actually being connected to a network that you’ll be able to invoke Settings / Networks. In all the other cases (wireless card powered down or powered up but not connected), it’ll immediately crash.

Fixing the slow bootup problems; PCMCIA driver

You’ll notice right away how much time it takes OS X to load after powering up your PC. This, fortunately, can be very easily fixed by installing the PCMCIA driver PCCard.10.5.2.Beta2.pkg (linked from the second post HERE; requires free forum registration). This will also fix the slow bootup process of several (PCMCIA-equipped) other Thinkpad models – and, possibly, also others. (Read THIS thread for more info.)

Displaying the battery and recharge icon

By default, the battery icon is invisible. Fortunately, it can be very easily fixed by downloading THIS file (linked from HERE).

Do you have a non-XGA (1024*768) screen?

By default, OS X uses the XGA (1024*768) resolution and the resolution setter app in Settings doesn’t offer anything else. If you have a model with a higher screen resolution (like the SXGA+, WSXGA+, UXGA or WUXGA “professional” Thinkpad models), you will definitely want to read this section.

To fix this problem, just edit the file /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and insert the lines:

<key>Graphics Mode</key> <string>1600×1200x32</string>

in there, after the last block. Do NOT bother with SwitchResX recommended by some people – it won’t help.

Other sources of info

Hardware compatibility lists. Currently, the lists are a bit outdated: with 10.5.5 commonly used by the PC folks and the hacked 10.5.6 coming in early January, it’s still 10.5.2 that it has (albeit pretty expensive) info on. Regardless of it being a bit outdated, I’ve still found the information pretty invaluable: some of the additional info (for example, on the PC Card driver for the t42p) have turned out to be invaluable.

The Insanely Mac forums should be the first to check out, should you have any kind of question. There is literally loads of information in the forum – you’ll need a lot of patience reading it all. Note that the forum engine (IP.Board) is pretty incapable; for example, as opposed to vBulletin, it doesn’t at all allow for in-thread search for a given word. Say, there’s a 150-page-long thread like LAN and Wireless: Intel Wireless 2100, 2200bg, 2915bg, 3945abg, 4965a; then, you will either have to click all those 80 pages and run the search on every page or switch to the Print view (Options / Print this topic). The latter does list all the articles in one step; however, it uses a background color (dark gray) that makes reading off the screen almost impossible. In these cases, if your browser doesn’t allow for overriding the background color, just save the page to the local file system (for example, Ctrl-S in Opera, my favourite Web browser) in the MHT format (which is default with Opera, but not with Mozilla / Firefox or IE). Then, edit the file: search for “background: #777 url” (without the quotes) and just change #777 to #FFF and save the file. Then, just click the edited MHT file to be (re-)read by the browser; now, it’ll have a white background, making it fully possible to be read.

Note that, because of a bug, with very long threads like the just-linked Wi-Fi thread, only the first 299 posts will be displayed. I haven’t found a way of listing the rest – to read them, you’ll need to use the traditional, 20-posts-a-page interface.

Video driver links & compatibility – if you have the ATI Radeon 9600 (the one many T42+’s come with, including the t42p and, of course, excluding the models coming with Intel graphics), you won’t need to check this out.

SSE2 & 3 Retail Leo and Vanilla installs - Boot 132 on pre-Core !, It is possible to boot the retail Leo DVD on Intel SSE2 and above

Legality

Some people state that if you purchase a copy of OS X Leopard, you'll be a rightful user on a PC as well. Some people state the otherwise.
OS X Leopard isn’t expensive – it’s priced about the same as Windows XP or the cheaper variants of Vista; at Newegg, it’s $109.95. Please go and purchase it if you do plan to use OS X on your PC. And, of course, if you can afford it and/or you have place for another, genuine Mac, do get one - while, currently, most of the drivers already work, there're still problems with running OS X on PC (for example, on the T42p, the lack of real sleeping, the speedstep problems at startup in battery mode, the lack of video acceleration, the inability to use the vanilla [original] OS updates provided by Apple etc.) And, after all, the Macbook Air really rocks and turns a lot of heads.

Note that similar questions are discussed for example HERE (only read the comments, not the vastly outdated original tutorial!)

Want to master your iPhone and iPad? Sign up here to get our tip of the day delivered right to your inbox.
Email icon
Want more? Get our weekly newsletter:

Werner Ruotsalainen is an iOS and Java programming lecturer who is well-versed in programming, hacking, operating systems, and programming languages. Werner tries to generate unique articles on subjects not widely discussed. Some of his articles are highly technical and are intended for other programmers and coders.

Werner also is interested in photography and videography. He is a frequent contributor to not only mobile and computing publications, but also photo and video forums. He loves swimming, skiing, going to the gym, and using his iPads. English is one of several languages he speaks.