首页 > 系统服务 > 详细

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

时间:2019-12-10 17:53:50      阅读:79      评论:0      收藏:0      [点我收藏+]

一 搭建环境

本文环境基于unbuntu16.04、Linux-5.0.1和QEMU2.5.0

1.1 编译内核

 1 mkdir ~/linuxlab
 2 cd ~/linuxlab 
 3 cp  /mnt/hgfs/networking/linux-5.0.1.tar.xz ./ #因为wget下载的速度太慢,直接从本机拷贝了一份
 4 tar -xvf linux-5.0.1.tar.xz
 5 cd linux-5.0.1
 6 
 7  
 8 ## 安装编译内核相关的库
 9 sudo apt-get install build-essential  flex libncurses-dev libelf-dev bison  libssl-dev
10 
11 make i386_defconfig  
12 make menuconfig
13     --- 先进入Kernel hacking
14     --- 再进入Compile-time checks and compiler options
15     --- 选择Compile the kernel with debug info,这样会使编译好的内核有调试信息
16   
17 make  #编译内核

1.2 QEMU启动内核

 1 cd ~/linuxlab
 2 sudo apt-get install qemu 
 3  #先安装git
 4 sudo apt-get install git
 5 git clone https://github.com/mengning/menu.git
 6 make rootfs
 7 
 8 cd menu
 9 #修改Makefile文件
10 qemu-system-x86_64 -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img
11 #启动
12 make rootfs 

技术分享图片

 

二 测试网络程序

cd ~/linuxlab
#下载程序
git clone https://github.com/mengning/linuxnet.git 

cd linuxnet/lab2
#将lab2中的测试文件拷贝
make
cd ../../menu/ 
make rootfs 


cd ~/linuxlab
cd linuxnet/lab3 
---此处记得修改Makefile文件,参照上面
make rootfs

技术分享图片

输入repkyhi 再输入hello即可看到结果

三、gdb调试

cd ~/linuxlab/menu
vim Makefile
 #修改其中的参数,在qemu后面加上-append nokaslr -s -S参数
make rootfs
#此时出现的是一个stop的qemu,等待连接

##另外一个终端
gdb
file ~/linuxlab/linux-5.0.1/vmlinux
#连接刚刚停止的qemu
target remote:1234 
#在start_kernel处打上断点
b start_kernel
#运行
run 
#可以看到已经在start_kernel函数处停止运行了

技术分享图片

 

 

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

原文:https://www.cnblogs.com/luhaipeng/p/12017810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!