Update of /cvsroot/leaf/src/The_UnNamed_One/apps/initrd
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv15949/apps/initrd

Added Files:
        README buildtool.cfg buildtool.mk common.cfg mdev.conf modules 
        modules.cd modules.ide modules.usb root.init 
Log Message:
initial import


--- NEW FILE: root.init ---
#!/bin/busybox sh

#  These are the system defaults. They may be overwritten in leaf.cfg
DEF_syst_size=6M        #  Size of root partition
DEF_log_size=2M         #  Size of /var/log partition
DEF_CONFIGDB=configdb
DEF_MODDB=moddb

Lecho () { echo "INIT: $@"; }
#verbose() { [ $VERBOSE ] && echo " * $@" }

LRPKG_ROOT=/var/lib/lrpkg
NEW_LRPKG_ROOT=/new_root/var/lib/lrpkg
BOOT=/boot

# Set the internal field separator.
IFS='   
'
# Remember it for later restoral.
OIFS="$IFS"

# Mount proc and sysfs
/bin/busybox mount -t proc /proc /proc
/bin/busybox mount -t sysfs /sys /sys

# Setup busybox.
/bin/busybox --install -s

# Tell the user who we are.
VERSION="`cat $LRPKG_ROOT/initrd.version`"
Lecho "LEAF - Initramfs - $VERSION"

# Process kernel command line and assign values to variables
for i in `cat /proc/cmdline` ; do
        case $i in
                *=*)    eval KCMD_$i ;;
                *)      eval KCMD_$i=$i ;;
        esac
done

VERBOSE=$KCMD_VERBOSE

# Load any modules required to boot
if [ -r $BOOT/etc/modules ] ; then
        # Loop over every line in modules
        [ "$VERBOSE" ] && Lecho "Loading modules..."

        # make sure there is a LF at the end
        (cat $BOOT/etc/modules; echo) |
        while read module args; do
                case "$module" in
                        \#*|"") continue;;
                esac
                [ "$VERBOSE" ] && Lecho "Loading $module"
                /sbin/insmod $BOOT/lib/modules/"$module".ko $args
        done
fi

# Wait for initialization of modules.
if [ "$KCMD_MODWAIT" ] ; then
        [ "$VERBOSE" ] && Lecho "Waiting for module initialization 
($KCMD_MODWAIT) ... "
        sleep $KCMD_MODWAIT
fi


[ "$VERBOSE" ] && Lecho "Populating /dev..."
mdev -s
# handle hotplug events
#echo /sbin/mdev > /proc/sys/kernel/hotplug

# Now we try to locate the leaf.cfg and slurp it in.
MNT="$LRPKG_ROOT/mnt"
mkdir $MNT

# Try to mount configuration device and read any leaf.cfg file
[ "$VERBOSE" ] && Lecho "Looking for leaf.cfg..."

IFS=:
set -- $KCMD_LEAFCFG
IFS="$OIFS"
if [ -b "$1" ] ; then
        [ "$VERBOSE" ] && Lecho "Trying to locate leaf.cfg: mount -nrt $2 $1 
$MNT"
        if mount -nrt $2 $1 $MNT ; then 
                [ -r $MNT/leaf.cfg ] && source $MNT/leaf.cfg
                umount $MNT
        fi
fi

# Set config variables, falling back to defaults
for i in LRP PKGPATH CONFIGDB MODDB syst_size tmp_size log_size; do
        eval $i=\"\${$i:-\${KCMD_$i:-\$DEF_$i}}\"
done

# Create our new root filesystem and switch to it.
mkdir /new_root
Lecho "Mounting a $syst_size TMPFS filesystem..."
mount -t tmpfs /dev/root /new_root -o size=$syst_size
# Copy over everything from the old root to the new root. And skip ourself.
for ii in /*
do
        case $ii in
                /new_root)      ;;
                /proc)  ;;
                /sys)   ;;
                /dev)   ;;
                /etc)   ;;
                /init)  ;;
                *)      cp -dpR $ii /new_root ;;
        esac
done
# Now do the switch to the new root.
cd /new_root
mkdir proc
mkdir sys
mkdir dev
#mkdir dev/inet
#mkdir dev/net
mkdir etc
mkdir tmp
mkdir mnt
mkdir nfs
mkdir var/lock
mkdir var/run

ln -s tmp var/tmp
ln -s tmp usr/tmp

ln -s bin/busybox init

[ "$VERBOSE" ] && Lecho "Generating /tmp & /var/log partitions ..."
mount -t tmpfs tmpfs /new_root/tmp -o defaults${tmp_size:+,size=$tmp_size}
mount -t tmpfs tmpfs /new_root/var/log -o size=$log_size

# Here we mount all the devices specified in $PKGPATH.
if [ -n "$PKGPATH" ];  then
        : >$NEW_LRPKG_ROOT/pkgpath.disks
        [ "$VERBOSE" ] && Lecho "PKGPATH: $PKGPATH"
        devcount=1
        IFS="$IFS,"
        for dev in ${PKGPATH}; do
                IFS=':'
                set -- ${dev}
                dev=$1
                fstype=$2
                mkdir /mnt$devcount
                IFS="$OIFS"
                [ "$VERBOSE" ] && Lecho "Mounting $dev on /mnt$devcount"
                if mount -rt $fstype $dev /mnt$devcount ; then
                        [ "$VERBOSE" ] && Lecho "Mounted $dev as $fstype"
                        echo "$dev $fstype" >>$NEW_LRPKG_ROOT/pkgpath.disks
                        devlist="$dev:+/mnt$devcount:-$fstype,$devlist"
                        rdevlist="$rdevlist,$dev:+/mnt$devcount:-$fstype"
                        if [ $devcount -eq 1 ] ; then 
                                echo 
"${KCMD_initrd%.lrp}">$NEW_LRPKG_ROOT/packages
                                #echo "${initrd%.lrp}">$NEW_LRPKG_ROOT/packages
                        fi
                fi
                devcount=$(expr $devcount + 1)
        done
        IFS="$OIFS"
else
        Lecho "PKGPATH is empty or unset. Can not install packages."
fi

# Delete trailing comma ...
devlist=${devlist%,}
# ... and delete leading comma.
rdevlist=${rdevlist#,}

# Unpack all .lrp files into our previously created root filesystem.
if [ ! "$LRP" = "" ]; then

        echo -n "LINUXRC: Installing -"
        
        echo configdb=$CONFIGDB >$NEW_LRPKG_ROOT/backup
        echo moddb=$MODDB >>$NEW_LRPKG_ROOT/backup

        IFS="$IFS,"
        for package_name in ${LRP} $CONFIGDB $MODDB; do
                usedevlist=$rdevlist
                found=0
                echo -n "  $package_name:"
                IFS=","
                for devtype in ${usedevlist}; do
                        # Extract device ...
                        dev="${devtype%:+*}"
                        # ... and mountpoint ...
                        mnt="${devtype%:-*}"
                        mnt="${mnt#*:+}"
                        # ... and filesystem type out of devtype.
                        fstype="${devtype#*:-}"
                        [ "$VERBOSE" ] && echo -n " dev: $dev mnt: $mnt fstype: 
$fsytpe package_name: $mnt/$package_name.lrp"
                        if [ $found -ne 1 ]; then
                                if [ -f $mnt/$package_name.lrp ]; then
                                        echo -n " $dev"
                                        gunzip -t $mnt/$package_name.lrp
                                        if [ $? -eq 0 ]; then
                                                tar -zxvpf 
$mnt/$package_name.lrp > $NEW_LRPKG_ROOT/$package_name.list
                                                #Update installed packages file
                                                [ $found -ne 1 ] && echo 
"$package_name">>$NEW_LRPKG_ROOT/packages
                                                #Calculate sha1sum
                                                if [ -f 
$NEW_LRPKG_ROOT/$package_name.local ] ; then
                                                    cat 
$NEW_LRPKG_ROOT/$package_name.local | while read file_name ; do
                                                        [ -e "$file_name" ] && 
find "$file_name" -type f | xargs sha1sum >> $NEW_LRPKG_ROOT/$package_name.sha1
                                                    done
                                                fi
                                                found=1
                                        else
                                                echo -n "(cpt!)"
                                                [ $found -eq 0 ] && found=2
                                        fi
                                fi
                        fi
                done
                if [ $found -eq 0 ]; then
                        echo -n " $package_name(nf!)"
                fi
        done
        IFS="$OIFS"
        echo " - Finished."
else
        Lecho "LRP= is empty or unset.  Can not install packages."
fi

# Can't hurt
sync
sleep 1

# Here we unmount all the devices specified in $PKGPATH.
IFS=","
for devtype in ${devlist}; do
        # Extract the mountpoint again.
        mnt="${devtype%:-*}"
        mnt="${mnt#*:+}"
        [ "$VERBOSE" ] && Lecho "Unmounting $mnt"
        umount $mnt
        [ "$VERBOSE" ] && Lecho "Removing $mnt"
        rmdir $mnt
done
IFS="$OIFS"

Lecho "Loaded Packages"

# Now pass control on to /sbin/init
# needed? also for console? Or remove /dev exclusion in cp to new_root and 
overwrite with mdev -s in userspace
mknod /new_root/dev/console c 5 1
mknod /new_root/dev/null c 1 3

#echo > /proc/sys/kernel/hotplug

umount /proc
umount /sys
exec switch_root /new_root /init

exit 0

--- NEW FILE: mdev.conf ---
# mdev config 


--- NEW FILE: modules.cd ---
floppy
serio
i8042
libps2
atkbd
# CD-ROM and HD support
cdrom
ide-core
ide-disk
ide-cd
ide-generic
isofs
vfat

--- NEW FILE: modules ---
floppy
serio
i8042
libps2
atkbd

--- NEW FILE: README ---
Insert in the /boot/etc/modules files the modules that you want to load
right after initrd is mounted.
This feature is generally used to give access to the media
where all the LEAF packages are stored.
For example to give access to an IDE hard disk 
your will have the following sequence

ide-core
ide-disk
ide-detect

The modules must be available in the /boot/lib/modules directory

--- NEW FILE: common.cfg ---
                        #<File>
                        #       Filename        = dev/console
                        #       Type            = device
                        #       devtype         = c 
                        #       major           = 5 
                        #       minor           = 1
                        #       Permissions     = 644
                        #</File>

                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/block/floppy.ko
                                Filename        = boot/lib/modules/floppy.ko
                                Type            = binary
                                Permissions = 644
                        </File>

                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/input/keyboard/atkbd.ko
                                Filename        = boot/lib/modules/atkbd.ko
                                Type            = binary
                                Permissions = 644
                        </File>

                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/input/serio/i8042.ko
                                Filename        = boot/lib/modules/i8042.ko
                                Type            = binary
                                Permissions = 644
                        </File>

                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/input/serio/serio.ko
                                Filename        = boot/lib/modules/serio.ko
                                Type            = binary
                                Permissions = 644
                        </File>

                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/input/serio/libps2.ko
                                Filename        = boot/lib/modules/libps2.ko
                                Type            = binary
                                Permissions = 644
                        </File>

                        <File>
                                Source          = boot/etc/mdev.conf
                                Filename        = etc/mdev.conf
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = lib/ld-uClibc-target.so
                                Filename        = lib/ld-uClibc-0.9.28.so
                                Type            = binary
                                Permissions     = 755
                        </File>
                        <File>
                                Source          = lib/libcrypt-0.9.28.so
                                Filename        = lib/libcrypt-0.9.28.so
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = lib/libuClibc-0.9.28.so
                                Filename        = lib/libuClibc-0.9.28.so
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Filename        = lib/libcrypt.so.0
                                Target          = lib/libcrypt-0.9.28.so
                                Type            = link
                        </File>
                        <File>
                                Filename        = lib/ld-uClibc.so.0
                                Target          = lib/ld-uClibc-0.9.28.so
                                Type            = link
                        </File>
                        <File>
                                Filename        = lib/libc.so.0
                                Target          = lib/libuClibc-0.9.28.so
                                Type            = link
                        </File>
                        <File>
                                Source          = bin/busybox
                                Filename        = bin/busybox
                                Type            = binary
                                Permissions     = 4755
                        </File>
                        <File>
                                Filename        = sbin
                                Type            = directory
                                Permissions = 755
                        </File>
                        <File>
                                Source          = boot/etc/README
                                Filename        = boot/etc/README
                                Type            = binary
#                               Type            = conf
#                               Description     = Readme first
                                Permissions     = 644
                        </File>
                        <File>
                                Filename        = boot/lib/modules
                                Type            = directory
                                Permissions = 755
                        </File>
                        <File>
                                Filename        = usr/bin
                                Type            = directory
                                Permissions = 755
                        </File>
                        <File>
                                Filename        = usr/sbin
                                Type            = directory
                                Permissions = 755
                        </File>
                        <File>
                                Filename        = var/log
                                Type            = directory
                                Permissions = 755
                        </File>
                        <File>
                                Source          = var/lib/lrpkg/root.init
                                Filename        = init
                                Type            = binary
                                Permissions     = 755
                        </File>
                        <File>
                                Filename        = proc
                                Type            = directory
                                Permissions     = 555
                        </File>
                        <File>
                                Filename        = sys
                                Type            = directory
                                Permissions     = 755
                        </File>

--- NEW FILE: buildtool.mk ---
# makefile for initrd
include $(MASTERMAKEFILE)

INITRD_DIR=.
INITRD_TARGET_DIR:=$(BT_BUILD_DIR)/config

$(INITRD_DIR)/.source:
        touch $(INITRD_DIR)/.source

source: $(INITRD_DIR)/.source
                        
$(INITRD_DIR)/.configured: $(INITRD_DIR)/.source
        touch $(INITRD_DIR)/.configured
                                                                 
$(INITRD_DIR)/.build: $(INITRD_DIR)/.configured
        mkdir -p $(INITRD_TARGET_DIR)
        mkdir -p $(INITRD_TARGET_DIR)/var/lib/lrpkg
        mkdir -p $(INITRD_TARGET_DIR)/boot/etc
        cp -a modules $(INITRD_TARGET_DIR)/boot/etc
        cp -a modules.ide $(INITRD_TARGET_DIR)/boot/etc 
        cp -a modules.cd $(INITRD_TARGET_DIR)/boot/etc  
        cp -a modules.usb $(INITRD_TARGET_DIR)/boot/etc 
        cp -a README $(INITRD_TARGET_DIR)/boot/etc      
#       cp -a root.blk.mk $(INITRD_TARGET_DIR)/var/lib/lrpkg    
#       cp -a root.dev.mk $(INITRD_TARGET_DIR)/var/lib/lrpkg
        cp -a root.init $(INITRD_TARGET_DIR)/var/lib/lrpkg
        cp -a mdev.conf $(INITRD_TARGET_DIR)/boot/etc/
        cp -a $(INITRD_TARGET_DIR)/* $(BT_STAGING_DIR)
        touch $(INITRD_DIR)/.build

build: $(INITRD_DIR)/.build
                                                                                
         
clean:
        rm -rf $(INITRD_TARGET_DIR)
        rm -f $(INITRD_DIR)/.build
        rm -f $(INITRD_DIR)/.configured
                                                                                
                                 
srcclean: clean
        rm -f $(INITRD_DIR)/.source
        rm -f $(INITRD_DIR)/root.init
        rm -f $(INITRD_DIR)/root.dev.mk
        rm -f $(INITRD_DIR)/root.blk.mk
        rm -f $(INITRD_DIR)/modules
        rm -f $(INITRD_DIR)/modules.ide 
        rm -f $(INITRD_DIR)/modules.cd
        rm -f $(INITRD_DIR)/modules.usb
        rm -f $(INITRD_DIR)/README
                                

--- NEW FILE: modules.ide ---
floppy
serio
i8042
libps2
atkbd
#IDE support
ide-core
ide-disk
ide-generic
vfat

--- NEW FILE: modules.usb ---
floppy
serio
i8042
libps2
atkbd
# USB support
usbcore
ide-core
usb-uhci
scsi_mod
usb-storage
sd_mod
vfat

--- NEW FILE: buildtool.cfg ---
<File buildtool.mk>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File mdev.conf>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File root.init>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File modules>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File modules.ide>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File modules.cd>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File modules.usb>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File README>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<File common.cfg>
  Server = cvs-sourceforge
  Revision = HEAD
  Directory = initrd
</File>

<Package>
        <initrd>
                packagetype = ramfs
                packagename = initrd

                Version = 1.0ALPHA1
                Revision = 0
                
                Help <<EOF
                LEAF The_UnNamed_One initial filesystem

                
                This is not an ordinary *.LRP package !
                LEAF package by __PACKAGER__, __BUILDDATE__
                EOF
                
                <Permissions>
                        Files = 644
                        Directories = 755
                </Permissions>

                <Owner>
                        Files = root:root
                        Directories = root:root
                </Owner>

                <Contents>
                        #include <common.cfg>
                        <File>
                                Source          = boot/etc/modules
                                Filename        = boot/etc/modules
                                Type            = binary
                                Description     = Modules to load before any 
other package
                                Permissions     = 644
                        </File>
                        
                </Contents>
        </initrd>

        <initrd_ide>
                packagetype = ramfs
                packagename = initrd

                Version = 1.0ALPHA1
                Revision = 0
                
                Help <<EOF
                LEAF The_UnNamed_One initial filesystem
                
                This is not an ordinary *.LRP package !
                LEAF package by __PACKAGER__, __BUILDDATE__
                EOF
                
                <Permissions>
                        Files = 644
                        Directories = 755
                </Permissions>

                <Owner>
                        Files = root:root
                        Directories = root:root
                </Owner>

                <Contents>
                        #include <common.cfg>
                        <File>
                                Source          = boot/etc/modules.ide
                                Filename        = boot/etc/modules
                                Type            = binary
                                Description     = Modules to load before any 
other package
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-core.ko
                                Filename        = boot/lib/modules/ide-core.ko
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-generic.ko
                                Filename        = 
boot/lib/modules/ide-generic.ko
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-disk.ko
                                Filename        = boot/lib/modules/ide-disk.ko
                                Type            = binary
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/fs/vfat/vfat.ko
                                Filename        = boot/lib/modules/vfat.ko
                                Type            = binary
                                Permissions     = 644
                        </File>
                </Contents>
        </initrd_ide>

        <initrd_ide_cd>
                packagetype = ramfs
                packagename = initrd

                Version = 1.0ALPHA1
                Revision = 0
                
                Help <<EOF
                LEAF The_UnNamed_One initial filesystem
                
                This is not an ordinary *.LRP package !
                LEAF package by __PACKAGER__, __BUILDDATE__
                EOF
                
                <Permissions>
                        Files = 644
                        Directories = 755
                </Permissions>

                <Owner>
                        Files = root:root
                        Directories = root:root
                </Owner>

                <Contents>
                        #include <common.cfg>
                        <File>
                                Source          = boot/etc/modules.cd
                                Filename        = boot/etc/modules
                                Type            = binary
                                Description     = Modules to load before any 
other package
                                Permissions     = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-core.ko
                                Filename        = boot/lib/modules/ide-core.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-generic.ko
                                Filename        = 
boot/lib/modules/ide-generic.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/ide/ide-disk.ko
                                Filename        = boot/lib/modules/ide-disk.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/fs/vfat/vfat.ko
                                Filename        = boot/lib/modules/vfat.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/fs/isofs/isofs.ko
                                Filename        = boot/lib/modules/isofs.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                        <File>
                                Source          = 
lib/modules/2.6.24.2/kernel/drivers/cdrom/cdrom.ko
                                Filename        = boot/lib/modules/cdrom.ko
                                Type            = binary
                                Permissions = 644
                        </File>
                </Contents>
        </initrd_ide_cd>
</Package>


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
leaf-cvs-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/leaf-cvs-commits

Reply via email to