推荐内核下载网址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ (官网太慢)
mkdir linuxKernel #创建项目目录 cd linuxkernel
cp /mnt/hgfs/share/linux-5.0.1.tar.xz ~/linuxKernel/ #从共享文件夹中复制内核文件
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 #生成32位的配置文件
make menuconfig #勾选Compile the kernel with debug info
make
cd .. #退回到上一层目录 linuxKernel sudo apt install qemu # 安装qemu qemu-system-i386 -kernel linux-5.0.1/arch/x86/boot/bzImage #qemu加载linux内核
git clone https://github.com/mengning/menu.git(网太差,没成功)
#从宿主机上下载了拷贝到虚拟机中
cp /mnt/hgfs/share/menu-master.zip ~/linuxKernel
unzip menu-master
cd menu-master
sudo apt-get install libc6-dev-i386 #在64位环境下编译32位需安装该库
vim Makefile #修改Makefile 如下图所示
make rootfs #执行结果如下
cd ~/linuxKernel git clone https://github.com/mengning/linuxnet.git cd linuxnet/lab2 make cd ../../menu/ make rootfs cd ~/linuxKernel cd linuxnet/lab3 make rootfs
结果如下图所示:
#在qemu中启动gdb server 此时新打开的qemu虚拟机黑屏
qemu-system-i386 -kernel linux-5.0.1/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda init=/init nokaslr" -s -S #打开另一个终端 gdb file ~/linuxKernel/linux-5.0.1/vmlinux break start_kernel target remote:1234 c list
原文:https://www.cnblogs.com/mingjian6666/p/12012671.html