dino-linux/path/make-initrd

40 lines
947 B
Bash
Executable File

#!/usr/bin/env bash
set -e
cd "$BD"
bbver="1.33.1"
mkdir -p initrd
cd initrd
wget "https://busybox.net/downloads/busybox-$bbver.tar.bz2"
tar -xvf "busybox-$bbver.tar.bz2"
cd "busybox-$bbver"
make allnoconfig
make menuconfig
# Settings > Build static binary (no shared libs)
# Coreutils > chroot, sleep, mkdir
# Linux Module Utilities > modprobe
# Linux System Utilities > switch_root
# Shells > ash, Optimize for size instead of speed
make
make install
mkdir -p ../fs
mv _install/. ../fs
cd ../fs
mkdir -p "proc" "sys" "lib/modules"
#sudo mknod -m 644 "dev/console" c 5 1
#sudo mknod -m 644 "dev/null" c 1 3
echo '#!/bin/sh
mkdir -p /proc /sys /mnt/root
mount -t proc none /proc
mount -t sysfs none /sys
modprobe ata_generic
modprobe vfat
sleep 5
mount "/sys/dev/block/8:1" /mnt/root
exec switch_root /mnt/root /sbin/init
' >"bin/init"
chmod +x "bin/init"
find . | cpio -H newc -o | gzip -9 > ../rootfs.cpio.gz # use XZ instead?