ubuntu18.04 qemu环境搭建【学习笔记】

一、准备工具  

1.1 安装相关工具    

sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential

1.2 下载kernel(linux-4.0)与busybox(1.24)源码

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

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

 

二、编译最小文件系统

2.1 解压busybox

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-make menuconfig   选中静态编译
|
Busybox Settings  ---> |[*] Build BusyBox as a static binary (no shared libs)make install cd _install
mkdir etc dev mnt
mkdir -p etc/init.d/
cd etc/init.d/vim rcS
mkdir -p /proc
mkdir -p /tmp
mkdir -p /sys
mkdir -p /mnt
/bin/mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -schmod a+x rcScd ..
vim fstab
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
debugfs /sys/kernel/debug defaults defaults 0 0vim inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -rcd ..
cd dev 
sudo mknod console c 5 1
sudo mknod null c 1 3

拷贝交叉工具链的库到根文件系统
cp /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/lib/*so* lib/ -d
cp /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/usr/lib/*so* usr/lib -d

生成ext3镜像文件并挂载
  sudo dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32 

mkfs.ext3 path/a9rootfs.ext3
mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs -o loop
sudo cp -r rootfs/*tmpfs
sudo umount tmpfs 

启动参数要添加-sd选项
进入系统执行mount -t ext3 /dev/mmcblk0 /mnt/

 2.2 linux编译配置

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfigmake menuconfig
General setup  ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support                                                              (_install) Initramfs source file(s) ()  Default kernel command stringKernel Features  ---> 
Memory split (3G/1G user/kernel split)  ---> 
(X) 3G/1G user/kernel split make bzImage -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make dtbs
启动qemu qemu
-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic

 

 

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/10787325.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

for else语句小tips : RUNOOB python练习题36

用来练手的python练习题,原题链接: python练习实例36 题干: 求100之内的素数 求某个范围内的素数,和之前的一个例题其实是一样的,上次的同类例题链接如下: python练习实例12 在实现题目要求时,这次用了for else语句&#xff0c…

Linux 下杀毒软件 clamav 的安装和使用

Linux 下杀毒软件 clamav 的安装和使用 安装依赖: 1 2 3 yum install -y pcre* zlib zlib-devel libssl-devel libssl yum install -y openssl yum install -y epel-release openssl version 0.9.8 or higher 1. yum 安装 clamav 安装后会自动生成服务文件&#…

列表,元组和range

内容大纲 列表的初识列表的索引切片列表的增删改查列表的嵌套元组的初识元组的简单应用range 昨日内容回顾以及作业讲解 int str boolstr 索引 s[x:y:z] 常用操作方法 upper lower startswith endswith split 分割:默认按照空格.将字符串分割成列表.可以知道分隔符 strip …

RUNOOB python练习题37 对一个序列的数进行排序

用来练手的Python练习题,原题链接: python练习实例37 题干: 对10个数进行排序 在我们使用Numpy模块时,这个问题是非常简单的,下面放出降序排列和升序排列的代码: 升序排列 import numpy as npresult np.zeros(10) for i in range(result…

Linux服务器不停的向外发包,且CPU持续100%

服务器不停的向外发包,且CPU持续100%,远程登录后查看发现有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串进程。删除文件也会重复生成,非常痛苦。查阅crond相关日志,发现实际执行的内…

逆向学习-IDApython(一)

背景 IDAPython 由三个分离的模块组成,他们分别是 idc,idautils 和 idaapi。 idc(注意大小写,不是 IDA 中的 IDC)是一个封装了 IDA 的 IDC 的兼容性模块,idautils 是 IDA 的高级实用功能模块,idaapi 允许了我们访问更加底层的数据。 基本操作 idc.Screen或者here()返回此时的地…

RUNOOB python练习题 39 数组排序

用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 这个题目用列表List的sort,append方法非常简单,如下: 想要升序排列的话,就直接…

IIS 部署asp.net Provisional headers are shown 在VS2005返回值,部署不返回值

IIS 部署asp.net Provisional headers are shown 在VS2005调试返回值,部署到IIS不返回值 首先当时为了跨域的问题,在上面 后来把跨域的内容放在IIS去解决 其次,在每次返回结束的时候,加一句话 Response.End();

背包

学习博客https://www.cnblogs.com/fengziwei/p/7750849.html //为了不误导初学者,和给老手diss的机会,我就把以前发的删了, 有兴趣的看看那个博客就行了 (明明写好了,却被老师关机子...不开心转载于:https://www.cnblo…

POSIX线程

POSIX线程 标签(空格分隔): Linux程序设计 什么是线程 线程是一个进程内部的一个控制序列。 当在进程中创建一个新线程时,新的执行线程将拥有自己的栈(因此也有自己的局部变量),但与它的创建者共…

RUNOOB python练习题44

用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3*3的全0矩阵,之后通过遍历将矩阵对应…

ImportError: No module named 'matplotlib'(python 安装各种 )

matplotlib 怎么弄啊 我应该是安装matplotlid了的 怎么还说我没有 编辑于:2017.03.22 12:28 0 分享 |评论0|收藏0|浏览7261 qq_37926784 声望: -4 3个回答 按赞数排序 用pip 也显示已经安装了matplotlib 编辑于:2018.03.26 19:43 分…

QBXT Day 5图论相关

图论是NOIP的一个非常重要的考点,换句话说,没有图论,NOIP的考纲就得少一大半(虽然很NOIP没有考纲) 图论这玩意吧,和数论一样是非常变态的东西,知识点又多又杂,但是好在一个事&#x…

RUNOOB python练习题47 交换两个变量值

用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C中的引用。那么在没有指针的python中如何构造一个可以交换两个变量值的函数呢&am…

tensorflow一元二次函数拟合

先看下要做的内容,创建一元二次函数yx平方-0.5,其中为了更符合散点图模拟需要,在方程加噪点,以标准方差0.05行驶,如图所示 折线图 散点图 下面我们要做的,是要计算机自动拟合出该散点图的函数&#xff0…

hibernate缓存机制与N+1问题

在项目中遇到的趣事 本文基于hibernate缓存机制与N1问题展开思考&#xff0c; 先介绍何为N1问题 再hibernate中用list()获得对象&#xff1a; 1 /**2 * 此时会发出一条sql&#xff0c;将30个学生全部查询出来3 */4 List<Student> …

lambda函数 RUNOOB python练习题49

用来练手的python练习题&#xff0c;原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法&#xff0c;本文就python中的lambda函数做出一点总结。 1. lambda函数的定义与调用 在python中&#xff0c;我们都知道使用def关键词来定义一个函数, 例如一个最简单的…

kubernetes(k8s)安装部署

Kubernetes是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署&#xff0c;规划&#xff0c;更新&#xff0c;维护的一种机制。 Kubernetes一个核心的特点就是能够自主…

react typescript 子组件调用父组件

//父组件 import * as React from reactimport { Input } from antdconst Search Input.Searchimport "./index.less"import Child from "./compon/list" interface IProps { MakeMoney?: () > void //暴露方法} export default class ProjectLis…

python random随机数 RUNOOB python练习题50

用来练手的python练习题&#xff0c;原题链接: python练习实例50、 该练习题主要包含了random模块随机数的应用&#xff0c;下面给出几个常用的模块内函数。 1. 生成浮点型随机小数 最简单的&#xff0c;就是用random函数&#xff0c;生成 [0.0,1.0)[0.0, 1.0)[0.0,1.0)范围…