Revision as of 08:26, 11 March 2009
(!) Consult the QEMU documentation for a more complete list and explanation of these options.
Log in to target and run:
./qemu-system-ppcemb --enable-kvm \ -nographic \ -m 128 \ -M bamboo \ -kernel uImage.bamboo \ -L . \ -append "your guest kernel command line"
The location specified with -L must contain the
bamboo.dtb device tree file.
In the case that virtio is activated in the guest kernel, you can add virtio devices at the qemu command line.
Examples (nothing special for ppc):
This adds a virtio network device visible to the guest and the external network:
./qemu-system-ppcemb [...] -net nic,model=virtio -net tap
/!\ You must have CONFIG_VIRTIO_NET=y in your guest kernel .config.
/!\ You must have Qemu networking configured to use a
tap device. See Networking for details.
This adds a virtio disk device:
./qemu-system-ppcemb [...] -drive file=pathtoyourfile.img,if=virtio
The device appears as
/dev/vda in the guest.
/!\ You must have CONFIG_VIRTIO_BLK=y in your guest kernel .config.
no guest console
Specifying a console in the guest kernel parameters might let the guest output fail. If you think your output is missing try without any "console=" parameter
virtio net requirements
You will need to enable tap and bridge support in the host kernel.
You may also need to download and install bridge-utils (use
configure --host=i386-linux --target=ppc-linux and all other cross build stuff you need).
Usually embedded boards use a nfs root device, this may conflict with the need to ifdown the device you want to bridge, but you might use the second ethernet device in that case.
You need to edit /etc/qemu-ifup to your needs here is an example that creates bridge br0 on demand and uses eth1 as external device on that bridge:
#!/bin/bash bridge=br0 netdev=eth1 guestdev=$1 if [ ! -c /dev/net/tun ] then
echo "network init failed - /dev/net/tun does not exist" exit 1
fi echo "test for existing bridge $bridge" brctl showmacs $bridge if [ $? -eq 0 ] then echo "ok - bridge $bridge already available" else echo "need to create bridge $bridge" ifconfig $netdev down brctl addbr $bridge ifconfig $bridge up ifconfig $netdev up brctl addif $bridge $netdev echo "created bridge $bridge" brctl show fi ifconfig $guestdev up brctl addif $bridge $guestdev