If you are feeling a little too TL;DR for that, maybe you should skip this post, but since I'm such a nice guy I'm willing to cut you some slack and give you the skinny: The RasPi is soon-to-be a tiny, sub-$50 full-featured computer. It is possible thanks to mobile technology, specially a System-on-a-Chip (SoC) manufactured by Broadcom for use in smartphones. It has a kick-ass graphics processor (capable of running 1080p video, or Quake 3, without heating much above body temperature. Don't take my word for it, click play and enjoy the show):
Now you'll need to download OpenVPN, in order to create a network tap. You can go straight ahead and click here. During installation it creates a couple of TAP-Win32 Adapters, one of which you can dispose of. Go to Adapter Settings - here's where to find'em on Windows 7:
Tricky part: you'll need to know your gateway IP address, but I guess if you haven't given up on this tutorial already, you know your local network inside out. Set the IP manually to something within your subnet's range, but not used by any of your machines, as well as put your router's IP as gateway and DNS server. Here's a screenshot, just don't copy it, use your local values instead:
Once you hit OK and are back at the Network Connections windows, hold Control, select both the TAP adapter and the one you use to connect to the internet, right click'em and select Add to Bridge:
You'll get a new adapter type, a MAC Bridge Miniport. You don't need to rename it, but you might also need to manually set it's IP address, Gateway and DNS servers (your mileage with Windows' auto-config may vary). Just follow the steps for the TAP-Win32 adapter and you'll be fine. Okeydokey, network ready. Now you'll need to get acquainted with the Command Prompt. It sits here, inside your Accessories folder:
You can always just type CMD on the Start menu and hit Enter, and you'll get one of the little buggers (don't you love Windows 7?). Now navigate to the folder where you put your QEMU installations and run
where imagesize is the size of the disk you wish to create for your emulated device. It accepts the format number+suffix, as in 256M for 256 megabytes or 2G for gigabytes, etc. for some reason, my qemu-img refused to accept 8G as an argument, so I entered 8096M instead. Go figure (it seems crundy @ the RasPi forums had the same problem with 4G. I recommend you always use 1024M instead of 1G when trying to make gigabyte-sized disks). You now have a virtual hard-drive where you're gonna install Debian. To do it, you'll need two things: a kernel and an initrd. The kernel, as the name implies, is the core of the Linux operating system. The initrd is the initial ramdisk, a file containing information the kernel expects to find inside your computer's memory in order to find bootable devices, etc. When doing a networked install, the initrd contains the basic installer software, which will, in turn, download the rest of the Linux distribution from the internet. The latest stable Debian distribution for ARM can be found at http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/.Just point your browser there get initrd.gz and vmlinuz-2.6.32-5-versatile. Now you have your hard dirk image, kernel and initrd. Time to start having fun! (not). On your Command Prompt window, type
qemu-system-arm -L . -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.gz -hda hda.img -m 256 -M versatilepb -net nic -net tap,ifname=networkname -append "desktop=lxde"
where networkname is the name of your TAP-Win32 adapter (you DO remember it, don't you?) and -append "desktop=lxde" is optional. If you leave it out, you'll get the default Gnome desktop (assuming you install a desktop environment, a part we'll be getting into soon). Adding the desktop boot parameter allows you to choose an alternate desktop environment, in this case LXDE, the Lightweight X11 Desktop Environment, which, the RasPi team informs us, is what we'll probably get with their boot images. It does help tons (pun intended) to replace Gnome with LXDE when everything runs so damn slow (no one said emulation was easy). Once you hit enter, assuming you did everything right (be sure to have all required files in the same folder), you'll be greeted with a new window:
Soon you'll see the Debian installer window. Select your local language, keyboard layout, country etc. according to your geographical location and preferred settings. The options are mostly idiot-proof, so when in doubt, just let the installer guide you. Unless you really do use a Domain on Windows, keep that field blank. Your Workgroup won't work, even if that's what the installer recommends (thanks again, obarthelemy!). Once the software selection screen comes up, be sure to select whatever packets you believe you'll need (including a graphical desktop environment, unless you're comfortable enough with Linux to leave that out). Don't go hitting Enter like I did the first time, the key you use to select packets is the space bar (duh!).
@qemu-system-arm.exe -L . -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -k en-us -m 256 -M versatilepb -net nic -net tap,ifname=networkname -append "root=/dev/sda1"
where networkname is the name of your TAP-Win32 adapter (repeat myself much?). Now save it to the QEMU folder with the .BAT extension. To run the Virtual Machine, just double click the .BAT file and off we go. The system will boot mostly like the installer, but (depending on whether you installed a desktop environment) will go to a login screen (Gnome shown below). Type the name and password you've set up during installation and voilá! Linux on ARM!
Thanks go to Francisco Benitez's great tutorial for installing Debian on QEMU, which I've adapted for Windows and updated, and to Ken's tutorial on Windows networking for QEMU. This page wouldn't exist if it wasn't for these and other great resources I found online.








