From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-qt1-x844.google.com ([2607:f8b0:4864:20::844]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1iY9j0-0003Pu-6m for ptxdist@pengutronix.de; Fri, 22 Nov 2019 15:15:54 +0100 Received: by mail-qt1-x844.google.com with SMTP id o49so7950261qta.7 for ; Fri, 22 Nov 2019 06:15:54 -0800 (PST) From: Alexander Aring Date: Fri, 22 Nov 2019 09:15:34 -0500 Message-Id: <20191122141534.5373-1-alex.aring@gmail.com> MIME-Version: 1.0 Subject: [ptxdist] [PATCH] config: boardsetup: add nfs client specifications List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Alexander Aring This patch adds additional client specifications for the nfsroot mount. The default value is the same as it was hardcoded before. This offers to change this line without maintaining the whole file in a separate BSP. The client specifications is part of the official export format which is set right after the directory which is exported, for more information lookup: https://linux.die.net/man/8/unfsd Signed-off-by: Alexander Aring --- config/boardsetup/Kconfig | 17 +++++++++++++++++ scripts/lib/ptxd_make_nfsd.sh | 7 ++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/config/boardsetup/Kconfig b/config/boardsetup/Kconfig index 8ffa27224..2d3791807 100644 --- a/config/boardsetup/Kconfig +++ b/config/boardsetup/Kconfig @@ -39,6 +39,23 @@ config BOARDSETUP_NFSROOT_PATH above given path is exported by nfs server. This field will be ignored if you don't use nfsroot. +config BOARDSETUP_NFSROOT_CLIENT_SPECIFICATIONS + string + prompt "nfsroot client specifications" + default "(rw,no_root_squash)" + help + Specify the list of client specifications for the nfsroot export. + Example: "1.2.3.4(rw) 192.168.2.0/24(ro,all_squash)" + + Clients can be specified using either a hostname, an IP address, or an IP + network. Networks can be given by specifying the number of leading 1 bits + in the netmask or by giving the full netmask. If the hostname is empty, the + directory is exported to everyone. + + Options can follow a client specification and have to be enclosed in + parenthesis, with the opening paren directly following the client name or + address. If no options are given, ro and root_squash are enabled by default. + config BOARDSETUP_TFTP_PATH string prompt "tftp path" diff --git a/scripts/lib/ptxd_make_nfsd.sh b/scripts/lib/ptxd_make_nfsd.sh index 0bc9c906b..f7d8136d0 100644 --- a/scripts/lib/ptxd_make_nfsd.sh +++ b/scripts/lib/ptxd_make_nfsd.sh @@ -8,6 +8,7 @@ ptxd_make_nfsd_exec() { local port + local client_specficiations local root="/$(basename "${ptx_nfsroot}")" local base="$(dirname "${ptx_nfsroot}")" @@ -15,11 +16,15 @@ ptxd_make_nfsd_exec() { port=2049 fi + if ! client_specficiations="$(ptxd_get_kconfig "${PTXDIST_BOARDSETUP}" "PTXCONF_BOARDSETUP_NFSROOT_CLIENT_SPECIFICATIONS")"; then + client_specficiations="(rw,no_root_squash)" + fi + echo echo "Mount rootfs with nfsroot=${root},v3,tcp,port=${port},mountport=${port}" echo - echo "/ (rw,no_root_squash)" > "${PTXDIST_TEMPDIR}/exports" && + echo "/ ${client_specficiations}" > "${PTXDIST_TEMPDIR}/exports" && UNFS_BASE="${base}" unfsd -e "${PTXDIST_TEMPDIR}/exports" -n ${port} -m ${port} -p -d } export -f ptxd_make_nfsd_exec -- 2.20.1 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de