下载Linux内核并且编译系统然后用Qemu运行系统

从国内镜像下载Linux内核
http://mirrors.aliyun.com/linux-kernel/v4.x/
我下载的是tar zxvf linux-4.15.1.tar.gz
然后tar zxvf linux-4.15.1.tar.gz命令解压内核
然后进入内核源代码目录,执行下面的操作,分别制定架构以及对应的内核配置文件
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201020101630450.png#pic_center
在源代码根目录下执行make menuconfig
General setup里默认已经选择了Initial RAM filesystem and RAM disk (initramfs/initrd)
在这里插入图片描述

Drivers->Block devices->RAM block device support
在这里插入图片描述

在这里插入图片描述
执行上面的make命令编译,但是报错了,安装相关的库
sudo apt search libelf-dev
sudo apt-get install libelf-dev
然后执行make ,结果如下:
在这里插入图片描述

当我编译3.x内核的时候报错如下,百度了一下是主机gcc编译器和内核不匹配
在这里插入图片描述
make编译报错,根据错误提示,复制我的编译主机里的compiler-gcc.h到当前源代码的include/linux/compiler-gcc5.h,但是这样子复制以后还有其他报错,暂时没有精力去查,所以后来直接换4.x内核编译了,我的主机系统版本号如下:
在这里插入图片描述

下载对应版本的busybox
http://busybox.net/downloads/
我下载了busybox-1.32.0,下载后解压
在这里插入图片描述

在busybox源代码目录下执行make menuconfig
然后Settings里面勾选"Build static binary (no shared libs)",如下:
在这里插入图片描述
然后退出生成新的.config,然后执行make && make install
执行结果如下在_install/usr/bin和_install/usr/sbin下生成各种命令
在这里插入图片描述
进入_install目录
执行下面的
mkdir etc dev mnt
mkdir -p etc/init.d/
vim etc/fstab内容如下:
在这里插入图片描述
vim etc/init.d/rcS
在这里插入图片描述
chmod 0755 etc/init.d/rcS
vim etc/inittab
在这里插入图片描述
chmod 0755 etc/inittab
cd dev
mknod console c 5 1
mknod null c 1 3
mknod tty1 c 4 1

执行froome.sh生成对应的rootfs.img.gz
在这里插入图片描述

安装qemu-system-x86
在这里插入图片描述

qemu-system-x86_64 -kernel linux-4.15.1/arch/x86_64/boot/bzImage -initrd busybox-1.32.0/
rootfs.img.gz --append “root=/dev/ram init=/linuxrc” -serial file:output.txt -curses
如果是通过xshell登录的-curses必须加

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值