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

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

时间:2019-12-11 21:16:55      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:linu   pen   png   更改   mirror   mkdir   升级内核   code   arc   

 

第一步:下载,编译linux内核

mkdir LinuxKernel  
cd LinuxKernel
wget https://mirror.bjtu.edu.cn/kernel/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
sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev 
make i386_defconfig 
make menuconfig #配置编译需要的debug信息,如下图所示
make -j4 多核make,提升速度
#升级内核重启一直报错,所以就跳过了这一步

技术图片

第二步 构造MenuOS

cd ~/LinuxKernel/
sudo apt install qemu
git clone https://github.com/mengning/menu.git
mkdir rootfs
sudo apt-get install libc6-dev-i386
#修改Makefile,使用一个软连链接将qemu和emu-system-i386链接起来
cd menu

vim Makefile
qemu -kernel ../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img  #修改前
qemu -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img #修改后
:wq

sudo ln -s /usr/bin/qemu-system-i386  /usr/bin/qemu

make rootfs#初始化根目录

技术图片

 

第三步 gdb调试

qemu -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img -append  nokaslr -s -S#打开QEMU
#打开另一个终端
gdb
file ~/LinuxKernel/linux-5.0.1/vmlinux
break start_kernel
target remote:1234
c
list

技术图片

第四步:构建MenuOS的网络功能

 

#将 TCP 网络通信程序的服务端集成到 MenuOS 系统中
cd ~/LinuxKernel  
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
cd ../../menu/
make rootfs 

#将 TCP 网络通信程序的客户端集成到 MenuOS 系统中
cd ~/LinuxKernel  
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab3
make rootfs 
#记得在Makefile中更改一下linux内核的版本
#

技术图片

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

标签:linu   pen   png   更改   mirror   mkdir   升级内核   code   arc   

原文地址:https://www.cnblogs.com/yxzh-ustc/p/12024309.html

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