目录
arm的交叉编译工具链安装
内核编译
expat库安装
gdb工具编译
启动qemu
gdb ddd命令
编译报错处理
arm的交叉编译工具链安装
sudo apt-get install gcc-arm-linux-gnueabi
参考:使用qemu模拟器搭建arm运行环境 - 简书
内核编译
下载内核
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.9.tar.xz
解压内核
tar Jxvf linux-5.9.tar.xz -C ./
配置内核
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 vexpress_defconfig
内核配置取消
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 menuconfig
将System Type -->的Enable the L2x0 outer cache controller 取消
编译
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 zImage -j2
expat库安装
pwd
/home/ubuntu/work/qemu/qemu-arm-linux/source/expat-2.5.0
./configure --prefix=$PWD/bin
mkdir bin
make && make install
gdb工具编译
make distclean #若之前安装过gdb用这条命令清理
/home/ubuntu/work/qemu/qemu-arm-linux/source/gdb-9.1/configure --target=arm-linux-gnueabi --prefix=/home/ubuntu/work/qemu/qemu-arm-linux/source/out-arm-gdb-tools -v \
--with-expat --includedir=/home/ubuntu/work/qemu/qemu-arm-linux/source/expat-2.5.0/bin/include --libdir=/home/ubuntu/work/qemu/qemu-arm-linux/source/expat-2.5.0/bin/lib
make -j4 && make install
启动qemu
qemu-system-arm -M virt -m 512M -kernel /home/ubuntu/work/qemu/qemu-arm-linux/source/linux-5.9/out_vexpress_3_16/arch/arm/boot/zImage -nographic -append "console=ttyAMA0" -s -S
gdb ddd命令
ddd -debugger /home/ubuntu/work/qemu/qemu-arm-linux/source/out-arm-gdb-tools/bin/arm-linux-gnueabi-gdb /home/ubuntu/work/qemu/qemu-arm-linux/source/linux-5.9/out_vexpress_3_16/vmlinux
编译报错处理
checking for libexpat... (cached) no
configure: error: expat is missing or unusable