kernel和rootfs镜像构建

1. 创建rootfs:

在Linux上自带mkfs指令, 用于创建文件系统.

mkfs

1
2
# 创建一个容量为512MB的根文件系统
mkfs -t ext4 rootfs.ext4 512M

2. 构建vmlinux (ELF文件, 内核编译最原始的文件, 可被rust的linux-loader加载)

参考文档: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

2.1 下载内核源码:

源码仓库: https://www.kernel.org/

2.2 安装依赖:

1
sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf git

2.3 配置内核

1
2
3
4
5
# optional: 复制本机的配置
cp -v /boot/config-$(uname -r) .config

chmod +x ./scripts/*
make menuconfig

从内核源码根目录的makefile中, 可以看到默认就是vmlinux, 暂时也不需要去考虑vmlinuz的压缩问题.

1
2
3
4
5
# The all: target is the default when no target is given on the
# command line.
# This allow a user to issue only 'make' to build a kernel including modules
# Defaults to vmlinux, but the arch makefile usually adds further targets
all: vmlinux

构建内核

1
make

kernel和rootfs镜像构建
https://www.torch-fan.site/2022/08/15/kernel和rootfs镜像构建/
作者
Torch-Fan
发布于
2022年8月15日
更新于
2022年11月15日
许可协议