#!/bin/sh

#############################################################################
# Program: ramdisk.build
# Purpose: Build the initial RAM disk boot image for
#          Slackware on ARM ('Slack.ARMed')
# Author : Stuart Winter <stuart@polplex.co.uk>
#          Heavily based on documentation at
#          http://roland.seuhs.com/en/index.php/Development/LiMa/CDB89712
# Date...: 01/Feb/2003
############################################################################
# Notes
#######
# [1] We need a Kernel with loopback driver support compiled in/loaded as 
#     a module
############################################################################

TARGET_RAMDISK="/tmp/slackarm/ramdisk"
mkdir -pm700 ${TARGET_RAMDISK}
cd ${TARGET_RAMDISK}

##########################
# Create device nodes
##########################
mkdir dev && cd dev
mknod watchdog c 10 130
mknod zero c 1 5
mknod full c 1 7
mknod kmem c 1 2
mknod mem c 1 1
mknod null c 1 3
mknod rtc c 10 135

mknod mtd0 c 90 0
mknod mtd1 c 90 1
mknod mtd2 c 90 2
mknod mtd3 c 90 3
mknod mtdblock0 b 31 0
mknod mtdblock1 b 31 1
mknod mtdblock2 b 31 2
mknod mtdblock3 b 31 3
chmod 600 mtd*

mknod cuam0 c 205 16
mknod cuam1 c 205 17

mknod ttyp0 c 3 0
mknod ttyp1 c 3 1
mknod ttyp2 c 3 2
mknod ttyp3 c 3 3
mknod ttyp4 c 3 4
mknod ttyp5 c 3 5
mknod ttyp6 c 3 6
mknod ttyp7 c 3 7
mknod ttyp8 c 3 8
mknod ttyp9 c 3 9
mknod ttyAM0 c 204 16
mknod ttyAM1 c 204 17
ln -s ttyAM0 ttyS0
ln -s ttyAM1 ttyS1
mknod tty c 5 0
mknod console c 5 1

mknod ptyp0 c 2 0
mknod ptyp1 c 2 1
mknod ptyp2 c 2 2
mknod ptyp3 c 2 3
mknod ptyp4 c 2 4
mknod ptyp5 c 2 5
mknod ptyp6 c 2 6
mknod ptyp7 c 2 7
mknod ptyp8 c 2 8
mknod ptyp9 c 2 9

mknod ram0 b 1 0
mknod ram1 b 1 1
mknod ram2 b 1 2
mknod ram3 b 1 3
chmod 660 ram*
#################################################################

################################
# Create basic /etc directory
################################
cd ${TARGET_RAMDISK} 
cp -a ${ORIGPATH}/source/etc-master  .
mv etc-master etc

mkdir tmp
chmod 1777 tmp
mkdir var var/log var/run
touch var/run/utmp
touch var/log/messages

mkdir proc

#######

Build the ramdisk
cd $ARM_ROOT/ramdisk
dd if=/dev/zero of=ramdisk.img bs=1024 count=2048

su root
mke2fs -N 500 ramdisk.img
mount -o loop ramdisk.img mnt
(cd target; tar cf - * ) | (cd mnt; tar xvf -)
lynx .
umount mnt
exit


