- Spam protected email address for mailman archive
- Subversion to DVCS - Your mindset has to change as well
- DNMA92, ath9k and hostapd with Voyage Linux
- Slides for Open Source Developer talk at SFD
- Open Source Developer talk at Software Freedom Day 2009 HK
- Building compat-wireless drivers for 2.6.30
- leds-alix2 module in 2.6.30 kernel
- squashfs 4.0 on Debian Lenny and 2.6.30 kernel
- Upgrade Debian Etch Xen 3.0.2 to Lenny Xen 3.2
- Modrewriting viewcvs to viewvc in Apache2
Testing Voyage Experimental using QEMU
Recent days I have been developing the next Voyage Linux release which based on upcoming Debian Lenny. In my experience, the most consuming part in my development activities is testing for the distribution and Live CD. Previously, I tested the Live CD using VMWare on my Windows desktop. These days, I have migrated my testing activities to qemu instead. I write up this article to document what I have done for my later reference.
All of the commands I used here are similar when using kvm. You can read to my KVM Virtualization article for further details. In my development environment, I can't use kvm because I run Xen Dom0 kernel that would experience a hang with kvm when running both Dom0 and kvm modules together, qemu is my best option.
Install qemu first:# apt-get install qemuThen create a sparse disk image of 512MB. This disk image is for testing Live CD installation to hard disk. 512MB is enough for my testing.
# qemu-img create disk.img 512MB
In my example below, I will also use some scripts from KVM for networking. You can install it from etch backport.
Now, I am going to run my experimental Voyage by:
# qemu --hda ./disk.img -cdrom ./voyage-lenny.iso \
-m 128 -boot d \
-net nic -net tap,script=/etc/kvm/kvm-ifup -curses
Qemu sets disk.img as /dev/hda and voyage-lenny.iso as cdrom (/dev/hdc), and boot with 128MB memory, setup tap tunnel for networking and text mode console using ncurses. Specify "-boot d" option to boot from cdrom. The reason for booting text console is simple: To be compatible for remote desktop using NX. SDL does not work with my NX remote desktop.
Once it boot up and login with root and password voyage, I can start to carry out testing to make sure my changes has been applied, the packages are installed, etc. The final test will be installing Live CD content into /dev/hda:
# autoinstall.sh genericpc
This will create new partition /dev/hda1, format it and install the Live CD content to /dev/hda1 using genericpc profile. After the installation completes , the virtual machine will be rebooted. However, qemu is reboot with Live CD again since we supplied "-boot d" options in qemu. We need to kill qemu manually.
To start to boot from disk image, I need to specify "-boot c":
# qemu --hda ./disk.img -cdrom ./voyage-lenny.iso \
-m 128 -boot c \
-net nic -net tap,script=/etc/kvm/kvm-ifup -curses
This time, the boot from disk image will hang after IDE detection, I have to add "all_generic_ide" kernel parameter at grub boot prompt:
kernel /vmlinuz root=LABEL=ROOT_FS all_generic_ide
So, this would boot beautifully! I can enjoy my testing using qemu now.
As a side note, I planned to migrate my Xen DomU virtual machine to KVM after Debian Lenny is release. There are some factors affecting my decision:
- Debian Lenny will not provide kernel with Xen Dom0 support.
- XenSource had been acquired by Citrix, not a Linux company.
- Redhat bought quamnet, a technologist behind kvm, which means kvm will be the future for Redhat's virtualization technology


