【背景】
手上有一个嵌入式Linux的项目。
已经用交叉编译器arm-xscale-linux-gnueabi去编译了Uboot和kernel:
且已经有了对应的rootfs了,所以算是基本齐全了。
后来得知有个QEMU,和SkyEye类似,可以模拟arm开发板。
所以,尝试去试试,能否在Ubuntu下,用QEMU去模拟加载并运行Uboot,kernel,rootfs。
【折腾过程】
1.再去看看关于QEMU的介绍资料:
2.其下载页面:
下载QEMU:
解压得到源码:
3.参考官网的文档:
中的:
去折腾。
4.先去在Ubuntu的Host上为arm平台安装QEMU:
5.然后再去下载测试软件:
然后解压:
6.再去测试,结果只输出一行VNC:
解决后,可以看到QEMU的arm的linux界面了:
7.再去测试测试arm的hello world是否可用。
先写个hello_qemu.c:
再去用自己的交叉编译器arm-xscale-linux-gnueabi去编译:
然后去运行试试:
先去找到sysroot的路径,是参考之前的折腾:
的路径:
/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include
所以sysroot,应该是:
/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot
所以去试试:
说明交叉工具链是正常的。
8.再去折腾uboot:
9.然后再去下载编译kernel:
10.然后再去弄Open TFTP Server:
11.然后再去折腾qemu-ifup & qemu-ifdown:
12.都准备好了,就可以去启动内核了:
13.折腾完毕内核,就可以去弄rootfs了:
【总结】
此处,已经可以正常运行,一个基于busybox的,从ram启动的rootfs了。
至此,算是基本可用了。
有空再折腾,如何从uboot启动内核,从nfs加载rootfs等等内容。