用qemu通过nfs启动linux
假设开发机安装的是Fedora 9
1.设置网络-使qemu能使用开发机的网络
首先确认下开发机的内核时候配置了TUN
grep CONFIG_TUN= /boot/config-`uname -r`
正常的情况下是CONFIG_TUN=m或者=y
2.安装网络配置工具
yum install bridge-utils
3.配置网络
/usr/sbin/brctl addbr br0
/sbin/ifconfig eth0 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 eth0
/sbin/dhclient br0
/sbin/iptables -F FORWARD
4. Fedora 9 配置网络文件系统
假设网络文件系统的目录是/mnt/arm-nfs
在/etc/export内添加如下一条:
/mnt/arm-nfs/ *(rw,sync,no_root_squash)
启动网络文件系统服务
/sbin/service nfs restart
5.准备qemu启动用的脚本,将下面代码保存为qemu-ifup,设置执行模式chmod +x qemu-ifup
#!/bin/sh
/sbin/ifconfig $1 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 $1
6.内核配置
CONFIG_IP_PNP_DHCP=y
CONFIG_TUN=y
CONFIG_AEABI=y
CONFIG_TMPFS=y
7.启动qemu
qemu-system-arm -M YourMachine -kernel zImage root="/dev/nfs nfsroot=<host-ip>:/mnt/YourNFS rw ip=dhcp" \
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=./qemu-ifup