Linux内核的交叉编译与系统模拟

一、环境准备

1、下载源码,官方地址:https://cdn.kernel.org/pub/linux/kernel/

2、安装支持库、交叉编译链和模拟器,这里以aarch64的架构为例

sudo apt-get install libncurses5-dev flex bison libssl-dev
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
sudo apt install qemu qemu-user qemu-user-static

3、根文件系统,可以自己编译打包为ext4磁盘格式,也可以找已有的系统。这里直接找到openwrt的系统,下载地址:https://downloads.openwrt.org/releases/19.07.9/targets/armvirt/64/

二、编译

1、菜单,可以根据需要进行配置

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make menuconfig

2、编译,根据配置可设置多线程-j8

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j8

三、模拟

1、qemu模拟,网络配置参见《qemu系统模式如何桥接外网

sudo qemu-system-aarch64 -machine virt -cpu cortex-a53 -machine type=virt -m 4096 -smp 8 \
-kernel ./arch/arm64/boot/Image --append "root=/dev/vda rw console=ttyAMA0" \
-nographic \
-drive if=none,file=openwrt-19.07.9-armvirt-64-root.ext4,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev tap,id=tapnet,ifname=tap0,script=no -device e1000,netdev=tapnet

2、运行内核

3、运行系统

4、访问后台

四、参考链接

https://www.cnblogs.com/sun-ye/p/14992084.html

https://blog.csdn.net/KeyBordkiller/article/details/144516505

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注