linux实验——使用qemu模拟器搭建arm运行环境

使用 qemu 模拟器搭建 arm 运行环境(一) 一.流程 (1)安装交叉编译工具链 (2)安装 qemu 模拟器 (3)编译 arm 架构 u-boot (4)用 u-boot 测试 qemu 是否正常启动 二.原理 qemu 是一个在 linux 上广泛使用的可以模拟 ARM 的模拟器。在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是 16 到 32MB,... 阅读详情

目录

文章目录


**我的环境:**

  • VMware
  • Ubantu14.04 64位
  • Linux内核 4.4.0-137-generic

步骤

  1. 下载Linux内核
    因为内核版本过高,影响后面搭建,下载linux-3.16的内核
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

在主文件夹里

  1. 安装arm的交叉编译工具链
sudo apt-get install gcc-arm-linux-gnueabi
  1. 编译Linux内核
    先把下载的 linux-3.16.tar.xz 解压,得到 linux-3.16 的文件夹。
    终端打开这个目录,然后执行:
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16  vexpress_defconfig

接着执行:

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

会出来一个图形界面,将其中的
System Type —>
[*] Enable the L2x0 outer cache controller 中的 “ * ”去掉
然后编译:

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 zImage -j2

这个需要编译很久
生成的内核镜像位于 linux-3.16/out_vexpress_3_16/arch/arm/boot/zImage , 后续qemu启动时需要使用该镜像。
6. 下载安装qemu模拟器

git clone git://git.qemu-project.org/qemu.git
cd qemu
git checkout remotes/origin/stable-2.4 -b stable-2.4

安装之前要下载一系列安装包

sudo apt-get install zlib1g-dev

sudo apt-get install libglib2.0-0

sudo apt-get install libglib2.0-dev

sudo apt-get install libtool

sudo apt-get install libsdl1.2-dev 

sudo apt-get install autoconf

另外缺少什么可以根据提示安装

配置qemu,支持模拟arm架构下的所有单板,我为了使qemu的代码干净一些,采用如下方式编译,最后生成的中间文件都在build下

mkdir build
cd build
../qemu/configure --target-list=arm-softmmu --audio-drv-list=

(这一步好像是在qemu文件夹执行的)

编译和安装

make
make install

查看qemu支持哪些板子

qemu-system-arm -M help
  1. 测试qemu和内核能否运行成功
    这一步要到主目录下执行(我之前在其他都不行)
qemu-system-arm \
    -M vexpress-a9 \
    -m 512M \
    -kernel linux-3.16/out_vexpress_3_16/arch/arm/boot/zImage \
    -nographic \
    -append "console=ttyAMA0"

注意 /linux-3.16/out_vexpress_3_16/arch/arm/boot/zImage 这个目录

结果为下面就说明成功了
在这里插入图片描述

u-boot环境搭建

我直接在windows本机官网http://ftp.denx.de/pub/u-boot/下载的
在这里插入图片描述
然后移到ubantu主文件夹,然后解压

tar jxvf u-boot-2016.09.tar.bz2

得到文件夹u-boot-2016.09

cd u-boot-2016.09

配置,编译:

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

qemu中u-boot启动:

qemu-system-arm -M vexpress-a9 \
     -kernel u-boot \
     -nographic \
     -m 512M

得到结果:

U-Boot 2016.09 (Dec 21 2018 - 20:20:00 +0800)

DRAM:  512 MiB
WARNING: Caches not enabled
Flash: 128 MiB
MMC:   MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   smc911x-0
Hit any key to stop autoboot:  0 

9.制作根文件系统

  1. 下载、编译和安装busybox
    下载地址:https://busybox.net/downloads/
    我用的是 wget https://busybox.net/downloads/busybox-1.20.2.tar.bz2
    然后解压,在busybox-1.20.2文件夹中打开终端
    执行make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-

报错,如图
在这里插入图片描述
解决方法:BusyBox源码的include目录下/libbb.h 文件添加一行引用 #include <sys/resource.h>
保存后再次编译,成功
2. 形成根文件目录

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

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

mkdir -p rootfs/{dev,etc/init.d,lib}

ii.拷贝busybox命令到根目录下

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

iii.从工具链中拷贝运行库到lib目录下

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

iiii.创建4个tty端终设备

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

3.制作根文件系统镜像
生成32M大小的镜像

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

格式化成ext3文件系统

mkfs.ext3 a9rootfs.ext3

将文件拷贝到镜像中

将文件拷贝到镜像中

系统启动运行

 qemu-system-arm     -M vexpress-a9     -m 512M     -kernel linux-3.16/out_vexpress_3_16/arch/arm/boot/zImage     -nographic     -append "root=/dev/mmcblk0  console=ttyAMA0"     -sd a9rootfs.ext3

这里目录要是自己的,查看文件夹里。注意这里我的 a9rootfs.ext3这个文件直接在主文件夹。(很容易出错)

嵌入式开发板模拟器:QEMU 前两天看微信公众号时发现了一个嵌入式模拟器,感觉很不错,自己动手安装了一个,过程记录如下 模拟器大家应该都听说过,有的小伙伴打游戏也会安装模拟器,今天我们介绍的主角QMEU就是一个可以用在嵌入式的模拟器,如果你想学习嵌入式,但身边没有开发板,这时候你可以尝试使用它来模拟Linux内核的启动,当然它还可以模拟ARM、MIPS等各种CPU架构,本文主要介绍模拟ARM的启动流程 (一)环境介绍 虚拟机:VMware Ubuntu 16.04LTS (一)安装QEMU ... 阅读详情

相关推荐

Qemu模拟ARM64使用GDB调试linux kernel

大家在学习linux kernel时,需要购买硬件开发板,这是一笔不少的投入,今天就介绍大家如何使用模拟器来模拟ARM硬件,并且使用GDB来调试linux kernel。

wowo的专栏 4429

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

QEMU ARM kernel

Neil驱动的博客 3657

用Qemu模拟ARM

用Qemu模拟ARM(1) 前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。 1. Hello, Qemu! 输入下面的代码: hello.c - hello.c #include int main() { printf("Hello, Qemu!\n"); return 0; } 编译并

tycoon的专栏 6800

Linux 之搭建 arm 的 qemu 模拟器

Linux 之搭建 arm 的 qemu 模拟器

云满笔记 1501

Windows平台使用QEMU搭建ARM+Linux开发环境

随着我们对系统的频繁操作我们发现系统镜像文件在不断增大,此时想要回到原来的状态,只能重新下载镜像安装了,如果你不想遭受重新下载的痛苦,那么建议你使用备份镜像的模式进行系统的安装。连接成功了,通过以上这种方式,我们只需要将模拟器启动使其后台运行,我们通过ssh进行登录连接,这样速度快了很多,而且相比一些安卓模拟器,QEMU占用系统资源也不高。连接不上, 如果你也出现同样的问题,可以采用端口映射的办法来替代,方法很简单,只需要在模拟器启动时多追加加上一行参数。开始监听端口, 但是问题来了,该模拟器的。

lingshengxiyou的博客 1798

使用QEMU模拟搭建ARM开发平台

使用QEMU模拟搭建ARM开发平台(一):交叉编译Linux内核 tags: qemu 安装需要的包,我的主机环境是debian squeeze/x86_64,首先需要安装交叉编译工具链,安装qemu模拟器,下载linux内核。 安装交叉编译工具链 将下列源添加到/etc/apt/sources.list或在/etc/apt/sources.list.d/目录下新建一个

tycoon的专栏 2960

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

本文从零开始介绍如何搭建qemu+arm的运行环境

海枫的专栏 8万+

手把手教你搭建ARM64 QEMU环境

etc/profile文件是全局的shell配置文件,简单的讲就是登陆shell前的配置文件,主要是设置环境变量路径,设置主机用户名,创建设备节点。

weixin_44458100的博客 2418

qemu图形界面linux,QEMU 简单几步搭建一个虚拟的ARM开发板

1.安装QEMU先在Ubuntu中安装QEMUsudo apt-get install qemu1安装几个QEMU需要的软件包:sudo apt-get install zlib1g-devsudo apt-get install libglib2.0-0sudo apt-get install libglib2.0-dev123安装完后在shell输入 qemu 按tab键如果出现自动补齐就证明...

weixin_31421625的博客 3068

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2979

PCIe中ACS知识小记

虚拟机内部的访问数据显而易见是带的GPA地址。而目前几乎所有的PCIe 设备都带ACS control,所以它们可以单独assign给不同的VM,但是随之而来的就是即使两个GPU同时assign给同一个VM,由于ACS的存在,他们之间也不会有真正的物理层面的P2P访问。每一个TLP都自带一个address(寻址类TLP),同时每一个endpoint,PCIe switch都自带一段BIOS配置的地址空间范围,一旦这个TLP的address落入某个设备的地址范围,那么这个TLP就属于这个设备并消费。

Summer的博客 5078

QEMU虚拟机运行银河麒麟操作系统(ARM架构CPU)

在win7命令窗口中运行以下命令来创建镜像文件。在win7命令窗口中运行以下命令来安装镜像文件。在win7命令窗口中运行以下命令来启动镜像文件。

GAORUI_GAO的博客 2320

四自由度机械臂Matlab仿真全流程:从DH参数建模到轨迹规划实战

本文详细介绍了四自由度机械臂在Matlab中的完整仿真流程,从DH参数建模到轨迹规划实战。通过Robotics Toolbox工具,读者可以学习如何构建机械臂模型、验证运动学特性,并实现平滑的轨迹规划。文章还提供了性能优化技巧和常见问题解决方案,帮助开发者高效完成机械臂仿真项目。

weixin_29061041的博客 238

搭建qemu运行arm64 Linux环境

修改完mk_initrd.sh 脚本后,我们先创建一个make_initrd目录,并把 mk_initrd.sh 脚本拷贝到该目录下,由于在ubuntu下做mount和umount操作需要sudo权限,所以在执行mk_initrd.sh脚本前需要先在终端进入sudo权限,然后再执行该 mk_initrd.sh 脚本生成initrd.ext4镜像,命令和日志如下:​​​​​​​。然后通过qemu.sh脚本来让模拟器运行linux内核,对应的命令和日志如下:​​​​​​​。

linux_research的博客 3830

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

zephyr_wang的博客 1万+

WPT无线电能传输公式推导、编程计算、仿真验证全过程

主要分为5大模块,分别为无补偿,SS,SP,PP,PS,每个模块对应有公式推导,matlab编程计算相关参数以及将计算参数和仿真验证观察是否对应。采用matlab编程计算参数以及simulink仿真验证

zzhao2580的博客 7756

再续【从零使用qemu模拟器搭建arm运行环境】

动机 我在2015年编写博文《从零使用qemu模拟器搭建arm运行环境》介绍在 Ubuntu 14.04系统如何一步步构造arm+qemu的运行环境。该文的主要问题是读者有运行环境不一定是Ubuntu 14.04,会遇到不少的软件包安装和编译错误问题,我也没有办法构造复现。另一方面,当前再次构造这个环境时,也会遇到类似的问题需要处理,特别是换成Centos发行版之后,处理起来更复杂。 既然每位朋友的发行版都不一样,那可以使用Docker统一构建环境,这是本项目的主要动机,使用Docker基于Ubuntu14

海枫的专栏 4050

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号-并联端接

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑并且进行并联端接,以下图为例,准备好发送接收端的IBIS模型, (se_example.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(W1_welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 374

用QEMU搭建arm开发环境之一:QEMU能干啥

故事开始,巧妇难为无米之炊 小朱一上班就急忙来找大鹏,"鹏哥,硬件开发告诉我因为有一部分物料还没按期交付,所以两周后才能拿到开发版.这样下去一定会影响我们软件组的嵌入式QT软件的开发进度的,我们怎么办呀?",大鹏听了微微一笑,"你做安卓开发的时候,没有手机是怎么开发的?",小朱回答:"Android Studio自带模拟器啊?哦,你是说我们也可以用模拟器开发?我们能用什么模拟器呢?""大名鼎鼎的QEMU就可以,实际上安卓开发的模拟器也是基于QEMU的,我们去会议室,我来讲下这个模拟器." QEM..

Android Scanner 的空间 2702

有效Dk值提取方法的仿真分析

通过本文的仿真对比分析,提取有效Dk值方面,TDR技术在一些固定的场景下,依然有其参考应用价值,而随着VNA功能的不断增强和高精度测量手段的不断更新,双端口Delta-L技术才是主流评估方法,而单端口Delta-L技术则可以作为其降本增效的方案补充。

一只豌豆象的博客 1827

75、CAN总线收发器共模范围扩展与抗干扰芯片选型

摘要:本文探讨了CAN总线收发器共模范围扩展与抗干扰芯片选型的关键问题。作者通过风电场的实际案例,指出共模电压超标会导致总线故障甚至芯片损坏。文章分析了不同芯片(如SN65HVD1050、TJA1043等)的共模范围特性,并提供了电路设计建议,包括正确使用共模扼流圈和终端电阻。最后强调选型时要结合实际工况,在共模范围、功耗、速度和成本之间取得平衡,普通工业现场建议选择正负36V共模范围的芯片。

2401_88858637的博客 53

QEMU启动ARM64 Linux内核

本文介绍采用 qemu 模拟ARM-64bit开发板,并启动ARM64 Linux内核。

许振坪的专栏 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

使用QEMU搭建ARM64实验环境

1.开场白环境:处理器架构:arm64内核源码:linux-5.9.2ubuntu版本:20.04.1代码阅读工具:vim+ctags+cscope对于Linux爱好者,你是否也有这样的困...

Peter的专栏 2836

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用Ubuntu+qemu模拟器搭建arm运行环境

我的环境: VMware Ubantu8.2-19ubuntu1 Linux内核 3.13.0-32-generic 1.下载Linux内核 wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz 2.安装arm的交叉编译工具链 sudo apt-get install gcc-arm-linux-gnueabi 3....

qq_34471936的博客 1628

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用QEMU在Windows系统下搭建Arm架构的linux环境

QEMU(Quick Emulator)是一个开源的机器模拟器和虚拟化器。它能够模拟不同的处理器架构,允许用户在单一的主机上运行其他架构的操作系统和软件。跨平台:QEMU可以在多种操作系统上运行,包括Linux、Windows和macOS。多架构支持:QEMU支持多种处理器架构,如x86、ARM、MIPS、PowerPC等。硬件模拟:QEMU模拟了各种硬件设备,包括CPU、内存、硬盘、网络接口等。虚拟化:QEMU提供了全虚拟化和硬件辅助虚拟化(如KVM)的支持。快照和迁移。

mapgis1314520的博客 2127
下一篇: (深度学习)利用Python从视频中提取每秒图片
宁采晨
博客等级 码龄10年 25粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值