当前位置: 首页> 科技> 能源 > vi设计可以做哪方面的_摄影工作室官网_seo优化服务是什么_数据查询网站

vi设计可以做哪方面的_摄影工作室官网_seo优化服务是什么_数据查询网站

时间:2025/7/14 21:25:15来源:https://blog.csdn.net/weixin_37620587/article/details/144656949 浏览次数:0次
vi设计可以做哪方面的_摄影工作室官网_seo优化服务是什么_数据查询网站

本期主题:
讲解一下qemu这个工具的使用,并且记录了qemu模拟A9处理器,启动Linux的全过程


往期链接:

  • linux设备驱动中的并发
  • 操作系统中的多线程问题——原子操作、自旋锁的底层实现
  • 操作系统并发控制——使用互斥锁实现同步

qemu使用

  • 1. qemu是什么
  • 2. 操作流程
    • 1. 安装qemu
    • 2.安装交叉编译环境
    • 3.linux源码下载并编译
      • 下载linux源码
      • 编译linux
    • 4.文件系统构建
      • initramfs
      • busybox
        • busybox获取及编译
      • 打包镜像
    • 5.启动


1. qemu是什么

网上定义:

QEMU(Quick Emulator)是一个开源的虚拟化软件,它可以模拟不同架构的硬件平台并运行虚拟机。QEMU 支持多种操作系统和硬件架构,包括 x86, ARM, PowerPC, MIPS 等,广泛用于嵌入式系统开发、操作系统测试、虚拟化环境等场景。

个人理解:

一句话描述,就是qemu是一个可以虚拟成硬件的软件,能在上面运行各种操作系统。

2. 操作流程

1. 安装qemu

sudo apt intall qemu

输入qemu看是否会补齐,出现下面的内容
在这里插入图片描述

2.安装交叉编译环境

sudo apt-get install gcc-arm-linux-gnueabi 

同样可以使用 arm-linux-gnueabi-gcc -v 看看是否安装成功以及版本信息
在这里插入图片描述

3.linux源码下载并编译

下载linux源码

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.7.tar.xz
tar xvf linux-4.14.7.tar.xz

编译linux

#menuconfig中确保打开了ramfs相关的支持项
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j$(nproc)

menuconfig中配置的位置
在这里插入图片描述

生成镜像的位置在:

  • zImage,前面Linux内核生成的内核镜像,a9生成的在 ./arch/arm/boot/zImage
  • dtb(设备树文件),也跟着前面一起生成了,arch/arm/boot/dts/vexpress-v2p-ca9.dtb

4.文件系统构建

initramfs

我们这里使用initramfs

initramfs(Initial RAM Filesystem)
initramfs 是一个临时的根文件系统,它位于系统启动的早期阶段,通常加载到内存中,用于支持内核的初始化过程。
initramfs 并不包含完整的操作系统文件,而是提供启动所需的最小文件集和驱动程序,以便完成内核和硬件的初始化。它是一个内存文件系统,通常用于加载系统的核心模块、驱动程序、挂载最终的根文件系统(rootfs)等。

  1. 先建立一个initramfs文件夹,里头创建一些目录
mkdir -p initramfs/{bin,sbin,etc,proc,sys,usr/{bin,sbin},dev}
  1. 创建initramfs/init脚本,并且添加可执行权限,这个是必须要的
#!/bin/sh
echo "Booting into initramfs..."
mount -t proc none /proc
mount -t sysfs none /sys
exec /bin/sh

chmod +x initramfs/init

initramfs目录弄完之后应该是这样的状态:
在这里插入图片描述

busybox

BusyBox 是一个面向嵌入式系统的多功能工具箱。它将许多常用的 UNIX 工具整合到一个可执行文件中,提供了简化的功能版本,同时占用更少的存储和资源。

BusyBox 是 initramfs 中常用的工具集,主要原因是它轻量化且功能齐全,适合在资源受限的环境中提供基本功能。

busybox获取及编译
  1. 获取busybox
    wget https://busybox.net/downloads/busybox-1.36.0.tar.bz2
    tar -xf busybox-1.36.0.tar.bz2
  2. 编译busybox
  • make menuconfig
    选择静态编译选项,这样编出来的busybox就是static link的文件,不需要再copy一些so过去
    在这里插入图片描述
    在这里插入图片描述

  • make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j$(nproc)

进行编译,但是这里编译会有一个报错,但是似乎不影响最终结果,busybox文件也能生成
在这里插入图片描述
3. 进行busybox install

就是把刚刚一些生成的文件放到initramfs目录下
在这里插入图片描述
这个时候再看initramfs目录,和前面对比就多了很多东西
在这里插入图片描述

打包镜像

cd initramfs
find . | cpio -o --format=newc | gzip > ../initramfs.cpio.gz
cd ..

5.启动

启动命令:

qemu-system-arm -M vexpress-a9   -kernel arch/arm/boot/zImage   -dtb arch/arm/boot/dts/arm/vexpress-v2p-ca9.dtb   -initrd ~/Workspace/os/qemu/initramfs.cpio.gz   -append "console=ttyAMA0 init=/init debug"   -nographic

启动成功:
在这里插入图片描述

关键字:vi设计可以做哪方面的_摄影工作室官网_seo优化服务是什么_数据查询网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: