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