diff options
Diffstat (limited to 'poky/meta/recipes-core/initrdscripts/initramfs-framework')
-rwxr-xr-x | poky/meta/recipes-core/initrdscripts/initramfs-framework/init | 2 | ||||
-rw-r--r-- | poky/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs | 48 |
2 files changed, 49 insertions, 1 deletions
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-framework/init b/poky/meta/recipes-core/initrdscripts/initramfs-framework/init index 37527a840..3c7e09422 100755 --- a/poky/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/poky/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -84,7 +84,7 @@ mount -t sysfs sysfs /sys # populate bootparam environment for p in `cat /proc/cmdline`; do opt=`echo $p | cut -d'=' -f1` - opt=`echo $opt | tr '.-' '__'` + opt=`echo $opt | sed -e 'y/.-/__/'` if [ "`echo $p | cut -d'=' -f1`" = "$p" ]; then eval "bootparam_${opt}=true" else diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs b/poky/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs new file mode 100644 index 000000000..e67ee4c25 --- /dev/null +++ b/poky/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs @@ -0,0 +1,48 @@ +#!/bin/sh + +nfsrootfs_enabled() { + if [ ${bootparam_root} != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then + return 1 + fi + return 0 +} + +nfsrootfs_run() { + local nfs_opts + local location + local flags + local server_ip + + nfs_opts="" + if [ "${bootparam_nfsroot#*,}" != "${bootparam_nfsroot}" ]; then + nfs_opts="-o ${bootparam_nfsroot#*,}" + fi + + location="${bootparam_nfsroot%%,*}" + if [ "${location#*:}" = "${location}" ]; then + # server-ip not given. Get server ip from ip option + server_ip="" + if [ "${bootparam_ip#*:}" != "${bootparam_ip}" ]; then + server_ip=$(echo "$bootparam_ip" | cut -d: -f2) + fi + + if [ -z "$server_ip" ]; then + fatal "Server IP is not set. Update ip or nfsroot options." + fi + location=${server_ip}:${location} + fi + + flags="-o nolock" + if [ -n "$bootparam_ro" ] && ! echo "$bootparam_rootflags" | grep -w -q "ro"; then + if [ -n "$bootparam_rootflags" ]; then + bootparam_rootflags="$bootparam_rootflags," + fi + bootparam_rootflags="${bootparam_rootflags}ro" + fi + if [ -n "$bootparam_rootflags" ]; then + flags="$flags -o $bootparam_rootflags" + fi + + mount -t nfs ${flags} ${nfs_opts} ${location} ${ROOTFS_DIR} +} + |