X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=wrt-setup-local;h=43628bc8bee6f049a19807c2fc0c549ad45ab01c;hb=0d7f79362d601b278236cd1c533c7333e342b54a;hp=f5dbe502f30dfe04adb58f0154aeedc082de872a;hpb=ac4e0089e245c96a388b8fcdd92fc05da3399694;p=automated-distro-installer diff --git a/wrt-setup-local b/wrt-setup-local index f5dbe50..43628bc 100755 --- a/wrt-setup-local +++ b/wrt-setup-local @@ -18,51 +18,55 @@ set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR - pmirror() { - # background: upgrading all packages is not recommended because it - # doesn't go into the firmware. build new firmware if you want - # lots of upgrades. I think /tmp/opkg-lists is a pre openwrt 14 location. - f=(/tmp/opkg-lists/* /var/opkg-lists/*) - if ! (( $(date -r $f +%s) + 60*60*24 > $(date +%s) )); then - opkg update - fi + # background: upgrading all packages is not recommended because it + # doesn't go into the firmware. build new firmware if you want + # lots of upgrades. I think /tmp/opkg-lists is a pre openwrt 14 location. + f=(/var/opkg-lists/*) + if ! (( $(date -r $f +%s) + 60*60*24 > $(date +%s) )); then + opkg update + fi } pi() { - for x in "$@"; do - if [[ ! $(opkg list-installed "$x") ]]; then - pmirror - opkg install "$@" - fi - done + for x in "$@"; do + if [[ ! $(opkg list-installed "$x") ]]; then + pmirror + opkg install "$@" + fi + done } v() { - printf "+ %s\n" "$*" - "$@" + printf "+ %s\n" "$*" + "$@" } ### network config ### -l=10.0.0 +ssid="check out gnu.org" lan=10.0.0.0 mask=255.255.0.0 +l=${lan%.0} + +passwd -l root ||: #already locked fails -cat >/usr/bin/arch-pxe-mount <<'EOFOUTER' +cat >/usr/bin/archlike-pxe-mount <<'EOFOUTER' #!/bin/bash # symlinks are collapsed for nfs mount points, so use a bind mount. # tried putting this in /etc/config/fstab, -# then doig block mount, it didn't work. This doesn't persist across reboots, +# then doing block mount, it didn't work. This doesn't persist across reboots, # todo: figure that out -d=/run/archiso/bootmnt -cat > /etc/fstab <>/etc/fstab </dev/null || mount $d +done /etc/init.d/nfsd restart EOFOUTER -chmod +x /usr/bin/arch-pxe-mount +chmod +x /usr/bin/archlike-pxe-mount cat >.profile <<'EOF' # changing login shell emits spam on ssh single commands & scp @@ -75,9 +79,6 @@ v pi kmod-usb-storage block-mount kmod-fs-ext4 nfs-kernel-server \ -sed -ri "s/option[[:space:]]+encryption[[:space:]].*/option encryption psk2/;s/option[[:space:]]+key.*/option key pictionary49/" /etc/config/wireless -sed -i '/^[[:space:]]*option disabled/d' /etc/config/wireless -v wifi v /etc/init.d/fstab enable ||: @@ -87,9 +88,10 @@ v /etc/init.d/fstab enable ||: # 255 == module already loaded for mod in scsi_mod sd_mod; do v modprobe $mod || [[ $? == 255 ]]; done -# for arch pxe. The default settings in the installer expect to find -# the NFS at /run/archiso/bootmnt +# for archlike pxe. The default settings in the installer expect to find +# the NFS at one of these dirs mkdir -p /run/archiso/bootmnt +mkdir -p /run/parabolaiso/bootmnt # todo: at some later time, i found /mnt/usb not mounted, watch to see if # that is the case after running this or rebooting. @@ -128,6 +130,7 @@ cedit /etc/exports </dev/null) ]]; then + v uci delete wireless.default_radio$x.disabled + wireless_restart=true + fi +done + +if $wireless_restart; then + uci commit wireless + v wifi +fi + ########## openvpn exampl ########## missing firewall settings for routing lan @@ -177,6 +206,7 @@ v /etc/init.d/nfsd enable # EOF + v cedit /etc/config/network </dev/null) ]]; then - # default is '/tmp/resolv.conf.auto', we switch to the dnsmasq default of - # /etc/resolv.conf. not sure why I did this. - v uci delete dhcp.@dnsmasq[0].resolvfile - uci commit dhcp - dnsmasq_restart=true + # default is '/tmp/resolv.conf.auto', we switch to the dnsmasq default of + # /etc/resolv.conf. not sure why I did this. + v uci delete dhcp.@dnsmasq[0].resolvfile + uci commit dhcp + dnsmasq_restart=true fi if [[ $(uci get dhcp.@dnsmasq[0].domain) != b8.nz ]]; then - v uci set dhcp.@dnsmasq[0].domain=b8.nz - uci commit dhcp - dnsmasq_restart=true + v uci set dhcp.@dnsmasq[0].domain=b8.nz + uci commit dhcp + dnsmasq_restart=true fi -if [[ $(uci get dhcp.@dnsmasq[0].local) != b8.nz ]]; then - v uci set dhcp.@dnsmasq[0].local=/b8.nz/ - uci commit dhcp - dnsmasq_restart=true +if [[ $(uci get dhcp.@dnsmasq[0].local) != /b8.nz/ ]]; then + v uci set dhcp.@dnsmasq[0].local=/b8.nz/ + uci commit dhcp + dnsmasq_restart=true fi if [[ $(uci get system.@system[0].hostname) != wrt ]]; then - v uci set system.@system[0].hostname=wrt - uci commit system + v uci set system.@system[0].hostname=wrt + uci commit system fi @@ -405,9 +436,27 @@ tftp-root=/mnt/usb/tftpboot EOF if $dnsmasq_restart; then - v /etc/init.d/dnsmasq restart + v /etc/init.d/dnsmasq restart fi if $firewall_restart; then - v /etc/init.d/firewall restart + v /etc/init.d/firewall restart +fi + + +reboot=false +if [[ $(uci get network.lan.ipaddr) != $l.1 ]]; then + v uci set network.lan.ipaddr=$l.1 + uci commit network + reboot=true +fi +if [[ $(uci get network.lan.netmask) != $mask ]]; then + v uci set network.lan.netmask=$mask + uci commit network + reboot=true +fi + +if $reboot; then + reboot fi +exit 0