实验环境:ubuntu 4.15.0-46-generic x86_64 KDE
1.安装qemu
使用命令
sudo apt-get install qemu # install QEMU
2.编译内核
linux-5.0.1
tar -xvf linux-5.0.1.tar
make menuconfig #编译配置
make bzImage -j8
注:编译配置中设置32位内核,内核带调试信息,取消网络模块
测试启动内核
出现错误,试试不加-kernel
直接使用aqemu图形界面启动:
好像使用前需要配置aqemu:
配置完成后进入界面:
发现是安装虚拟机的,上面设置没有用。
发现系统上安装了qemu但是启动不了。下面尝试解决。
参考:https://www.linuxidc.com/Linux/2012-11/73419.htm
通过aqmeu过程,find qemu在目录usr/bin使用软链接替换命令:
sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu
成功启动。
3.制作根文件系统
cd ~/linux-exp
mkdir rootfs
git clone https://github.com/mengning/menu.git
cd menu
gcc -pthread -o init linktable.c menu.c test.c -m32 -static
cd ../rootfs
cp ../menu/init ./
find . | cpio -o -Hnewc |gzip -9 > ../rootfs.img
使用上述命令制作好根文件系统
- cd …
- qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img
启动内核:
3.编译linux-3.18.6内核
参考:https://github.com/mengning/mykernel
https://blog.csdn.net/haosouwj/article/details/77096936
编译出错:
解决:
参考:https://blog.csdn.net/qq_32693119/article/details/85541750
https://www.cnblogs.com/zengkefu/p/7103359.html
http://www.cnblogs.com/uestc-mm/p/7511063.html
1.查看gcc版本
2.安装4.8版本编译器
sudo apt-get install gcc-4.8 g+±4.8
3.配置编译器
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --config gcc
4.重新编译
编译成功。
5.启动内核
ok!