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

1.下载以及编译Linux内核源码

(1)下载Linux内核源码

    mkdir linuxkernel  #创建目录  
    cd  ~/linuxkernel/  #进入该目录
    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz   #下载5.0.1版的内核
    xz -d linux-5.0.1.tar.xz  #解.xz
    tar -xvf linux-5.0.1.tar  #解.tar
    cd linux-5.0.1 

(2)安装依赖包

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

(3)配置

    sudo cp /boot/config-xxx -r .config(xxx处使用TAB补全)   #使用现存内核的配置文件
    sudo make oldconfig     #应用现存配置文件
    sudo make localmodconfig   #仅安装已有module
    sudo make menuconfig    #配置其他编译选项 
    #在出现的界面中依次选择:
    Kernel hacking -> Compile-time checks and compiler options -> []Compile the kernel with debug info 然后按Y键,选择save,一直按esc至退出

(4)编译

    make   #编译的时间比较长

2.制作根文件系统

(1)QEMU虚拟机加载内核

    cd ~/linuxkernel/
    sudo apt install qemu   #安装qemu命令

(2)构造MenuOS

    mkdir rootfs   #创建MenuOS根目录
    git clone https://github.com/mengning/menu.git   #下载MenuOS


(3)初始化根目录

    cd menu   
    vim Makefile   #修改Makefile的内容
    #修改之前为:qemu -kernel ../linux-3.18.6/arch/x86/boot/baImage -initrd ../rootfs.img
    #修改之后为:qemu-system-x86_64 -kernel ../linux-5.0.1/arch/x86_64/boot/baImage -initrd ../rootfs.img
    make rootfs


(4)验证网路

    #将网络通信程序集成至MenuOS系统中
    cd ~/linuxkernel/
    git clone https://github.com/mengning/linuxnet.git   #
    cd linuxnet/lab2
    make
    cd ../../menu     
    #同前面修改Makefile的内容
    make rootfs

    cd ~/linuxkernel/
    cd linuxnet/lab3   
    #同前面修改Makefile的内容
    make rootfs
    #验证网络
    replyhi
    hello

3.gdb调试

(1)重启QEMU

    cd ~/linuxkernel/menu
    vim Makefile
    #在qemu-system-x86_64 -kernel ../linux-5.0.1/arch/x86_64/boot/baImage -initrd ../rootfs.img末尾加上-s -S
    make rootfs


(2)连接gdb server并调试

    gdb
    file ~/linuxkernel/linux-5.0.1/vmlinux
    target remote:1234
    break start_kernel  #设置断点,追踪start_kernel
    c      #继续运行

posted on 2019-12-08 00:23  MinHui  阅读(214)  评论(0)    收藏  举报

导航