ubuntu18使用kvm调试编译好的linux

  1. 编译linux内核生成bzImage.
tar -xvf linux-source-5.0.0.tar.bz2
cd cd linux-source-5.0.0/
cp cp /boot/config-5.0.0-32-generic .config
make menuconfig
time make -j4
  1. 下载busybox
    地址:
https://busybox.net/downloads/
  1. 编译busybox
tar -xvf busybox-1.30.0.tar.bz2
cd busybox-1.30.0
make menuconfig

配置:

Settings  --->
   Build Options  --->
     [*] Build BusyBox as a static binary (no shared libs)

编译:

make -j4
make install
  1. 制作 ramdisk, 在 busybox同级目录下创建目录 ramdisk 后,执行以下命令
#!/bin/bash
sudo rm -rf rootfs
sudo rm -rf tmpfs
sudo rm -rf ramdisk*
sudo mkdir rootfs
sudo cp ../busybox-1.30.0/_install/*  rootfs/ -raf
sudo cp ../busybox-1.30.0/examples/bootfloppy/etc rootfs/ -raf
sed -i "s/tty2//g" rootfs/etc/inittab                                           
sudo mkdir -p rootfs/proc/
sudo mkdir -p rootfs/sys/
sudo mkdir -p rootfs/tmp/
sudo mkdir -p rootfs/root/
sudo mkdir -p rootfs/var/
sudo mkdir -p rootfs/mnt/
sudo mkdir -p rootfs/lib64
#sudo cp -arf /lib/x86_64-linux-gnu/* rootfs/lib64/
#sudo rm rootfs/lib/*.a
#sudo strip rootfs/lib/*
sudo mkdir -p rootfs/dev/
sudo mknod rootfs/dev/tty1 c 4 1 
sudo mknod rootfs/dev/tty2 c 4 2 
sudo mknod rootfs/dev/tty3 c 4 3 
sudo mknod rootfs/dev/tty4 c 4 4
sudo mknod rootfs/dev/console c 5 1
sudo mknod rootfs/dev/null c 1 3
sudo dd if=/dev/zero of=ramdisk bs=1M count=32
sudo mkfs.ext4 -F ramdisk
sudo mkdir -p tmpfs
sudo mount -t ext4 ramdisk ./tmpfs/  -o loop
sudo cp -raf rootfs/*  tmpfs/
sudo umount tmpfs
sudo gzip --best -c ramdisk > ramdisk.gz  
  1. 将生成的bzImage和ramdisk.gz拷贝到同一个目录后,启动kvm(一般启动)
qemu-system-x86_64 -kernel bzImage -initrd ./ramdisk.gz 

执行后,结果:
在这里插入图片描述
6. 调试启动

qemu-system-x86_64 -kernel bzImage -initrd ./ramdisk.gz -S -s -m 1024

在这里插入图片描述
7. ctrl+alt+2进入qemu命令行界面, 输入gdbserver tcp::1234,建立并等待gdb连接
在这里插入图片描述
8. 打开另一个终端,执行 gdb,远程连接到待调试的内核。
在这里插入图片描述
9. 开始运行调试内核

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值