summaryrefslogtreecommitdiff
path: root/packages/initrdscripts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/initrdscripts')
-rw-r--r--packages/initrdscripts/.mtn2git_empty0
-rw-r--r--packages/initrdscripts/devimage/.mtn2git_empty0
-rw-r--r--packages/initrdscripts/devimage/devimage.sh12
-rw-r--r--packages/initrdscripts/devimage/dropbear_rsa_host_keybin0 -> 426 bytes
-rw-r--r--packages/initrdscripts/devimage/passwd1
-rw-r--r--packages/initrdscripts/devimage_0.1.bb11
-rw-r--r--packages/initrdscripts/files/.mtn2git_empty0
-rw-r--r--packages/initrdscripts/files/blockboot.sh8
-rw-r--r--packages/initrdscripts/files/init.sh65
-rw-r--r--packages/initrdscripts/files/loopboot.sh54
-rw-r--r--packages/initrdscripts/files/nfsboot.sh43
-rw-r--r--packages/initrdscripts/initramfs-jffs2/.mtn2git_empty0
-rw-r--r--packages/initrdscripts/initramfs-jffs2/jffs2boot.sh18
-rw-r--r--packages/initrdscripts/initramfs-jffs2_0.1.bb8
-rw-r--r--packages/initrdscripts/initramfs-module-block_0.1.bb11
-rw-r--r--packages/initrdscripts/initramfs-module-loop_0.1.bb13
-rw-r--r--packages/initrdscripts/initramfs-module-nfs_0.1.bb12
-rw-r--r--packages/initrdscripts/initramfs-uniboot_0.2.bb11
18 files changed, 267 insertions, 0 deletions
diff --git a/packages/initrdscripts/.mtn2git_empty b/packages/initrdscripts/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/initrdscripts/.mtn2git_empty
diff --git a/packages/initrdscripts/devimage/.mtn2git_empty b/packages/initrdscripts/devimage/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/initrdscripts/devimage/.mtn2git_empty
diff --git a/packages/initrdscripts/devimage/devimage.sh b/packages/initrdscripts/devimage/devimage.sh
new file mode 100644
index 0000000000..e85debf245
--- /dev/null
+++ b/packages/initrdscripts/devimage/devimage.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+mkdir /proc
+mount -t proc proc /proc
+mkdir /sys
+mount -t sysfs sysfs /sys
+mkdir -p /dev/pts
+mount -t devpts devpts /dev/pts
+
+/usr/sbin/dropbear -E
+
+/bin/sh
diff --git a/packages/initrdscripts/devimage/dropbear_rsa_host_key b/packages/initrdscripts/devimage/dropbear_rsa_host_key
new file mode 100644
index 0000000000..18d832332e
--- /dev/null
+++ b/packages/initrdscripts/devimage/dropbear_rsa_host_key
Binary files differ
diff --git a/packages/initrdscripts/devimage/passwd b/packages/initrdscripts/devimage/passwd
new file mode 100644
index 0000000000..233d68fae1
--- /dev/null
+++ b/packages/initrdscripts/devimage/passwd
@@ -0,0 +1 @@
+root::0:0:root:/:/bin/sh
diff --git a/packages/initrdscripts/devimage_0.1.bb b/packages/initrdscripts/devimage_0.1.bb
new file mode 100644
index 0000000000..8eb6fa2d83
--- /dev/null
+++ b/packages/initrdscripts/devimage_0.1.bb
@@ -0,0 +1,11 @@
+SRC_URI = "file://devimage.sh file://passwd file://dropbear_rsa_host_key"
+PR = "r1"
+
+do_install() {
+ install -m 0755 ${WORKDIR}/devimage.sh ${D}/init
+ install -d ${D}/etc/dropbear
+ install -m 0600 ${WORKDIR}/dropbear_rsa_host_key ${D}/etc/dropbear/
+ install -m 0644 ${WORKDIR}/passwd ${D}/etc/
+}
+
+FILES_${PN} += " /init /etc/*"
diff --git a/packages/initrdscripts/files/.mtn2git_empty b/packages/initrdscripts/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/initrdscripts/files/.mtn2git_empty
diff --git a/packages/initrdscripts/files/blockboot.sh b/packages/initrdscripts/files/blockboot.sh
new file mode 100644
index 0000000000..567f7e29b3
--- /dev/null
+++ b/packages/initrdscripts/files/blockboot.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Allow booting from a normal block device.
+
+if [ -e "$ROOT_DEVICE" ]; then
+ echo "booting from: $ROOT_DEVICE"
+ mount "$ROOT_DEVICE" /mnt
+ BOOT_ROOT=/mnt
+fi
diff --git a/packages/initrdscripts/files/init.sh b/packages/initrdscripts/files/init.sh
new file mode 100644
index 0000000000..8c9803f21b
--- /dev/null
+++ b/packages/initrdscripts/files/init.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+MODULE_DIR=/initrd.d
+BOOT_ROOT=
+ROOT_DEVICE=/dev/null
+
+early_setup() {
+ mkdir /proc
+ mount -t proc proc /proc
+ mkdir /mnt
+
+ echo -n "creating device nodes: "
+ grep '^ *[0-9]' /proc/partitions | while read major minor blocks dev
+ do
+ if [ ! -e /dev/$dev ]; then
+ echo -n "$dev "
+ [ -e /dev/$dev ] || mknod /dev/$dev b $major $minor
+ fi
+ done
+ echo
+}
+
+read_args() {
+ CMDLINE=`cat /proc/cmdline`
+ for arg in $CMDLINE; do
+ optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
+ case $arg in
+ root=*)
+ ROOT_DEVICE=$optarg ;;
+ rootdelay=*)
+ rootdelay=$optarg ;;
+ esac
+ done
+}
+
+load_modules() {
+ for module in $MODULE_DIR/*; do
+ source $module
+ done
+}
+
+boot_root() {
+ cd $BOOT_ROOT
+ exec switch_root -c /dev/console $BOOT_ROOT /sbin/init
+}
+
+boot_failed() {
+ echo "No valid root device was specified. Please add root=/dev/something to"
+ echo "the kernel command-line and try again."
+ echo
+ exec sh
+}
+
+echo "Starting initramfs boot..."
+early_setup
+read_args
+
+if [ -n "$rootdelay" ]; then
+ echo "Waiting $rootdelay seconds for devices to settle..."
+ sleep $rootdelay
+fi
+
+load_modules
+[ -n "$BOOT_ROOT" ] && boot_root
+boot_failed
diff --git a/packages/initrdscripts/files/loopboot.sh b/packages/initrdscripts/files/loopboot.sh
new file mode 100644
index 0000000000..55a1948db8
--- /dev/null
+++ b/packages/initrdscripts/files/loopboot.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+if [ "$ROOT_DEVICE" = "/dev/loop" ]; then
+ loop_mount() {
+ loopdev=/dev/loop$loop_num
+ mountpt=/mnt/loop$loop_num
+
+ [ -e $loopdev ] || mknod $loopdev b 7 $loop_num
+
+ # if only one argument was specified, let it be path not dev
+ if [ -z "$path" ] && [ -n "$dev" ]; then
+ path="$dev"
+ dev=""
+ fi
+ [ -z "$offset" ] && offset=0
+
+ if [ -n "$dev" ]; then
+ hostpt=`expr "$dev" : '.*/\([^/]*\)'`
+ [ -z "$hostpt" ] && hostpt="$dev"
+
+ echo "Mounting $dev on $hostpt"
+ mkdir $hostpt
+ mount $dev $hostpt
+ cd $hostpt
+ fi
+
+ echo "Loopback setup of $path (offset $offset)"
+ losetup -o "$offset" "$loopdev" "$path"
+
+ echo "Mounting $loopdev on $mountpt"
+ mkdir "$mountpt"
+ mount "$loopdev" "$mountpt"
+ cd "$mountpt"
+ BOOT_ROOT="$mountpt"
+ loop_num=`expr "$loop_num" + 1`
+ }
+
+ modprobe vfat
+ modprobe loop
+
+ loop_num=0
+
+ for arg in $CMDLINE; do
+ optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
+ echo $arg xxx $optarg
+ case $arg in
+ looproot=*)
+ dev=`expr "$optarg" : '\([^:]*\).*'`
+ path=`expr "$optarg" : '[^:]*:\([^:]*\).*'`
+ offset=`expr "$optarg" : '[^:]*:[^:]*:\([^:]*\).*'`
+ loop_mount ;;
+ esac
+ done
+fi
diff --git a/packages/initrdscripts/files/nfsboot.sh b/packages/initrdscripts/files/nfsboot.sh
new file mode 100644
index 0000000000..5129a53ebb
--- /dev/null
+++ b/packages/initrdscripts/files/nfsboot.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+if [ "$ROOT_DEVICE" = "/dev/nfs" ]; then
+
+ # These correspond to what kernel itself uses
+ # DO NOT CHANGE!
+ NFS_OPTIONS="-o nfsvers=2,nolock"
+
+ for arg in $CMDLINE; do
+ echo $arg
+ optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
+ echo $optarg
+ case $arg in
+ nfsroot=*)
+ nfsroot=$optarg ;;
+ ip=*)
+ ip=$optarg ;;
+ esac
+ done
+
+ echo $ip | (IFS=: read client_ip server_ip gw_ip netmask hostname device autoconf; \
+ echo client_ip=$client_ip;
+ echo server_ip=$server_ip;
+ echo gw_ip=$gw_ip;
+ echo netmask=$netmask;
+ echo hostname=$hostname;
+ echo device=$device;
+ echo autoconf=$autoconf;
+
+ case "$device" in
+ usb*)
+ echo "USB"
+ modprobe g_ether
+ ;;
+ esac
+
+ ifconfig $device $client_ip
+ )
+
+ echo "booting from NFS: $nfsroot"
+ mount -t nfs $NFS_OPTIONS $nfsroot /mnt
+ BOOT_ROOT=/mnt
+fi
diff --git a/packages/initrdscripts/initramfs-jffs2/.mtn2git_empty b/packages/initrdscripts/initramfs-jffs2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/initrdscripts/initramfs-jffs2/.mtn2git_empty
diff --git a/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh b/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh
new file mode 100644
index 0000000000..81077eeae5
--- /dev/null
+++ b/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+echo "Starting initrd boot..."
+mkdir /proc
+mount -t proc proc /proc
+
+modprobe mtdram total_size=24576 erase_size=256
+sleep 1
+
+ID=`grep "mtdram test device" /proc/mtd | cut -d: -f1| cut -b4-`
+
+cat /initrd.jffs2 >/dev/mtdblock$ID
+
+mkdir /mnt
+mount -t jffs2 /dev/mtdblock$ID /mnt
+
+cd /mnt
+exec switch_root -c /dev/console /mnt /sbin/init
diff --git a/packages/initrdscripts/initramfs-jffs2_0.1.bb b/packages/initrdscripts/initramfs-jffs2_0.1.bb
new file mode 100644
index 0000000000..78034c99c9
--- /dev/null
+++ b/packages/initrdscripts/initramfs-jffs2_0.1.bb
@@ -0,0 +1,8 @@
+SRC_URI = "file://jffs2boot.sh"
+PR = "r0"
+
+do_install() {
+ install -m 0755 ${WORKDIR}/jffs2boot.sh ${D}/init
+}
+
+FILES_${PN} += " /init "
diff --git a/packages/initrdscripts/initramfs-module-block_0.1.bb b/packages/initrdscripts/initramfs-module-block_0.1.bb
new file mode 100644
index 0000000000..a0cb2fd7fa
--- /dev/null
+++ b/packages/initrdscripts/initramfs-module-block_0.1.bb
@@ -0,0 +1,11 @@
+SRC_URI = "file://blockboot.sh"
+PR = "r2"
+RDEPENDS = "initramfs-uniboot"
+DESCRIPTION = "An initramfs module for booting off normal block devices."
+
+do_install() {
+ install -d ${D}/initrd.d
+ install -m 0755 ${WORKDIR}/blockboot.sh ${D}/initrd.d/block
+}
+
+FILES_${PN} += " /initrd.d/block "
diff --git a/packages/initrdscripts/initramfs-module-loop_0.1.bb b/packages/initrdscripts/initramfs-module-loop_0.1.bb
new file mode 100644
index 0000000000..d4e5aa038f
--- /dev/null
+++ b/packages/initrdscripts/initramfs-module-loop_0.1.bb
@@ -0,0 +1,13 @@
+SRC_URI = "file://loopboot.sh"
+PR = "r3"
+DESCRIPTION = "An initramfs module for booting a filesystem image by loopback \
+ mounting it."
+RDEPENDS = "initramfs-uniboot"
+RRECOMMENDS = "kernel-module-loop kernel-module-vfat"
+
+do_install() {
+ install -d ${D}/initrd.d
+ install -m 0755 ${WORKDIR}/loopboot.sh ${D}/initrd.d/loop
+}
+
+FILES_${PN} += " /initrd.d/loop "
diff --git a/packages/initrdscripts/initramfs-module-nfs_0.1.bb b/packages/initrdscripts/initramfs-module-nfs_0.1.bb
new file mode 100644
index 0000000000..24284d6c5f
--- /dev/null
+++ b/packages/initrdscripts/initramfs-module-nfs_0.1.bb
@@ -0,0 +1,12 @@
+SRC_URI = "file://nfsboot.sh"
+PR = "r4"
+DESCRIPTION = "An initramfs module for booting via NFS."
+RDEPENDS = "initramfs-uniboot"
+RRECOMMENDS = "kernel-module-g-ether kernel-module-nfs"
+
+do_install() {
+ install -d ${D}/initrd.d
+ install -m 0755 ${WORKDIR}/nfsboot.sh ${D}/initrd.d/nfs
+}
+
+FILES_${PN} += " /initrd.d/nfs "
diff --git a/packages/initrdscripts/initramfs-uniboot_0.2.bb b/packages/initrdscripts/initramfs-uniboot_0.2.bb
new file mode 100644
index 0000000000..46ba06ff9a
--- /dev/null
+++ b/packages/initrdscripts/initramfs-uniboot_0.2.bb
@@ -0,0 +1,11 @@
+SRC_URI = "file://init.sh"
+PR = "r1"
+DESCRIPTON = "A modular initramfs init script system."
+RDEPENDS = "busybox-static"
+RRECOMMENDS = "kernel-module-uinput"
+
+do_install() {
+ install -m 0755 ${WORKDIR}/init.sh ${D}/init
+}
+
+FILES_${PN} += " /init "