qemu integrator linux 2.6.36 nfs
来源:互联网 发布:最小生成树的prim算法 编辑:程序博客网 时间:2024/05/17 01:05
这一段时间在研究在PC上跑arm模拟器,为了调试linux内核。也看了linux的UML模式,很不好用。认识qemu实在android的模拟器上,很方便。找到qemu的主页。本文关于交叉编译的部分都是ARCH=arm CROSS-COMPILE=arm-none-linux-gnueabi- 关于eabi就是2进制的嵌入式优化(EABI embedded application binary interface)。
ubuntu有qemu,先安装apt-get install qemu qemu-kvm qemu-common
但是版本太低了,自己编译支持arm的版本覆盖安装。
1,下载最新版的qemu-0.13.0.tar.gz 和arm的测试例子arm-test-0.2.tar.gz
编译qemu
#./configure --prefix=/usr --target-list=arm-softmmu,arm-linux-user
#make
#make install
测试官方提同的例子
#qemu-system-arm -kernel zImage.integrator -initrd arm_root.img
在终端的文本模式
#qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -nographic -append "console=ttyAMA0"
因为支持qemu-kvm 速度很快。不过是linux是2.6.17。
用qemu测试最新的linux
2,下载支持arm的linux git://linux-arm.org/linux-2.6-stable.git
编译内核
把zImage.integrator里config解压出来 (arm-test-0.2.tar.gz里面有说明)
#make integrator_defconfig
#make menuconfig
去掉 CONFIG_BLK_DEV_INITRD 支持为了调试方便用nfs根文件系统
CONFIG_TUN=y 为了支持qemu的nfs文件启动
#make
下载最新的busybox-1.18.2.tar.bz2
#make
#make menuconfig #把静态编译选上。
#make install
在把_install文件夹拷出改名 busybox_install
添加 etc proc 等等文件夹 做成根文件系统 (查找网上的如何从busybox生成根文件系统)
3,使qemu和主机ubuntu可以网络通信,可以用nfs根文件系统
测试主机ubuntu支不支持 TUN 网络
#grep CONFIG_TUN= /boot/config-`uname -r`
如果 CONFIG_TUN=m
#modprobe tun
或者 CONFIG_TUN=y
#mkdir /dev/net/
#mknod /dev/net/tun c 10 200
在当前目录生成可执行文件 integrator-ifup
ifconfig tap0 10.0.2.2 broadcast 10.0.2.255 netmask 255.255.255.0 promisc up
现在可以用qemu官方测试版来测试下网络了。
#qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -net nic -net tap,script=integrator-ifup 来测试网络
多加的命令就是在ubuntu主机上生成一个名字是tap0的虚拟网卡,可以让qemu通过这个网卡来访问主机。
当qemu执行的时候在主机ubuntu上
#ifconfig
可以看到除了eth0 还有一个网卡tap0
进入qemu的界面 配置qemu上linux内核 zImage.integrator 的网络地址
#ifconfig eth0 10.0.2.15 broadcast 10.0.2.255 netmask 255.255.255.0
测试和主机的网络连接
#ping 10.0.2.2
5, 在ubuntu上打开nfs服务,
在/etc/hosts.allow加上
nfsd:10.0.2.
portmap:10.0.2.
mountd:10.0.2.
lockd:10.0.2.
statd:10.0.2.
rquotad:10.0.2.
在/etc/exports加上
/srv/qemu/integrator/busybox_install 10.0.2.*(rw,no_root_squash,subtree_check,async)
4,在qemu上跑2.6.36内核和nfs根文件系统
#qemu-system-arm -kernel /srv/qemu/integrator/linux-2.6.36-nfs/arch/arm/boot/zImage -net nic -net tap,script=integrator-ifup -append root="/dev/nfs nfsroot=10.0.2.2:/srv/qemu/integrator/busybox_install rw ip=10.0.2.15:10.0.2.2:10.0.2.1:255.255.255.0"
/srv/qemu/integrator/linux-2.6.36-nfs/arch/arm/boot/zImage 是内核
/srv/qemu/integrator/busybox_install 是根文件系统
10.0.2.2 是主机ip地址
10.0.2.15 是从机ip地址
- qemu integrator linux 2.6.36 nfs
- Qemu虚拟机中挂载NFS
- ARM64 Linux kernel + busybox rootFS via NFS over QEMU with GDB
- qemu下用nfs模拟arm
- LINUX--NFS
- Linux NFS
- linux nfs
- linux nfs
- linux nfs
- linux nfs
- LINUX NFS
- Linux NFS
- Linux-NFS
- Linux NFS
- linux nfs
- Linux NFS
- qemu调试 linux-kernel
- qemu中跑linux
- (原来是这样的啊!)角谷静夫不动点(Kakutani fixed point theorem)----资料整理
- oledbparameter绑定问题 ORA-01008: not all variables bound.
- wince下USB设备驱动程序导读
- WinCE USB驱动开发
- linux mutex 操作 线程数据保护
- qemu integrator linux 2.6.36 nfs
- oracle和sqlserver互訪!
- 【转】JavaScript初学者应注意的七个细节
- winform子窗体中,Application.Exit()不起作用的解决方法。
- 暴雪CG教程
- ilearn学习笔记
- Vs2008 安装后当切换到图形设计界面的时候自动弹出 ”正在准备安装的提示“,然后程序处于假死状态
- JTable显示和隐藏列的方法(自定义公用类)
- Google Protocol Buffer 用法