用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
运行结果如下:
- 用Qemu模拟vexpress-a9 (二) --- 创建根文件系统
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境
- qemu模拟arm系统vexpress-a9—uboot+uImage
- QEMU模拟vexpress-a9 搭建Linux kernel运行环境
- QEMU之初始化——ARM vexpress-a9(一)
- 第二期 QEMU模拟vexpress-a9开发板 《虚拟机就是开发板》
- 第二期 QEMU模拟vexpress-a9开发板 《虚拟机就是开发板》
- 为vexpress制作根文件系统
- qemu模拟A9/A15运行Linux4.2.3
- 基于QEMU的ARM Cortex-A9开发板Vexpress-ca9的Linux内核的编译和运行
- 基于QEMU的ARM Cortex-A9开发板Vexpress-ca9的Linux内核的编译和运行
- 使用Qemu模拟Cortex-A9运行U-boot和Linux
- 使用Qemu模拟Cortex-A9运行U-boot和Linux
- 使用Qemu模拟Cortex-A9运行U-boot和Linux
- 在QEMU上用Busybox模拟ARM的文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- source insight 自动对齐设置
- 技术知识整理
- Android_仿爱奇艺Loading效果
- git简明教程
- cmd命令行简单的操作
- 用Qemu模拟vexpress-a9 (二) --- 创建根文件系统
- okhttp学习笔记--网络框架封装
- Android webview 快照及白屏闪屏解决方案
- HTML5创建 cache manifest缓存文件
- 树莓派3B创建WiFi热点
- c++ 虚函数内存浅析(一)
- 最长合成字符串
- 51nod-距离之和最小(中位数)
- 阻止冒泡方法