mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
initramfs-framework: add nfsrootfs module
nfsrootfs module mounts rootfs via nfs parsing "nfsroot" and "ip" cmdline options. (From OE-Core rev: d1737f2dabac5e338061863c78a91b4c115365c7) Signed-off-by: Oleksii Konoplitskyi <okonopli@cisco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
cfd0c39fbf
commit
f94c0c8e6f
@@ -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}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@ inherit allarch
|
|||||||
|
|
||||||
SRC_URI = "file://init \
|
SRC_URI = "file://init \
|
||||||
file://exec \
|
file://exec \
|
||||||
|
file://nfsrootfs \
|
||||||
file://rootfs \
|
file://rootfs \
|
||||||
file://finish \
|
file://finish \
|
||||||
file://mdev \
|
file://mdev \
|
||||||
@@ -24,6 +25,7 @@ do_install() {
|
|||||||
|
|
||||||
# base
|
# base
|
||||||
install -m 0755 ${WORKDIR}/init ${D}/init
|
install -m 0755 ${WORKDIR}/init ${D}/init
|
||||||
|
install -m 0755 ${WORKDIR}/nfsrootfs ${D}/init.d/85-nfsrootfs
|
||||||
install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
|
install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
|
||||||
install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
|
install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
|
||||||
|
|
||||||
@@ -53,6 +55,7 @@ PACKAGES = "${PN}-base \
|
|||||||
initramfs-module-mdev \
|
initramfs-module-mdev \
|
||||||
initramfs-module-udev \
|
initramfs-module-udev \
|
||||||
initramfs-module-e2fs \
|
initramfs-module-e2fs \
|
||||||
|
initramfs-module-nfsrootfs \
|
||||||
initramfs-module-rootfs \
|
initramfs-module-rootfs \
|
||||||
initramfs-module-debug \
|
initramfs-module-debug \
|
||||||
"
|
"
|
||||||
@@ -83,6 +86,10 @@ SUMMARY_initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystem
|
|||||||
RDEPENDS_initramfs-module-e2fs = "${PN}-base"
|
RDEPENDS_initramfs-module-e2fs = "${PN}-base"
|
||||||
FILES_initramfs-module-e2fs = "/init.d/10-e2fs"
|
FILES_initramfs-module-e2fs = "/init.d/10-e2fs"
|
||||||
|
|
||||||
|
SUMMARY_initramfs-module-nfsrootfs = "initramfs support for locating and mounting the root partition via nfs"
|
||||||
|
RDEPENDS_initramfs-module-nfsrootfs = "${PN}-base"
|
||||||
|
FILES_initramfs-module-nfsrootfs = "/init.d/85-nfsrootfs"
|
||||||
|
|
||||||
SUMMARY_initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
|
SUMMARY_initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
|
||||||
RDEPENDS_initramfs-module-rootfs = "${PN}-base"
|
RDEPENDS_initramfs-module-rootfs = "${PN}-base"
|
||||||
FILES_initramfs-module-rootfs = "/init.d/90-rootfs"
|
FILES_initramfs-module-rootfs = "/init.d/90-rootfs"
|
||||||
|
|||||||
Reference in New Issue
Block a user