################################################################################
# Build basic root file system based on busybox.
# Suitable for network boot
# T.Barnaby, BEAM Ltd, 2005-06-15
################################################################################
#
#BBVer = 1.1.2
#BBVer = 1.2.0
BBVer = 1.4.1
BBRel = beam.1
BBUrl = http://www.busybox.net/downloads/
ROOTDIR = $(shell pwd)/../rootfs
TmpDir = /tmp/rootfs-gen
include ./Makefile.config
#CROSS = $(CCPREFIX)-
CROSS =
.PHONY: config
all:
make -j4 -C busybox-$(BBVer) CROSS=$(CROSS)
getIt:
wget -c ${BBUrl}/busybox-$(BBVer).tar.bz2 -O busybox-$(BBVer).tar.bz2
tar -xjf busybox-$(BBVer).tar.bz2
config:
cp config busybox-$(BBVer)/.config
make -C busybox-$(BBVer) oldconfig dep
clean:
make -C busybox-$(BBVer) clean
rm -f initrd.img
patch:
diff -ru busybox-$(BBVer).orig busybox-$(BBVer) > beam-1.patch
install: install_base install_busybox initrd.img
# cp initrd.img ../kernel
install_all: install install_libs
install_base:
mkdir -p $(ROOTDIR)/lib
mkdir -p $(ROOTDIR)/bin
mkdir -p $(ROOTDIR)/dev
mkdir -p $(ROOTDIR)/etc
mkdir -p $(ROOTDIR)/etc/init.d
mkdir -p $(ROOTDIR)/proc
mkdir -p $(ROOTDIR)/sys
mkdir -p $(ROOTDIR)/sysroot
mkdir -p $(ROOTDIR)/sbin
mkdir -p $(ROOTDIR)/tmp
mkdir -p $(ROOTDIR)/usr
mkdir -p $(ROOTDIR)/usr/bin
mkdir -p $(ROOTDIR)/var
# mkdir -p $(ROOTDIR)/var/log
ln -sf /tmp/var/log $(ROOTDIR)/var/log
mkdir -p $(ROOTDIR)/var/www
mkdir -p $(ROOTDIR)/var/www/cgi-bin
mkdir -p $(ROOTDIR)/var/lib/nfs/rpc_pipefs
cp -a files/rcS $(ROOTDIR)/etc/init.d
cp -a files/passwd files/group files/inittab files/fstab $(ROOTDIR)/etc
install_busybox:
-mkdir $(ROOTDIR)/bin
make -C busybox-$(BBVer) CROSS=$(CROSS) PREFIX=$(ROOTDIR) install
install_libs:
cp -a $(CCDIR)/$(CCPREFIX)/lib/*.so* $(ROOTDIR)/lib
initrd.img:
rm -fr $(TmpDir)
mkdir $(TmpDir)
mkdir $(TmpDir)/initrd
dd if=/dev/zero of=$(TmpDir)/initrd.tmp bs=1024 count=6000
/sbin/mke2fs -O none -F $(TmpDir)/initrd.tmp
mount -o loop $(TmpDir)/initrd.tmp $(TmpDir)/initrd
cp -a $(ROOTDIR)/* $(TmpDir)/initrd
umount $(TmpDir)/initrd
gzip $(TmpDir)/initrd.tmp -c > initrd.img
rm -fr $(TmpDir)
################################################################################
# Bits
################################################################################
#
install_dev:
rm -f $(ROOTDIR)/dev/*
mknod $(ROOTDIR)/dev/console c 5 1
mknod $(ROOTDIR)/dev/null c 1 3
mknod $(ROOTDIR)/dev/ram b 1 1
mknod $(ROOTDIR)/dev/urandom c 1 9
mknod $(ROOTDIR)/dev/systty c 4 0
mknod $(ROOTDIR)/dev/tty c 5 0
for i in 1 2 3 4; do mknod $(ROOTDIR)/dev/tty$$i c 4 $$i; done
mknod $(ROOTDIR)/dev/hda b 3 0
for i in 1 2 3 4; do mknod $(ROOTDIR)/dev/hda$$i b 3 $$i; done
mknod $(ROOTDIR)/dev/sda b 8 0
for i in 1 2 3 4; do mknod $(ROOTDIR)/dev/sda$$i b 8 $$i; done
initrd_cpio.img:
(cd $(ROOTDIR); find . | cpio --quiet -c -o) | gzip -9 > initrd_cpio.img