Build Linux System
学号265,原创作品转载请注明出处+https://github.com/mengning/linuxkernel/
实验环境:ubuntu16.04
首先下载 linux-5.0.1 ,然后解压:
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
编译内核:
sudo make defconfig
sudo make -j8
sudo make install
更新grub,然后重启内核:
update-grub
reboot
可以看到grub界面中已经有了linux 5.0.1的入口,但是选择该内核后发生了end kernel panic错误,尝试从recovery mode进入,进入的是BusyBox环境,在该环境中查看内核版本,显示为linux 5.0.1,说明内核已经安装但无法启动图形界面:
回到图形界面,用qemu加载内核,结果同样显示end kernel panic错误:
按照stack overflow等论坛的相关问题讨论,重装内核,更新对应内核版本的initramfs,仍然显示该错误。
接着构造MenuOS:
git clone
https://github.com/mengning/menu.git
cd menu
sudo apt-get install libc6-dev-i386
make rootfs
此时出现错误:
重新make内核,选择i386_defconfig,并运行以下命令: make rootfs cd ../menu gcc -pthread -o init linktable.c menu.c test.c -m32 -static cp init ../rootfs find . | cpio -o -Hnewc | gzip -9 > ../rootfs.img qemu-system-i386 -kernel arch/x86/boot/bzImage -initrd ../rootfs.img
最后成功显示:
Last updated