宿主机:Centos7(Kernel3.10.0)

交叉编译工具链:gcc-linaro-6.2.1-2016.11-i686_arm-linux-gnueabi
QEMU:2.0.0
Linux kernel:4.4.0
busybox:1.27.2

安装交叉编译链

https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/armeb-linux-gnueabi/gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi.tar.xz

解压:

tar –xvf gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi.tar.xz

安装:

mv gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi /usr/local/arm-linux-gnueabi

编辑/etc/profile,添加:PATH=$PATH:/usr/local/arm-linux-gnueabi/bin

安装qemu-system-arm

yum install –y qemu-system-arm

编译内核

git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

cd linux && git checkout v4.4

编译

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm menuconfig

编译成功后,arch/arm/boot目录下生成内核镜像文件zImage

制作根文件系统

https://busybox.net/downloads/busybox-1.27.2.tar.bz2

解压

tar –xvf busybox-1.27.2.tar.bz2

编译

cd busybox-1.27.2

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm menuconfig

出现图形界面,做如下配置(这一步是可选的,如果执行了就可以不用执行cp /usr/arm-linux-gnueabi/lib rootfs/这一步):

Busybox Settings --->

  Build Options --->

    [*] Build BusyBox as a static binary (no shared libs)

完成后,执行:

make CROSS_COMPILE=arm-linux-gnueabi-

完成后,执行:

make install

完成后,该目录下生成的_install中即是基本的busybox指令。

创建bash脚本,并运行(注意这里不能使用ext4格式,否则内核启动后文件系统是只读的,原因目前不清楚):

#!/bin/bash

##

# etc: https://download.csdn.net/download/hbuxiaofei/10588736

##

rm -rf rootfs

rm -rf tmpfs

rm -rf rootfs.ext3

mkdir rootfs

mkdir -p rootfs/proc/

mkdir -p rootfs/sys/

mkdir -p rootfs/tmp/

mkdir -p rootfs/root/

mkdir -p rootfs/var/

mkdir -p rootfs/mnt/

cp busybox-1.25.1/_install/* rootfs/ -arf

cp /usr/local/arm-linux-gnueabi/lib rootfs/ -arf

cp etc rootfs/ -arf

mkdir -p rootfs/dev/

mknod rootfs/dev/tty1 c 4 1

mknod rootfs/dev/tty2 c 4 2

mknod rootfs/dev/tty3 c 4 3

mknod rootfs/dev/tty4 c 4 4

mknod rootfs/dev/console c 5 1

mknod rootfs/dev/null c 1 3

dd if=/dev/zero of=rootfs.ext3 bs=1M count=64

mkfs.ext3 rootfs.ext3

mkdir -p tmpfs

mount -t ext3 rootfs.ext3 tmpfs/ -o loop

cp -r rootfs/* tmpfs/

umount tmpfs

QEMU模拟Cortex-A9,运行kernel、rootfs相关推荐

  1. QEMU模拟vexpress-a9 搭建Linux kernel运行环境

    众所周知,QEMU是一个可以模拟ARM架构的虚拟机,拥有高速.开源.跨平台.支持多种架构等优点.接下来,我们将使用QEMU模拟vexpress-a9,并在上面跑一个Linux kernel,为接下来的 ...

  2. QEMU 模拟Arm A9开发板

    一.在Deepin 中编译Qemu4, 1.下载Qemu4源码 wget https://download.qemu.org/qemu-4.0.0.tar.xz 2.解压缩 tar xvJf qemu ...

  3. 用QEMU模拟ARM开发板,搭建Linux kernel运行环境

    前言 有的时候我们想调试linux kernel或者linux应用程序,但是又没有硬件环境,这个时候可以选择用模拟器的方法,模拟出一个硬件环境. Android emulator Android系统的 ...

  4. 从0开始使用QEMU模拟ARM开发环境之脚本制作分区镜像(rootfs+zImage+dtb)

    文章目录 从0开始使用QEMU模拟ARM开发环境系列一览表 目录结构: 脚本介绍: 分区镜像制作脚本 qemu启动脚本 流程示例 从0开始使用QEMU模拟ARM开发环境系列一览表 文章中 u-boot ...

  5. 基于Qemu虚拟vexpress-a9开发板,实现完整系统启动(uboot+kernel+rootfs)

    关键词: U-boot, VersatilePB, ARM, Linux, Qemu, vexpress-a9 环境介绍: Win7 64 + Vmware 15 + ubuntu18.04 64 u ...

  6. 用QEMU模拟运行 WIndows 98 SE (2004.12.31更新)

    先来简单介绍一下吧,QEMU是一种遵守GPL许可证,快速的虚拟机软件.它通过动态翻译 机内地址来获得比较快速的模拟速度. QEMU有两种模拟方式: 1.完整的系统模拟:这种模式下,QEMU模拟一个完整 ...

  7. Ubuntu 16.04 利用qemu模拟ARM开发板

    QEMU目前可以模拟vexpress Cortex A9四核处理器开发板. 环境配置:Ubuntu 16.04,Kernel 4.4.1 内容参考了: http://blog.csdn.net/lin ...

  8. 从零使用qemu模拟器搭建arm运行环境

    原文链接: http://blog.csdn.net/linyt/article/details/42504975 为什么会有这篇文章 早在2011年的时候,跟当时同事一起讨论,做Linux系统开发正 ...

  9. 为 QEMU ARM 仿真器编译 Linux 内核:QEMU 模拟 ARM 环境

    QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛.简单来说,QEMU 是一个虚拟机,与常见的 Vm ...

最新文章

  1. 微服务“大门”如何选择?
  2. Eureka客户端使用IP注册preferIpAddress和ip-address的区别
  3. css截断长文本显示
  4. 多模块Maven工程单独打包某一模块工程
  5. 建模实训报告总结_数学建模实训报告
  6. 反射调用 java bean的set和get方法
  7. 基于模型的系统工程设计软件ModelCoder在航空发动机控制设计中的应用
  8. org.xml.sax.SAXParseException: The string -- is not permitted within comments.
  9. 电脑设置代理IP工具 可自动更新
  10. android 充电模式deamon_Android MarsDaemon实现进程及Service常驻
  11. Change Jenkins time zone
  12. 服装业需要什么样的信息化?
  13. 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
  14. 华为USG6000V防火墙学习
  15. android笔画输入法的字库,献给爱好笔画输入的机友们 速度才是王道之大众码新笔画输入法...
  16. IDEA汉化包插件无法下载解决办法
  17. 【Mybatis】TKMybatis 介绍和使用
  18. c#模拟看板控件_C#TIPTOP电子看板
  19. Teams Bot App 初探
  20. Flink学习之DataStream API(python版本)

热门文章

  1. OpenSIPS替代VOS3000的方案
  2. java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.login_jsp
  3. Linux时间子系统(二) 软件架构
  4. 《精通ArcGIS Server 应用与开发》——1.5 ArcGIS 10时态
  5. 静态类和非静态类的主要差别
  6. Android 编码规范:(七)避免使用终结方法
  7. atlas 又多了几个新控件
  8. 今天看到一篇小册子上的话
  9. 收藏贴 :2019年必备43种区块链开发工具
  10. 用python爬取知识星球