X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=wrt-setup-local;h=642c1935150c17dd756a08740f8ed4d94a5c1f04;hb=3f20eea52b8d7f665b2c3b483921f15a0e48d7ee;hp=f5711d074b8aebd81b95cfcfbcc0d159e0b09ef3;hpb=8bf6d9c4cc9ec88976c62af33f32c0c660e977e0;p=automated-distro-installer diff --git a/wrt-setup-local b/wrt-setup-local index f5711d0..642c193 100755 --- a/wrt-setup-local +++ b/wrt-setup-local @@ -21,11 +21,12 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR usage() { cat < $(date +%s) )); then - opkg update + if ! opkg update; then + echo "$0: warning: opkg update failed" >&2 + fi + p_updated=true fi } pi() { - for x in "$@"; do - if [[ ! $(opkg list-installed "$x") ]]; then + to_install=() + for p in "$@"; do + pname=${p##*/} + pname=${pname%%_*} + if [[ ! $(opkg list-installed "$pname") ]]; then + to_install+=($p) pmirror - opkg install "$@" fi done + if [[ $to_install ]]; then + opkg install ${to_install[@]} + fi } v() { @@ -116,6 +148,7 @@ v() { ####### end uci example ##### uset() { + printf "+ uset %s\n" "$*" local key="$1" local val="$2" local service="${key%%.*}" @@ -130,6 +163,23 @@ uset() { fi } +udel() { + printf "+ udel %s\n" "$*" + local key="$1" + local val="$2" + local service="${key%%.*}" + restart_var=${service}_restart + if [[ ! ${!restart_var} ]]; then + eval $restart_var=false + fi + if uci get "$key" &>/dev/null; then + v uci set "$key"="$val" + uci commit $service + eval $restart_var=true + fi +} + + ### network config ### @@ -138,7 +188,16 @@ lan=10.0.0.0 if $test; then ssid="gnuv3" lan=10.1.0.0 +elif [[ $hostname == cmc ]]; then + ssid=Svenska + lan=10.2.0.0 fi + +if [[ $rkey ]]; then + key=${rkey[$rmac]} +fi +: ${key:=pictionary49} + mask=255.255.0.0 cidr=16 l=${lan%.0} @@ -171,10 +230,83 @@ EOFOUTER chmod +x /usr/bin/archlike-pxe-mount sed -i '/^root:/s,/bin/ash$,/bin/bash,' /etc/passwd + + + +uset dropbear.@dropbear[0].PasswordAuth 0 +uset dropbear.@dropbear[0].RootPasswordAuth 0 +uset dropbear.@dropbear[0].Port 2220 +if ! cmp -s /root/dropbear_rsa_host_key /etc/dropbear/dropbear_rsa_host_key; then + cp /root/dropbear_rsa_host_key /etc/dropbear/dropbear_rsa_host_key + dropbear_restart=true +fi + +if $dropbear_restart; then + v /etc/init.d/dropbear restart +fi + + +uset network.lan.ipaddr $l.$lanip +uset network.lan.netmask $mask +if $dev2; then + uset network.lan.gateway $l.1 + uset network.wan.proto none + uset network.wan6.proto none + /etc/init.d/dnsmasq stop + /etc/init.d/dnsmasq disable + /etc/init.d/odhcpd stop + /etc/init.d/odhcpd disable + rm -f /etc/resolv.conf + cat >/etc/resolv.conf <<'EOF' +nameserver 8.8.8.8 +nameserver 8.8.4.4 +EOF + + # things i tried to keep dnsmasq running but not enabled except local dns, + # but it didnt work right and i dont need it anyways. + # uset dhcp.wan.ignore $dev2 # default is false + # uset dhcp.lan.ignore $dev2 # default is false + # uset dhcp.@dnsmasq[0].interface lo + # uset dhcp.@dnsmasq[0].localuse 0 + # uset dhcp.@dnsmasq[0].resolvfile /etc/dnsmasq.conf + # uset dhcp.@dnsmasq[0].noresolv 1 + # todo: populate /etc/resolv.conf with a static value + +else + # these are the defaults + uset network.lan.gateway '' + uset network.wan.proto dhcp + uset network.wan6.proto dhcpv6 + /etc/init.d/dnsmasq start + # todo: figure out why this returns 1 + /etc/init.d/dnsmasq enable ||: + /etc/init.d/odhcpd start + /etc/init.d/odhcpd enable +fi + +wireless_restart=false +for x in 0 1; do + uset wireless.default_radio$x.ssid "$ssid" + uset wireless.default_radio$x.key $key + uset wireless.default_radio$x.encryption psk2 + if [[ $mac ]]; then + uset wireless.default_radio$x.macaddr $macpre$((macsuf + 2*x)) + fi + # secondary device has wireless disabled + uset wireless.radio$x.disabled $dev2 +done + +if $wireless_restart; then + v wifi +fi + + + # usb, screen, relay are for libremanage +# rsync is for brc v pi kmod-usb-storage block-mount kmod-fs-ext4 nfs-kernel-server \ tcpdump openvpn-openssl adblock libusb-compat /root/relay_1.0-1_mips_24kc.ipk \ - screen kmod-usb-serial-cp210x kmod-usb-serial-ftdi + screen kmod-usb-serial-cp210x kmod-usb-serial-ftdi rsync cat >/etc/libremanage.conf </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 -fi - uset dhcp.@dnsmasq[0].domain b8.nz uset dhcp.@dnsmasq[0].local /b8.nz/ uset system.@system[0].hostname $hostname @@ -498,6 +652,14 @@ EOF # to start. mkdir -p /mnt/usb/tftpboot v cedit /etc/dnsmasq.conf <