1. 介绍QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。 简单的说,通过这个模拟器,对于做嵌入式的人来说,可以在pc仿真开发板的运行情况,不用每次都需要将程序下载到开发板,特别是调试驱动与编译内核这将节省大量的时间! 2.准备首先下载2440的qemu 为什么要下载qemu,直接在ubuntu上apt-get install不行吗? 不行!下载后的不带这个2440 首先在git上下载代码 git clone git://repo.or.cz/qemu/mini2440.git qemu 下载完成后开始编译配置
(其中--prefix=/usr/local/qemu/mini2440表示install的目录;make -j4表示4个目标同时构建,jobs=4,一般来说编译速度会更快些) 然后将bin路径添加到环境变量中方便使用qemu-system-arm 在这个目录中,有一个mini2440_start.sh的脚本 为了直接看到效果,这里直接采用韦东山老师的uboot,kernel和文件系统 关于文件系统,可以采用nfs文件系统进行相关的开发,十分的容易,以后介绍 3.flashimg所以目前的文件系统是在在这些基础上进行的。 接着,采用一个工具进行制作,这个工具的就是flashimg工具 flashimg的官方网站访问不进去了!!! 然后就只能使用github了。 git@github.com:cailiwei/flashimg.git 下载完成后就可以进行编译
将文件转移到这里面,然后开始制作 现在采用的是nandflash,所以先采用这种方式 #!bin/bash 如果要采用nor flash
4.写脚本又到了写脚本时间了 制作完成后,生成nand.bin 将生成的nand.bin转移到我们编译的2440的qemu之中 在这里面,我们最好不用自带的mini2440_start.sh 自己写一个start.sh qemu-ifdown #!/bin/sh qemu-ifup
5. nfs文件系统接下来开始搭建nfs方案了 sudo apt-get install nfs-kernel-server 之后修改/etc/exports
重启nfs sudo /etc/init.d/nfs-kernel-server restart 6. 启动编写好启动脚本后,直接运行
接着,输入nfs的启动参数 set bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.31.196:/home/bigmagic/work/fs_qtopia/,proto=tcp,nfsvers=3,nolock ip=192.168.31.195:192.168.31.196::255.255.255.0 console=ttySAC0,115200 然后保存参数
然后输入nboot nboot kernel 那么这个nboot命令是什么? nboot是uboot指令--将nand flash中的内容加载到sdram中,比如'nboot 0x30000000 0 0x60000\;bootm 0x30000000是拷到的sdram的地址,0是nand flash设备号,0x60000是内核在nand flash的地址。再通过bootm从0x30000000启动内核。 由于uImage的前64个字节是zImage的描述信息,所以do_nandboot能知道需要加载的kernel的size。 输入bootm开始启动内核! 打印下面的语句则成功 注意,这里的有一个地方就是文件系统 在fs_qtopia/etc/init.d/rcS
这里的ifconfig eth0 192.168.31.195需要改成开发板的ip地址 还需要修改一下串口 mknod -m 660 console c 5 1 7.测试刚进来就要校验触摸屏 启动完成后,输入
8. 总结这个qemu真的好用! 以后表示调试Linux都方便多了!再也不用下载程序到开发板这么麻烦了! |
|
来自: 西北望msm66g9f > 《编程》