################################################################################ # 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