RSS Git Download  Clone
Raw Blame History
################################################################################
#	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