一、Qemu调试内核

一、安装Qemu

1、安装Qemu

sudo apt install qemu-system-arm

2、测试版本

qemu-system-arrch -version

二、编译内核

1、下载内核

https://mirrors.edge.kernel.org/pub/linux/kernel

2、编译内核

(1)配置架构和编译器

ARCH		?= $(SUBARCH)

ARCH			:= arm64
CROSS_COMPILE	:= aarch64-linux-gnu-

(2)选择默认配置文件

cp arch/arm64/configs/defconfig ./.config

(3)配置内核

Kernel Features  ---> 
	   [ ] Randomize the address of the kernel image  //取消内核内存地址随机化,不同内核通过搜索RANDOMIZE_BASE查找	      

(4)编译内核(-j 参数表示使用6个线程编译)

make Image -j6

三、下载busybox

1、下载busybox

https://busybox.net/downloads/

2、配置架构和编译器

ARCH		?= $(SUBARCH)

ARCH			:= arm64
CROSS_COMPILE	:= aarch64-linux-gnu-

4、配置busbox

Settings  ---> 
[*] Build static binary (no shared libs)    //静态编译
[*] Build with debug information       //可选,带调试信息,方便后续调试

5、编译busybox

make install 将编译内容安装在当前目录_install下

make
make install 

四、生成跟文件系统镜像

1、生成镜像

qemu-img create rootfs.img 512m
mkfs.ext4 rootfs.img

2、将busybox移植进入镜像

mkdir rootfs
sudo mount rootfs.img rootfs

sudo cp -rf _install/*  rootfs
sudo mkdir proc sys dev etc etc/init.d
sudo vim etc/init.d/rcS

<etc/init.d/rcS>
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
mount -t debugfs none /sys/kernel/debug

sudo chmod +x  etc/init.d/rcS

sudo umount rootfs

五、编写启动脚本

#! /bin/sh

qemu-system-aarch64 \
    -machine virt,virtualization=true,gic-version=3 \
    -nographic \
    -m size=1024M \
    -cpu cortex-a72 \
    -smp 2 \
    -kernel Image \
    -drive format=raw,file=rootfs.img \
    -append "root=/dev/vda rw"

备注

参考:qemu搭建arm64 linux kernel环境
本人编译结果:qemu调试内核(aarch64)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值