导航

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

Posted on 2019-12-08 12:10  leaaaaaaa  阅读(161)  评论(0)    收藏  举报

1

安装、编译、升级Linux内核

在此过程中,建议更换/etc/apt/sources.list下的源,如阿里、科大源等,否则等待时间特别长。

换源后记得使用sudo apt-get update更新一下。

(如果报错很多也可以考虑换源,因为新安装的ubuntu 本身的源可能会无法下载依赖包(在没有vpn的情况下),例如make git这些命令都是需要下载的。

  你换源也许就能解决这个问题)

编译make也需要不少的时间。

 

2

安装qemu加载menuOS

安装成功后如下图所示

 

 

在这一步主要就是注意你的处理器是32位还是64位的

qemu-system-i386 -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img

像这条命令是32位下使用的

如果是64位,就用

 qemu-system-x86_64 -kernel ../linux-5.0.1/arch/x86_64/boot/bzImage -initrd ../rootfs.img

其次就是 linux-5.0.1是你下载的内核文件夹,如果下的版本不同也要注意替换

3

检测tcp 网络能否正常工作

即下载老师的实验文件代码,linuxnet/lab2和linuxnet/lab3

具体步骤:

cd ~/your menu
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
//make是将lab2的文件拷贝至menu下
//lab2不需要修改Makefile
cd ../../menu/
make rootfs

在执行make rootfs时候可能会提示

fatal error: asm/socket.h: No such file or directory

出现这个问题安装gcc-multilib即可

cd ~/your menu
cd linuxnet/lab3
//lab3 需要修改Makefile
vim Makefile
////qemu -kernel ../../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img
//修改成
//qemu-system-x86_64 -kernel ../../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img

make rootfs

最后在menuOS中输入help可以查看到出现relyhi和hello两条新命令

4

gdb调试

 

可以看到在内核出打了断点后qemu不会继续执行

可以输入c让内核继续跑,也可以输入别的gdb命令调试