不想买开发板但是想运行arm不同架构的程序怎么办?QEMU解决。同时试着自己编译内核和根文件系统
内容纲要

qemu简介

经过一段时间的学习在我看来:qemu是一款虚拟机,它能将X86 指令虚拟成arm 指令,进而在X86 计算机中执行arm 系列的程序。这对于不同的软件测试非常友好。为什么要学使用qemu 呢?

在工作中,之前由于没有买开发板,导致韩方发来的Linux_SDK 无法进行测试。说来惭愧,对Linux 操作系统不熟练,导致我甚至想在x86 VMware 虚拟机中运行软件 当时没接触到qemu,Linux_SDK 测试工作就搁置了一周。后来领导要求买一块开发板进行测试,于是就入手了香蕉派M3。
之后的过程中,发现全志A83T 的CPU 性能太弱了,韩方发来的Linux_SDK 没有图形化界面。给客户演示还是需要图形界面的软件,采用qemu 目的是验证arm64(aarch64) 架构的更高性能的CPU 能否运行Linux_SDK。

方案选择

  1. 使用宿主机直接用真实硬盘分区挂载在一个文件夹下后安装系统(直接使用iso文件安装),然后使用qemu 启动系统。参考教程
    2.通过VMware下ubuntu 虚拟机安装qemu,再在qemu 虚拟机下运行arm版本linux。
    2.1 通过iso镜像直接安装(需要EFI引导)。参考教程
    2.2 编译内核 & 最小根文件系统运行。[参考教程1] [参考教程2] [参考教程3(终极版arm32)] [参考教程4(终极版amr64)]

最终选择了方案2.1和2.2
从已完成了的角度,方案2下3种策略都使用上。1.直接EFI 引导iso 镜像;2.编译32位版本linux 内核; 3.编译64 位版本内核

特别说明:
1.编译arm32 位版本内核根文件系统,使用ext3 方式加载根文件系统。
2.编译arm64 位版本内核根文件系统用的则是cpio 打包的方式,将根文件系统在编译的时候就导入到Linux 内核中(启动的时候不用再挂载内核)。
3.EFI 引导的镜像目前没找到办法联网、甚至向里面传入文件之类。

方案2.1 通过iso 镜像安装

参考地址
//TODO:操作复现。敬请期待

方案2.2 通过编译linux内核(arm32),使用busybox 构建根文件系统

//TODO:大工程项目,后期复现
2

方案2.3 通过编译linux内核(arm64),使用buildroot 构建根文件系统

//在方案2.2上进行改进。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇