qemu交叉编译arm内核_QEMU模拟ARM嵌入式LINUX系统

本文详细介绍了如何在QEMU上交叉编译ARM内核,配置Busybox以创建根文件系统。首先,通过创建软链接设置交叉编译环境,然后配置并编译Linux内核。接着,配置并编译Busybox以生成rootfs,解决在QEMU中运行时的错误。最后,介绍了如何配置UBoot并制作kernel及rootfs映像,利用QEMU的tftp服务完成引导加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.准备工作

首先,在$HOME目录下创建arm_qemu目录,用于存放“工具/原料”提及的源码包等:

mkdir ~/arm_qemu

接下来按“工具/原料”里面说明的命令执行后同步相关源码包和安装相关工具。

安装好交叉编译链后还需要做如下处理,即创建链接(为什么创建,可以了解下编译脚本):

sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.7 /usr/bin/arm-linux-gnueabi-gcc

sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-4.7 /usr/bin/arm-linux-gnueabi-gcc-ar

sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-nm-4.7 /usr/bin/arm-linux-gnueabi-gcc-nm

sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7 /usr/bin/arm-linux-gnueabi-gcc-ranlib

sudo ln -s /usr/bin/arm-linux-gnueabi-cpp-4.7 /usr/bin/arm-linux-gnueabi-cpp

sudo ln -s /usr/bin/arm-linux-gnueabi-gcov-4.7 /usr/bin/arm-linux-gnueabi-gcov

即把所有尾部有4.7版本号的链接为没有的。

1.配置Kernel

这里使用最常用的versatile_defconfig,具体步骤如下:

cd ~/arm_qemu/kernel

make versatile_defconfig ARCH=arm

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

进入Kernel源码目录,生成根目录下.config配置文件(arm架构),使用交叉编译工具链(以arm-linux-gnueabi-为前缀)编译versatile配置的内核。

编译完成后,我们使用qemu试下:

qemu-system-arm -M versatilepb -kernel arch/arm/boot/zImage -nographic

其中-M指定模拟的设备型号,这里是versatile的pb版设备,-kernel对应启动程序,这里是编译好的Linux内核,-nographic表示直接将输出到当前终端。

运行后有如下输出:

pulseaudio: set_sink_input_volume() failed

pulseaudio: Reason:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值