构建调试Linux内核网络代码的环境MenuOS系统
作者:互联网
一、编译Linux-5.0.1内核
在home目录下,创建一个名为MenuOS的文件夹。直接右击创建就可以,或者使用mkdir命令亦可。如下:
#切换到当前用户的家目录,~就代表当前用户的家目录,相当于/home/当前用户名 cd ~ #创建目录命令,在当前工作目录下创建MenuOS目录 mkdir MenuOS
下载网址为:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz。主要有两种方式,一是在Windows系统下下载,然后将文件拖到虚拟机中;另一种一种是通过wget命令进行下载。
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz
接下来是解压,并进入MenuOS目录下的linux-5.0.1目录,具体命令如下:
xz -d linux-5.0.1.tar.xz tar -xvf linux-5.0.1.tar cd ./linux-5.0.1
安装编译内核所需依赖
sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev git -y
接下来是配置内核参数
#使用现存内核的配置文件:xxx指命令输入此处可以按Tab键补全 sudo cp /boot/config-xxx -r .config #应用现存配置文件 sudo make oldconfig #仅安装已有module sudo make localmodconfig #配置其他编译选项 sudo make menuconfig
紧接着就会出现下方的界面,用键盘↑↓键依次选择Kernel hacking,Compile-time checks and compiler options,[*]Compile the kernel with debug info并用Enter敲击,再用键盘←→键选定Save,Enter敲击,然后即可逐步选定Exit,直到退出该界面。
然后就是编译内核,等待完成。可能需要1个小时!!!
sudo make
二、qemu,装载MenuOS
下载安装qemu
cd .. sudo apt install qemu qemu-system-x86_64 -kernel linux-5.0.1/arch/x86_64/boot/bzImage
#构建MenuOS的根文件目录rootfs mkdir rootfs
#git clone所给的munuOS文件
git clone https://github.com/mengning/menu.git cd menu
sudo apt-get install libc6-dev-i386
构造MenuOS,编辑一下menu目录下Makefile文件的如下内容
然后在~/MenuOS/menu路径下执行,make rootfs命令,成功在能看到如下界面
三、验证MenuOS的网络
首先集成服务器端
cd .. git clone https://github.com/mengning/linuxnet.git
cd ./linuxnet/lab2
make
cd ../../menu/
make rootfs
再集成客户端,修改lab3下Makefile文件内的内容
然后同理执行make rootfs把它集成到MenuOS中。完成之后我们就可以在MenuOS中进行测试。在QEMU下输入如下命令Replyhi和Hello,结果如下
四、GDB 内核代码跟踪
首先,修改menu目录下的Makefie文件
此时在~/MenuOS/menu路径下输入 make rootfs。注意此时不需要关闭终端以及QEMU界面。在MenuOS目录下重新开的终端,输入一下命令
gdb file ./linux-5.0.1/vmlinux
target remote:1234
break start_kernel
c
list
即证实通过gdb可以跟踪到内核代码。
标签:5.0,Linux,menu,make,sudo,MenuOS,内核,linux 来源: https://www.cnblogs.com/ai469/p/12019851.html