#!/bin/sh

if [ ! -z "$1" ]; then
	ROOT="$1"
else
	ROOT=""
fi

DMESG='/var/log/dmesg'
if [ ! -f $DMESG ]; then
	dmesg > $DMESG
fi

if [ ! -d $ROOT/dev/vc ]; then
	echo '  Creating Virtual Console devices ...'
	mkdir -p $ROOT/dev/vc
	for i in 0 1 2 3 4 5; do
		mknod $ROOT/dev/vc/$i c 4 $i
		mknod $ROOT/dev/tty$i c 4 $i
	done
fi

if [ ! -d $ROOT/dev/loop ]; then
	echo '  Creating loopback devices ...'
	mkdir -p $ROOT/dev/loop
	for i in 0 1 2 3; do
		mknod $ROOT/dev/loop/$i b 7 $i 
		mknod $ROOT/dev/loop$i b 7 $i 
	done
fi
	
if [ ! -d $ROOT/dev/floppy ]; then
	echo '  Creating floppy device(s) ...'
	mkdir -p $ROOT/dev/floppy
	mknod $ROOT/dev/floppy/0 b 2 0
	mknod $ROOT/dev/fd0 b 2 0
fi

if [ ! -d $ROOT/dev/cdroms ]; then
	echo '  Creating cdrom devices ...'
	mkdir -p $ROOT/dev/cdroms

	IDECDROM=`grep -i cdrom $DMESG | grep -i ide | cut -d: -f 1`
	if [ "" != "$IDECDROM" ]; then
		CNT=0
		for i in $IDECDROM; do
			if [ ! -b $ROOT/dev/$i ]; then
				case $i in
				"hda") mknod $ROOT/dev/hda b 3 0 ;;
				"hdb") mknod $ROOT/dev/hdb b 3 64 ;;
				"hdc") mknod $ROOT/dev/hdc b 22 0 ;;
				"hdd") mknod $ROOT/dev/hdd b 22 64 ;;
				*)
					echo "Undefined IDE CDROM: $IDECDROM"
				esac
			fi
			ln -sf $ROOT/dev/$i /dev/cdroms/cdrom$CNT
			CNT=$(($CNT+1))
		done
	fi

	SCSICDROM=`grep -i detected $DMESG | grep -i scsi | \
		grep -i cd-rom | cut -d' ' -f 4 | sed -e 's/sr/scd/'`
	if [ "" != "$SCSICDROM" ]; then
		CNT=0
		for i in $SCSICDROM; do
			if [ ! -b $ROOT/dev/$i ]; then
				mknod $ROOT/dev/$i b 11 $CNT
			fi
			ln -sf $ROOT/dev/$i $ROOT/dev/cdroms/cdrom$CNT
			CNT=$(($CNT+1))
		done
		if [ ! -e $ROOT/dev/cdrom ]; then
			ln -sf $ROOT/dev/scd0 $ROOT/dev/cdrom
		fi
	fi
fi
