码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2019-12-11 17:34:39      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:app   inf   编译选项   信息   内核   内核源码   sudo   art   下载   

一、Linux内核

1、下载解压内核源码

mkdir LinuxKernel  #创建LinuxKernel根目录
cd ~/LinuxKernel/
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz #下载Linux内核,这里用的是5.0.1版本
xz -d linux-5.0.1.tar.xz #解压 
tar -xvf linux-5.0.1.tar 
cd linux-5.0.1

技术图片

2、 配置编译信息

#进入解压出来的目录
cd /linux-5.0.1/
#使用现存内核的配置文件:(xxx处使用TAB补全)
sudo cp /boot/config-xxx -r .config
#应用现存配置文件
sudo make oldconfig
#仅安装已有module
sudo make localmodconfig
#配置其他编译选项
sudo make menuconfig

3、下载依赖包

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

4、编译

sudo make

技术图片

5、升级内核

#安装modules
sudo make modules_install
#安装
sudo make install
#重启虚拟机
sudo shutdown -r now
#查看内核版本
uname -a

二、qemu虚拟机

1、下载安装qemu

cd ~/LinuxKernel/
sudo apt install qemu  # 安装qemu命令

2、构造menuOs

#下载menu系统,并在LinuxKernel目录下建一个子目录rootfs,当作menuOS的根目录
git clone https://github.com/mengning/menu.git
mkdir rootfs
cd menu
sudo apt-get install libc6-dev-i386 #安装libc6-dev-i386
sudo ln -s /usr/bin/qemu-system-i386  /usr/bin/qemu #建立一个软链接 之后可以直接执行qemo

技术图片

三、集成tcp服务端测试网络功能

在MenuOS中集成我们的TCP服务端程序:

1 git clone https://github.com/mengning/linuxnet.git
2 cd linuxnet/lab2
3 make
4 cd ~/LinuxKernel/menu/

技术图片

四、gdb调试

1、启动gdb server

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

2、建立gdb与gdb server连接

file ~/LinuxKernel/linux-5.0.1/vmlinux # # 在gdb界面中targe remote之前加载符号表
break start_kernel # 断点设置
target remote:1234 # 建立gdb和gdbserver之间的连接
c #按c
list 

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

标签:app   inf   编译选项   信息   内核   内核源码   sudo   art   下载   

原文地址:https://www.cnblogs.com/sylg12138/p/12023284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!