summaryrefslogtreecommitdiff
path: root/debian/initramfs-tools/usr
diff options
context:
space:
mode:
authorJeff Bailey <jbailey@ubuntu.com>2005-06-08 21:13:41 +0000
committerJeff Bailey <jbailey@ubuntu.com>2005-06-08 21:13:41 +0000
commitde9c780f57ae626f05ec1c971c56648250cba03c (patch)
tree585d8515ef623e64b2800cc4266920fff1564940 /debian/initramfs-tools/usr
downloadinitramfs-tools-de9c780f57ae626f05ec1c971c56648250cba03c.tar.gz
initramfs-tools-de9c780f57ae626f05ec1c971c56648250cba03c.zip
Initial checkin
Diffstat (limited to 'debian/initramfs-tools/usr')
-rw-r--r--debian/initramfs-tools/usr/sbin/mkinitramfs93
-rw-r--r--debian/initramfs-tools/usr/share/doc/initramfs-tools/TODO8
-rw-r--r--debian/initramfs-tools/usr/share/doc/initramfs-tools/changelog.gzbin0 -> 784 bytes
-rw-r--r--debian/initramfs-tools/usr/share/doc/initramfs-tools/copyright10
-rw-r--r--debian/initramfs-tools/usr/share/doc/initramfs-tools/examples/modules7
-rw-r--r--debian/initramfs-tools/usr/share/initramfs-tools/init64
-rw-r--r--debian/initramfs-tools/usr/share/initramfs-tools/scripts/functions9
-rw-r--r--debian/initramfs-tools/usr/share/initramfs-tools/scripts/local15
-rw-r--r--debian/initramfs-tools/usr/share/initramfs-tools/scripts/nfs11
9 files changed, 217 insertions, 0 deletions
diff --git a/debian/initramfs-tools/usr/sbin/mkinitramfs b/debian/initramfs-tools/usr/sbin/mkinitramfs
new file mode 100644
index 0000000..593c69e
--- /dev/null
+++ b/debian/initramfs-tools/usr/sbin/mkinitramfs
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+. /etc/mkinitramfs/initramfs.conf
+
+usage()
+{
+ echo "-o Output"
+ echo "-v version"
+ echo "-k Keep temp files"
+ exit 1
+}
+
+# Defaults
+keep="n"
+
+while getopts "ko:v:" flag; do
+ case $flag in
+ o)
+ outfile="${OPTARG}"
+ ;;
+ v)
+ version="${OPTARG}"
+ ;;
+ k)
+ keep="y"
+ ;;
+ esac
+done
+
+if [ x${outfile} = x ]; then
+ usage
+fi
+
+if [ -d ${outfile} ]; then
+ echo "${outfile} is a directory"
+ exit 1
+fi
+
+if [ ! -e /lib/modules/${version} ]; then
+ echo "Cannot find /lib/modules/${version}"
+ exit 1
+fi
+
+TMPDIR=$(mktemp -d) || exit 1
+mkdir -p ${TMPDIR}/modules ${TMPDIR}/conf ${TMPDIR}/etc
+mkdir -p ${TMPDIR}/bin ${TMPDIR}/lib ${TMPDIR}/scripts
+
+for x in $(sed -e '/^#/d' /etc/mkinitramfs/modules); do
+ for y in $(modprobe --set-version=${version} --show-depends ${x} | awk '{ print $2 }'); do
+ # Prune duplicates
+ if [ -e ${TMPDIR}/modules/$(basename ${y}) ]; then
+ continue
+ fi
+
+ ln -s ${y} ${TMPDIR}/modules
+ echo $(basename ${y}) >>${TMPDIR}/conf/modules
+ done
+done
+
+# Have to do each file, because cpio --dereference doesn't recurse down
+# symlinks.
+
+ln -s /usr/lib/klibc/bin/* ${TMPDIR}/bin
+ln -s /usr/lib/klibc/lib/* ${TMPDIR}/lib
+ln -s /usr/share/initramfs-tools/init ${TMPDIR}/init
+ln -s /usr/share/initramfs-tools/scripts/* ${TMPDIR}/scripts
+ln -s /etc/mkinitramfs/initramfs.conf ${TMPDIR}/conf
+ln -s /etc/udev ${TMPDIR}/etc
+
+# Hack until udev is built with klibc
+ln -s /sbin/udev ${TMPDIR}/bin
+ln -s /sbin/udevstart ${TMPDIR}/bin
+ln -s /lib/libc.so.* ${TMPDIR}/lib
+ln -s /lib/ld*.so.* ${TMPDIR}/lib
+rm ${TMPDIR}/lib/*lsb*
+
+# Busybox
+if [ "x${BUSYBOX}" = "xy" ]; then
+ rm ${TMPDIR}/bin/sh
+ ln -s /bin/busybox ${TMPDIR}/bin/sh
+fi
+
+# Raid
+ln -s /sbin/mdadm ${TMPDIR}/bin
+ln -s /sbin/mdrun ${TMPDIR}/bin
+
+(cd ${TMPDIR} && find . | cpio --quiet --dereference -o -H newc | gzip -9 >${outfile})
+
+if [ "${keep}" = "y" ]; then
+ echo "Working files in ${TMPDIR}"
+else
+ rm -rf "${TMPDIR}"
+fi
diff --git a/debian/initramfs-tools/usr/share/doc/initramfs-tools/TODO b/debian/initramfs-tools/usr/share/doc/initramfs-tools/TODO
new file mode 100644
index 0000000..bf7e07d
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/doc/initramfs-tools/TODO
@@ -0,0 +1,8 @@
+TODO
+====
+
+ o Get udev compiled against klibc
+
+ o Integrate hotplug-ng
+
+ o Add option to make-kpkg to use mkinitramfs
diff --git a/debian/initramfs-tools/usr/share/doc/initramfs-tools/changelog.gz b/debian/initramfs-tools/usr/share/doc/initramfs-tools/changelog.gz
new file mode 100644
index 0000000..c89e14f
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/doc/initramfs-tools/changelog.gz
Binary files differ
diff --git a/debian/initramfs-tools/usr/share/doc/initramfs-tools/copyright b/debian/initramfs-tools/usr/share/doc/initramfs-tools/copyright
new file mode 100644
index 0000000..cdc2919
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/doc/initramfs-tools/copyright
@@ -0,0 +1,10 @@
+This package was debianized by Jeff Bailey <jbailey@raspberryginger.com> on
+Thu, 27 Jan 2005 15:23:52 -0500.
+
+Copyright:
+
+Author: Jeff Bailey, with some pieces for initrd-tools
+
+License:
+
+PUBLIC DOMAIN
diff --git a/debian/initramfs-tools/usr/share/doc/initramfs-tools/examples/modules b/debian/initramfs-tools/usr/share/doc/initramfs-tools/examples/modules
new file mode 100644
index 0000000..ee1310a
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/doc/initramfs-tools/examples/modules
@@ -0,0 +1,7 @@
+# List of modules that you want to include in your initramfs.
+# This might be good choices:
+#
+#ide-disk
+#ide-generic
+#ext2
+#ext3
diff --git a/debian/initramfs-tools/usr/share/initramfs-tools/init b/debian/initramfs-tools/usr/share/initramfs-tools/init
new file mode 100644
index 0000000..c3e4887
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/initramfs-tools/init
@@ -0,0 +1,64 @@
+#!/bin/sh -x
+mkdir /sys
+mkdir /proc
+mkdir /tmp
+mount -t sysfs sysfs /sys
+mount -t proc proc /proc
+
+. /conf/initramfs.conf
+. /scripts/functions
+
+# Parse command line options
+init=/sbin/init
+root=
+ro=-r
+break=
+rootmnt=/root
+for x in $(cat /proc/cmdline); do
+ case $x in
+ init=*)
+ INIT=${x#init=}
+ ;;
+ root=*)
+ ROOT=${x#root=}
+ ;;
+ nfsroot=*)
+ NFSROOT=${x#nfsroot=}
+ ;;
+ boot=*)
+ BOOT=${x#boot=}
+ ;;
+ ro)
+ ro=-r
+ ;;
+ rw)
+ ro=-w
+ ;;
+ break)
+ break=yes
+ ;;
+ esac
+done
+
+. /scripts/${BOOT}
+
+# Load the modules
+# FIXME - do module options here
+for x in $(cat /conf/modules); do
+ insmod /modules/$x
+done
+
+# Populate /dev tree
+udevstart
+
+if [ x${break} = xyes ]; then
+ panic "Spawning shell within the initramfs"
+fi
+
+mountroot
+
+umount /sys
+umount /proc
+
+# Chain to real filesystem
+exec run-init ${rootmnt} ${init} "$@"
diff --git a/debian/initramfs-tools/usr/share/initramfs-tools/scripts/functions b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/functions
new file mode 100644
index 0000000..19560ba
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/functions
@@ -0,0 +1,9 @@
+panic()
+{
+ echo $@
+ if [ -e /bin/busybox ]; then
+ FS1='(initramfs) ' exec /bin/busybox sh
+ else
+ FS1='(initramfs) ' exec /bin/sh
+ fi
+}
diff --git a/debian/initramfs-tools/usr/share/initramfs-tools/scripts/local b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/local
new file mode 100644
index 0000000..572f185
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/local
@@ -0,0 +1,15 @@
+# Local filesystem mounting
+
+# Parameter: Where to mount the filesystem
+mountroot ()
+{
+ # Get the root filesystem type
+ if [ ! -e ${ROOT} ]; then
+ panic "ALERT! ${ROOT} does not exist. Dropping to a shell!"
+ fi
+
+ eval $(fstype < ${ROOT})
+
+ # Mount root
+ mount ${ro} -t ${FSTYPE} ${ROOT} ${rootmnt}
+}
diff --git a/debian/initramfs-tools/usr/share/initramfs-tools/scripts/nfs b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/nfs
new file mode 100644
index 0000000..1225c4d
--- /dev/null
+++ b/debian/initramfs-tools/usr/share/initramfs-tools/scripts/nfs
@@ -0,0 +1,11 @@
+
+# Paramter: Where the root should be mounted
+mountroot ()
+{
+ ipconfig ${DEVICE}
+ . /tmp/net-${DEVICE}.conf
+ if [ "x${NFSROOT}" = "xauto" ]; then
+ NFSROOT=${ROOTSERVER}:${ROOTPATH}
+ fi
+ nfsmount ${NFSROOT} ${rootmnt}
+}