首页 > 系统服务 > 详细

编译构建调试Linux内核网络代码环境MenuOS系统

时间:2019-12-10 21:11:55      阅读:119      评论:0      收藏:0      [点我收藏+]

编译构建调试Linux内核网络代码环境MenuOS系统

根据参考给出的操作命令,主要分为以下几个步骤:

  1. 安装编译内核的依赖

    sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev

    安装过程可能会遇到下载速度太慢而导致失败的情况,可以更换软件源或换个网。。。
  2. 下载内核并编译

    在这里出了一点小问题,那就是官网下载速度实在是太慢了....建议直接到官网,右键复制链接地址,然后用迅雷下载,亲测下载速度可以达到6M/s
    技术分享图片

    • 编译内核

      make i386_defconfig #按照默认生成内核配置文件
      make menuconfig
      make 或者 make -j #j为CPU核心数
      技术分享图片

输入这两条命令之后会进入一个可视化的界面用于配置内核,具体操作如下:
(1)选择 Kernel hacking 回车
(2)选择 Compile-time checks and compiler options 回车
(3)选择 Compile the kernel with debug info 按空格键,然后左移光标save直接默认保存,最后exit

  1. 制作根文件虚拟机
    • 安装qemu

      sudo apt install qemu
      qemu-system-i386 -kernel linux-5.0.1/arch/x86/boot/bzImage #qemu加载linux内核

    • 构建MenuOS

      git clone https://github.com/mengning/menu.git
      sudo apt-get install libc6-dev-i386 #安装libc6-dev-i386
      qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img #创建系统镜像 (linux-5.0.1目录下)
      make rootfs #初始化(menu目录下)
      技术分享图片

  2. 构建gdb调试环境
    • 在qemu中启动gdb server

      qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img -append nokaslr -s -S

    • 建立gdb server和gdb之间的连接
      不要关闭当前正处于黑屏状态的gdb server,打开一个新终端,输入gdb

      cd linux-5.0.1
      file vmlinux #加载符号表
      break start_kernel #在内核函数处设置断点
      target remote:1234 #建立gdb和gdb server之间的连接
      c #回车让qemu上的Linux继续运行
      list #查看之前设置的断点
      技术分享图片
      技术分享图片

  3. 将TCP网络程序集成到MenuOS中运行 实验结果如下所示:
    技术分享图片

编译构建调试Linux内核网络代码环境MenuOS系统

原文:https://www.cnblogs.com/sa19225475/p/12018741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!