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

安装编译linux内核

推荐内核下载网址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ (官网太慢)
mkdir linuxKernel  #创建项目目录
cd linuxkernel
cp /mnt/hgfs/share/
linux-5.0.1.tar.xz ~/linuxKernel/ #从共享文件夹中复制内核文件
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 #安装内核编译工具  
make i386_defconfig #生成32位的配置文件   
make menuconfig   #勾选Compile the kernel with debug info
make

通过QEMU加载内核

cd .. #退回到上一层目录 linuxKernel
sudo apt install qemu  # 安装qemu
qemu-system-i386 -kernel  linux-5.0.1/arch/x86/boot/bzImage #qemu加载linux内核

 

构造menuOS

git clone https://github.com/mengning/menu.git(网太差,没成功)
#从宿主机上下载了拷贝到虚拟机中
cp /mnt/hgfs/share/menu-master.zip ~/linuxKernel
unzip menu-master
cd menu-master
sudo apt-get install libc6-dev-i386 #在64位环境下编译32位需安装该库
vim Makefile #修改Makefile 如下图所示
make rootfs #执行结果如下

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

 

构建MenuOS的网络功能

cd ~/linuxKernel  
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
cd ../../menu/
make rootfs 

cd ~/linuxKernel  
cd linuxnet/lab3
make rootfs  

结果如下图所示:

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

 

gdb调试

#在qemu中启动gdb server  此时新打开的qemu虚拟机黑屏
qemu-system-i386 -kernel linux-5.0.1/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda init=/init nokaslr" -s -S #打开另一个终端 gdb file ~/linuxKernel/linux-5.0.1/vmlinux break start_kernel target remote:1234 c list

 

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

 

 

 

 

 

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