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 -s chmod a+x rcS cd ..
vim fstab
proc /proc proc defaults
tmpfs /tmp tmpfs defaults
sysfs /sys sysfs defaults
tmpfs /dev tmpfs defaults
debugfs /sys/kernel/debug defaults defaults vim inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r cd ..
cd dev
sudo mknod console c
sudo mknod null c 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_defconfig make menuconfig
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
(_install) Initramfs source file(s) () Default kernel command string Kernel 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 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
ubuntu18.04 qemu环境搭建【学习笔记】的更多相关文章
- redis环境搭建学习笔记
学习环境为windows.java环境 一.学习教程: 1.菜鸟教程:http://www.runoob.com/redis/redis-tutorial.html 2.redis中文网:http:/ ...
- ubuntu18.04微信小程序学习笔记
安装微信小程序开发工具 安装 https://github.com/cytle/wechat_web_devtools 创建快捷方式 sudo nautilus //在/usr/share/appli ...
- Ubuntu18.04下配置深度学习开发环境
在Ubuntu18.04下配置深度学习/机器学习开发环境 1.下载并安装Anaconda 下载地址:https://www.anaconda.com/distribution/#linux 安装步骤: ...
- Ubuntu下qemu环境搭建vexpress开发平台
在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好. 接下来说一下qemu环境搭建过程. 其实搭建很简单,作为小白,我还是捣鼓了两三 ...
- Ubuntu下qemu环境搭建
在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好. 接下来说一下qemu环境搭建过程. 其实搭建很简单,作为小白,我还是捣鼓了两三 ...
- Ubuntu 16.04 Go环境搭建 Go环境+Sublime配置
Ubuntu 16.04 Go环境搭建 Go环境+Sublime配置 1. 安装Go 下载地址https://golang.org/dl/ (需要翻下) 下载到类似go1.8.3.linux-amd6 ...
- Ubuntu16.04 lnmp 环境搭建
Ubuntu16.04 lnmp 环境搭建 nginx 安装 sudo apt-add-repository ppa:nginx/stablesudo apt-add-repository ppa:o ...
- 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记
Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...
- STM32环境搭建/学习观点/自学方法 入门必看
文章转自armfly开发板V4软件开发手册,分享学习~ 今天有幸看到armfly的开发板软件开发手册,开头的基础知识,真的很有用,还好有看到,一切都不迟,感悟很多,摘抄部分,学习分享~ 关于开发环境的 ...
随机推荐
- gitlab(7.9)升级到8.0.1
1.gitlab8.0更新说明 GitLab 8.0 现在完全集成了持续集成工具 (GitLab CI) ,此外还完全重写了 UI,节省了至少 50% 的磁盘空间.更快的合并,内置持续集成(CI)到 ...
- 转载-企业环境下MySQL5.5调优
转载-企业环境下MySQL5.5调优 参照 腾讯云 和ucloud my.cnf 以及网上找的资料 整理出来的 my.cnf , 以后修改任何参数都会继续更新,目前是在测试阶段; 物理机 : ubun ...
- mysql字典取值,列表包含
SELECT * FROM e where JSON_CONTAINS(json_extract(scope_detail, '$.shop'), '001');
- 一个自己编写的简单AC自动机代码-----AC automata get √
最近一直在优化项目中字符串匹配的问题,于是就想起了自动机,之前也看过一些文章,一直没有实现,现在项目中要用,然后又看了一些关于AC自动机的文章,这里实现了一个简单的AC自动机的小接口,我是实现自动机状 ...
- ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)
我们知道在由于大端机和小端机导致网络字节序和主机序有可能是有差异的,我们可以使用系统的ntohs,ntohl,htons和htonl这些处理函数进行转换,下面是我写的一个关于ntohs在处理小端机字节 ...
- 让Jupyter Notebook个性化
Win下更改jupyter主题 Themes地址 本人环境 Win+Conda 开始使用pip 安装,发现无法使用pip,修改环境变量,将D:\Program Files\Conda\Scripts ...
- TP5.x——initialize()中如何return
前言 首先在tp框架中initialize中是无法直接通过return来返回任何值的,return并不会造成脚本的中断! 环境:PHP 7.0.4 | TP5.1 说明 initialize方法 首先 ...
- Exec Maven插件
1.为什么使用exec? 现在的工程往往依赖 众多的jar包,不像war包工程,对于那些打包成jar包形式的本地java应用来说,通过java命令启动将会是一件极为繁琐的事情,原因很简单,太 多的依赖 ...
- navcat导入mysql.sql出现:2006, 'MySQL server has gone away'
navcat导入mysql.sql出现:2006, 'MySQL server has gone away' OperationalError (2006, ‘MySQL server has gon ...
- SpringMVC的拦截器和数据校验
SpringMVC拦截器 什么是拦截器:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以 ...