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

一.Linux内核源码下载

https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz
xz -d linux-5.0.1.tar.xz
tar -xvf linux-5.0.1.tar
cd linux-5.0.1

如下图所示:

构建调试Linux内核网络代码的环境MenuOS系统_第1张图片

 

 

二.安装内核编译工具

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

构建调试Linux内核网络代码的环境MenuOS系统_第2张图片

 

 

三.配置编译内核

make defconfig          #按照默认值生成.config
make i386_defconfig #生成32位x86的配置文件
make menuconfig      #开启文本菜单选项,对窗口有限制,尽量调大窗口

进入菜单后用键盘↑↓键依次选择Kernel hacking,Compile-time checks and compiler options,[*]Compile the kernel with debug info再选定Save。然后逐步选定Exit,直到退出该界面。

如下图所示:

构建调试Linux内核网络代码的环境MenuOS系统_第3张图片

 

make #编译内核

 

四.通过QEWU虚拟机加载内核

1.下载安装qemu

构建调试Linux内核网络代码的环境MenuOS系统_第4张图片

 

2.构造MenuOS

mkdir rootfs #构建MenuOS的根文件目录
git clone https://github.com/mengning/menu.git cd menu sudo apt-get install libc6-dev-i386 # 在64位环境下编译32位需安装

用vim Makefile后修改内核版本为linux-5.0.1

 

  

make rootfs

然后会出现

构建调试Linux内核网络代码的环境MenuOS系统_第5张图片

 

cd ..
qemu-system-i386 -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img # make i386_defconfig
qemu-system-x86_64 -kernel linux-5.0.1/arch/x86_64/boot/bzImage  -initrd rootfs.img

 

五.构建Linux内核的gdb调试环境

1.在qemu中启动gdb server

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

2.建立gdb与gdbserver之间的连接,具体代码如下:

gdb
file ~/linux-5.0.1/vmlinux
target remote:1234
break start_kernel
c
list

构建调试Linux内核网络代码的环境MenuOS系统_第6张图片

 

 

 

 

 

你可能感兴趣的:(构建调试Linux内核网络代码的环境MenuOS系统)