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

  一,安装并编译最新版Linux内核

mkdir /Linux
cd ~/Linux/
wget https://cdn.kernel.org/pub/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

用以下命令安装gcc:

sudo apt-get install gcc-arm-linux-gnueabi

接下来我们设置编译文件:

sudo make menuconfig

之后依次选择Kernel hacking,Compile-time checks and compiler options,[*]Compile the kernel with debug info

 然后一路enter exit保存配置。 

之后我们就可以开始编译内核了,进入/Linux-5.0.0目录下,

sudo make

如果想要升级内核的话需要以下命令:

sudo make modules_install
sudo make install

升级之后需要重启虚拟机,可以通过uname -a命令查看内核版本:

 

二, 安装qemu,并通过qemu启动MenuOS

安装MenuOS,我们用到如下命令:

mkdir rootfs
git clone https://github.com/mengning/menu.git
cd menu
sudo apt-get install libc6-dev-i386
make rootfs

其中rootfs为MenuOS的新目录。若初始化成功,我们可以看到以下窗口:

 输入help,下面会显示可选用的参数等等。

三,调试MenuOS,测试TCP链接,hello/hi程序并用gdb验证:

用以下命令来集成TCP网络通信程序:

cd /Linux/ 
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
cd ../../menu/
make rootfs
#server cd ~/Linux/ cd linuxnet/lab3 make rootfs
#client

完成之后,尝试输入replyhi hello命令:

结果如图所示

posted @ 2019-12-12 19:29  空白124  阅读(138)  评论(0)    收藏  举报