Okay, this is usually a little beyond the depth I'd go into on this site, but given that the window for buying/giving an XO laptop within the U.S. and Canada is closing December 31st, I think any attention I can help bring to this little wonder is worthwhile. And everyone else is busy interviewing Nicholas Negroponte, so I thought I'd try something a little different.
Now, that initial waiver out of the way, here's another: I don't actually have one of these little marvels (although if anyone wants to send me one, I'd be very happy to set my kids on it). This tutorial will be entirely theoretical, and will depend largely on how Windows-compatible the laptop actually is. Since most hardware was designed with Windows in mind, this shouldn't be much of an issue, right?
The very first thing we're going to need for this project is an SD card large enough to hold XP and your applications. About 4GB should be enough for basic functionality. Here in Canada, that goes for about $80 or so, but when the price drops to the right point, this may be feasible for the OLPC requirements.
How do you get XP onto a laptop that has no CD/DVD drive? External USB CD-ROM drive sounds about right: another $80 and we're off to the races (okay, I'm not trying very hard to find the best price, here; just trying to make a point).
Run your favourite virtualization software on the laptop (qemu is free and works fairly easily; VMware player is another option) and use the SD card as your hard drive.
Boot the CD in the virtual environment, with settings to match the actual hardware as closely as you can; pay particular attention to the ACPI, APIC and APM settings. A default install should get things going initially.
A long time after, you'll have an OS on an SD card. With the processing power of these guys, it may take a while to get the right configuration just to finish the install. When you've got the OS shoehorned in there, it's time to play with the bootloader: GRUB. Assuming you can set the unit to boot from SD, the unit should appear as one of the bootable hard drives in the BIOS. If so, add in a new stanza to your GRUB configuration to include:
title Windows XP
That should do it. Now, here are a few reasons why this will fail.
- Not all SD cards are created equally. Some cards will be recognized and boot without issue. Some won't. And then there are the ones that work sometimes and with specific configurations.
- XP booting from a "normal" PC using an SD card as the boot device is reportedly slow. So slow that boot times on this low-end PC would be intolerable, especially for a 6 year old.
- By running XP on these devices, things like remote control, mesh networking and the built-in sharing mechanisms would need to be entirely recreated and made to work with a product Microsoft is in the process of abandoning.
- XP would have to be made to work seamlessly with the existing Sugar interface to ensure interoperability with units running the default setup. While the open source nature of the operating system and applications provided on the XO laptop enable this, Microsoft would have to accept working with a true open source environment in order to make this happen.
- As noted above, the additional costs required to support this configuration from the user's perspective almost double the price of the laptop. And then you're probably going to want to bump up the RAM, too.
[Note: This piece was written well before Microsoft achieved shoehorning XP onto any XO laptops. It was written mostly to attract attention to the XO, which is still a fabulous little device that shows great promise for lowering the costs of computing in underdeveloped nations. I strongly believe XP on an XO laptop is a bad idea. As some of the comments point out, there are further reasons this particular method will not work; basically, Windows XP is not as flexible as Linux. The XO does not use LILO or GRUB and requires a custom Linux kernel to boot. I've seen Ubuntu booted from an SD card on an XO laptop, and it was quite a nice experience. Ordinary users can't just "recompile" XP to fit.]