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


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

    下载linux内核并编译

    1. 下载linux源码

    下载地址,下载之后解压即可。【本次使用的linux-5.0.1版本】

    安装编译所需的工具
     1 sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev 

    生成X86配置文件

    1 make i386_defconfig#生成x86的配置文件
    2 make menuconfig

    进入GUI编辑配置文件的生成

    依次选择:Kernel hacking  =====》 Compile-time checks and compiler options ====》Compile the kernel with debug info 然后保存配置文件并退出。

    之后make开始编译:

    1 make

    通过qemu来加载menuOS

    首先安装qemu工具

    1 sudo apt-get install qemu

    建立软连接,使得之后可以直接执行qemu

    1 sudo ln -s /usr/bin/qemu-system-i386  /usr/bin/qemu

    制作根文件系统:

    1 git clone https://github.com/mengning/menu.git
    2 mkdir rootfs  #创建根文件系统
    3 cd menu
    4 sudo apt-get install libc6-dev-i386 #在64位环境下编译32位安装
    5 vim Makefile  #修改git来的menu下的Makefile文件
    6 qemu -kernel /home/lmm/linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img
    7  make rootfs  #初始化根目录

    得到:

    成功!

    通过gdb可以跟踪内核代码

    另外打开一个终端,输入

    gdb
    flie /home/lmm/linux-5.0.1/vmlinux
    break start_kernel #打断点,跟踪内核代码执行
    c #执行

    查看跟踪结果:

    可以看到成功跟踪到start_kernel内核函数。

    验证MenuOS的网络可以正常工作【TCP通信】

    下载老师的通信代码:

    1 git clone https://github.com/mengning/linuxnet.git

    修改lab3下的Makefile的qemu为自己的绝对路径下的

    1 qemu -kernel /home/lmm/linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img

    然后分别在lab2和lab3执行如下代码:

    1.make rootfs

    然后使用help查看可食用命令并键入一下代码验证可使用TCP通讯:【如下】

  • 相关阅读:
    Activity的singleTask启动模式
    蓝图Tips
    UE4 C++ Tips
    UE4的抛物线
    透明材质
    在UE4 C++构造函数里的常规操作
    UE4的反射关键词
    UE4字符串的各种转换
    UE4Launch遇到的问题
    在UE4C++中的宏
  • 原文地址:https://www.cnblogs.com/tlxclmm/p/12029766.html
Copyright © 2020-2023  润新知