39 lines
930 B
Bash
Executable File
39 lines
930 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
|
|
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?
|