您的位置:首页 > 游戏 > 手游 > 一、Qemu调试内核

一、Qemu调试内核

2024/12/23 5:27:50 来源:https://blog.csdn.net/liutit/article/details/140307010  浏览:    关键词:一、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 rootfssudo 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/debugsudo chmod +x  etc/init.d/rcSsudo umount rootfs

五、编写启动脚本

#! /bin/shqemu-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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com