diff --git a/README.rst b/README.rst index d771a14..007e7f3 100644 --- a/README.rst +++ b/README.rst @@ -74,6 +74,8 @@ binit_net_route= Optional static on-link route(s) to add (can be given multiple times). binit_net_gw= Optional gateway config, if you want to connect via WAN. If ``binit_net_addr`` is set to ``dhcp``, it will be configured automatically. +binit_net_ns= + Optional dns servers. (can be given multiple times for multiple dns servers). If ``binit_net_addr`` is set to ``dhcp``, it will be configured automatically. rw Mount rootfs in read-write. Default: read-only. mdev diff --git a/sourceroot/bin/binit-udhcpc-script b/sourceroot/bin/binit-udhcpc-script index 3a07ee6..84787dd 100755 --- a/sourceroot/bin/binit-udhcpc-script +++ b/sourceroot/bin/binit-udhcpc-script @@ -10,5 +10,6 @@ case "$1" in : > "${results}" printf 'binit_net_addr=%s\n' "${ip}/${mask}" >>"${results}" printf 'binit_net_gw=%s\n' "${router}" >>"${results}" + printf 'binit_net_nss=%s\n' "${dns}" >>"${results}" ;; esac diff --git a/sourceroot/functions.sh b/sourceroot/functions.sh index 854307b..96b7139 100755 --- a/sourceroot/functions.sh +++ b/sourceroot/functions.sh @@ -160,6 +160,10 @@ process_commandline_options() { ro|rw) root_rw_ro=$i ;; + binit_net_ns\=*) + # support multiple binit_net_ns=. + binit_net_nss="${binit_net_nss} ${i#*=}" + ;; binit_net_route\=*) # support multiple binit_net_route=. binit_net_routes="${binit_net_routes} ${i#*=}" @@ -417,6 +421,16 @@ SetupNetwork() { einfo "Setting default routing via '${binit_net_gw}' ..." run ip route add default via "${binit_net_gw}" dev "${binit_net_if}" fi + + if [ -n "${binit_net_nss}" ]; then + einfo "Adding nameservers: ${binit_net_nss} ..." + set -f + for i in ${binit_net_nss}; do + printf 'nameserver %s\n' "${i}" >> /etc/resolv.conf + done + set +f + fi + } setup_sshd() {