用Qemu模拟vexpress-a9 (二) --- 创建根文件系统

来源:互联网 发布:windows应用商店误删 编辑:程序博客网 时间:2024/06/05 18:41

1.安装交叉编译工具链(此步骤在一已经完成)http://blog.csdn.net/qingtian12138/article/details/53609526

2. 安装qemu 模拟器(此步骤在一已经完成)http://blog.csdn.net/qingtian12138/article/details/53609526

3. 编译 arm架构内核

(1)下载内核

 为了节省下载时间,此步骤我直接将学长提供的Linux-3.16的内核拷贝到Ubuntu系统中。

(2)解压

 $ tar zcvf linux-3.16.tar.gz

 $ cd linux-3.16

(3)生成 vexpress-a9的 config 文件

 $make CROSS_COMPILE=arm-linux-gnueabi-  ARCH=arm O=./out_vexpress_3_16    vexpress_defconfig

 $make CROSS_COM

(4)执行内核配置

 $make CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm O=./out_vexpress_3_16   menuconfig

在出现的图形化界面中找到位于下表所示的项目,取消勾选,然后保存退出。

System Type   --->

                [ ] Enable the L2x0 outer cache controller

表一:menuconfig配置

效果如下图:


(5)编译

$makeCROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 zImage  -j2

执行完这条语句后,生成的内核镱像位于./out_vexpress_3_16/arch/arm/boot/zImage目录下。完成编译的截图如下:


(6)测试 qemu 能否正常启动    $ cp./out_vexpress_3_16/arch/arm/boot/zImage ~/qemu_linux

$ cd~/qemu_linux

$qemu-system-arm-M vexpress-a9 -m 512M –kernel  /home  zImage -nographic  -append  "console=ttyAMA0"

运行结果如下:


4.形成根目录结构

(1)下载并安装busybox

$ wgethttps://busybox.net/downloads/busybox-1.20.2.tar.bz2

$ makedefconfig

$ makeCROSS_COMPILE=arm-linux-gnueabi-

$ makeCROSS_COMPILE=arm-linux-gnueabi-  install

安装完成后,会在 busybox 目录下生成_install 目录,该目录下的程序就是单板运行所需要的命令。先在 Ubuntu 主机环境下,形成目录结构,里面存放的文件和目录与单板上运行所需要 的目录结构完全一样,然后再打包成镜像(在开发板看来就是 SD 卡),这个临时的目录结构 称为根目录

(2)创建 rootfs 目录(根目录),根文件系统内的文件全部放到这里

 $ sudo mkdir rootfs

(3)拷贝 busybox 命令到根目录下

 $sudo cp busybox-1.20.2/_install/* -r  rootfs/

(4)从工具链中拷贝运行库到 lib 目录下

 $ sudo mkdir rootfs/lib/

 $sudo cp -P /usr/arm-linux-gnueabi/lib/*rootfs/lib/

(5)创建4个tty端终设备

 $ sudo mkdir rootfs/dev/

 $ sudo mknod rootfs/dev/tty1  c 4  1

 $ sudo mknod rootfs/dev/tty2  c 4  2

 $ sudo mknod rootfs/dev/tty3   c 4  3

 $ sudo mknod rootfs/dev/tty4  c 4  4


5.制作根文件系统镜像

(1)生成 32M 大小的镜像

 $ dd if=/dev/zero of=a9rootfs.ext3  bs=1M  count=32

(2)格式化成 ext3 文件系统

 $ mkfs.ext3 a9rootfs.ext3

 执行结果如下:

(3)将文件拷贝到镜像中

$sudo mkdirtmpfs

$sudo mount  -t ext3  a9rootfs.ext3  tmpfs/ -o  loop

$cp  rootfs/* tmpfs/  -r

$sudo umounttmpfs

 

5.系统启动运行

  完成上述所有步骤之后,就可以启动 qemu 来模拟 vexpress 开发板了,命令参数如下:     

$qemu-system-arm -M vexpress-a9 -m 512M -kernel

/home/qemu_linux/linux-3.16/out_vexpress_3_16/arch/arm/boot/zImage(你的zImage路径)

-nographic  -append "root=/dev/mmcblk0 console=ttyAMA0" -sd a9rootfs.ext3

运行结果如下:



0 0
原创粉丝点击