编译、运行linux kernel@qemu-based ARM

本文介绍了如何在QEMU模拟环境中编译和运行Linux内核针对ARM架构的版本。首先,详细阐述了环境准备,包括获取Linux Kernel源码、安装ARM交叉编译工具链和必要的库文件。接着,讲解了两种安装QEMU的方法,以及如何配置和编译Linux内核。在制作根文件系统的过程中,利用busybox生成基本工具,并创建initramfs镜像。最后,通过QEMU启动内核和根文件系统,实现了一个简单的Linux系统的运行。
摘要由CSDN通过智能技术生成

一、环境准备

下载Linux Kernel源代码。 下面是以当前最新版本5.5.8为例,可以根据自己需要更换为其他版本。

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.8.tar.xz

解压源代码到当前路径的默认目录中

tar xvJf linux-5.5.8.tar.xz

下载ARM交叉编译工具链。 笔者的平台为x86 ubuntu 19.10系统,故不能直接使用默认的GCC环境。ARM交叉编译工具链可以在ARM Developer网站上下载,具体可以在如下网址中找到:ARM官方交叉编译工具链。也可以直接使用如下命令下载。

# 说明:由于下载过程非常慢,这里我加入了-b选项作为后台任务自动下载。
wget -b -O gcc-arm-9.2-aarch64-none-linux-gnu.tar.xz https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz?revision=61c3be5d-5175-4db6-9030-b565aae9f766&la=en&hash=0A37024B42028A9616F56A51C2D20755C5EBBCD7 

下载完成后,解压到/usr/local路径下

sudo tar xvJf gcc-arm-9.2-aarch64-none-linux-gnu.tar.xz -C /usr/local

增加交叉编译工具链路径到环境变量中

export PATH=$PATH:/usr/local/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin

这样之后就可以通过直接调用aarch64-none-linux-gnu-*来使用交叉编译工具链的各种命令了。

安装编译kernel需要的其他库文件。

sudo apt-get install -y libncurses-dev flex bison libssl-dev bc

二、安装QEMU

方案一: 直接通过apt-get安装。但根据linux版本不同,可能通过这种方式安装的qemu版本较低而出现各种问题,比如笔者在ubuntu 16.10上就只能安装到2.x版本,导致加载编译的Linux 4.x和5.x的内核均失败,困扰了很久才发现是版本过低问题。

sudo apt-get install -y qemu

方案二: 通过下载源代码编译最新版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值