当前位置: 首页 > article >正文

ubuntu直接运行arm环境qemu-arm-static

qemu-arm-static
嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题,想预先交叉编译并安装一些应用程序,但是交叉编译的环境配置以及依赖包的安装十分繁琐,并且容易出错。想直接在目标板上进行编译和安装,但是ARM的资源和处理能力有限,会非常耗费时间。在这里给大家推荐一个ubuntu下好用的工具qemu-arm-static,这是QEMU用户模式下的ARM仿真器。

通过qemu-arm-static,我们在x86的ubuntu PC机上,可以模拟ARM处理器,就像运行在ARM上一样进行各种操作。这样既实现了ARM环境,又利用了x86 PC的处理能力。

安装使用
首先要确保在x86 ubuntu上使用root权限。

安装

apt install qemu-user-static
1
下载ubuntu arm文件系统并解压

wget http://cdimage.ubuntu.com/ubuntu-base/releases/xenial/release/ubuntu-base-16.04.6-base-armhf.tar.gz
mkdir rootfs
tar zxvf ubuntu-base-16.04.6-base-armhf.tar.gz -C rootfs/
1
2
3
配置

cp /usr/bin/qemu-arm-static rootfs/usr/bin/
cp /etc/resolv.conf rootfs/etc/resolv.conf (确保网络可用)
mount -t proc /proc rootfs/proc
mount -t sysfs /sys rootfs/sys
mount -o bind /dev rootfs/dev
1
2
3
4
5
chroot
切换root路径,进入ARM环境。此时你就可以当成OS和ubuntu真的运行在ARM处理器上了,做你想做的事情。

chroot rootfs
uname -a
Linux OptiPlex 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 armv7l armv7l armv7l GNU/Linux
1
2
3
qarm
上面的配置和使用方法是不是多少有些繁琐。我个人写了一个tool可以更加方便的使用qemu-arm-static,叫qarm。

git clone https://github.com/yangbolu1991/qarm.git
cd qarm
cp qarm /usr/sbin
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/yanceylu/article/details/108570423


http://www.kler.cn/a/529496.html

相关文章:

  • Appium介绍
  • 3.Spring-事务
  • ROS-IMU
  • (二)QT——按钮小程序
  • Autogen_core源码:_agent_runtime.py
  • android获取EditText内容,TextWatcher按条件触发
  • C++语法·十伞
  • git基础使用--3---git安装和基本使用
  • 属性编程与权限编程
  • 【python】python油田数据分析与可视化(源码+数据集)【独一无二】
  • 高斯光束介绍及光斑处理
  • java-抽象类注意点
  • python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理
  • C++ 泛型编程指南02 (模板参数的类型推导)
  • 【Block总结】门控轴向注意力Gated Axial-Attention|即插即用
  • 代码练习2.3
  • 为何 git 默认是 master分支,而github默认是main分支(DeepSeek问答)
  • MiniMax:人工智能领域的创新先锋
  • git安装flutter
  • 【含文档+PPT+源码】基于微信小程序的校园快递平台
  • SpringBoot 整合 SpringMVC:SpringMVC的注解管理
  • 封装 JDK 自带的 HttpServer
  • 笔记:电机系统性能标定测试怎么进行?
  • 【Go - 小心! Go中slice的传递陷阱 】
  • 第七篇:数据库备份与恢复
  • UE5 蓝图学习计划 - Day 10:UI 系统(HUD 与 Widget)