Linux 编译内核,Qemu启动内核,GDB调试

文章目录

前置准备

  • Oracle VM VirtualBox
  • XShell
  • Ubuntu 较高版本发行版

步骤

  1. 先使用VM VirtualBox制作一个虚拟机
    安装好之后,为了方便我们操作虚拟机,最好使用Shell工具ssh到虚拟机里面,Shell工具按照个人喜好即可。

对于VM VirtualBox,我们需要设置一下端口转发,才能连到虚拟机里面:
在这里插入图片描述

  1. 安装一些必须的工具
    设置好端口转发之后,就可以用Shell工具连接虚拟机,需要安装下面的一些东西:

    1. qemu

    sudo apt-get update && sudo apt-get install qemu

    1. 手动编译gdb

    这个需要下载gdb的源码,然后手动编译

    1. 下载内核源码

    下载地址:Linux源码

    1. 下载指定版本的GCC[这一步不是必须的,我编译的2.6.39版本,需要gcc4.8.5]:

    sudo apt-get install gcc-4.8

    1. 设置gcc版本优先级

    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100

  2. 编译内核
    运行configure的时候,需要一些库包,要apt-get安装。
    跟内核版本相关的问题:可能会出现一些perl相关的错误,需要稍微修改一下源码。

  3. 制作Initrd 文件系统

    https://blog.0x972.info/?d=2014/11/27/18/45/48-linux-kernel-system-debugging-part-1-system-setup

  4. 启动编译好的内核

qemu-install/bin/qemu-system-x86_64 -nographic -hda disk.img -kernel linux-$KVERSION/arch/x86_64/boot/bzImage -initrd my-initramfs.cpio -append "console=ttyS0" -s -S
  1. 使用gdb连接内核:
    在这里插入图片描述
    现在就可以使用gdb调试内核了,可以自由地加断点调试,其实还应该再开一个终端去连接新建的这个内核虚拟机,模拟用户行为。这一步暂时没有弄,后面再补充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值