diff --git a/install b/install
index 68cf226..e5d7438 100755
--- a/install
+++ b/install
@@ -36,6 +36,7 @@ declare -i skipFlash=0
declare -i version
cpuFreqDef="/etc/default/cpufrequtils"
+crda="/etc/default/crda"
defaultGovSearch="^CONFIG_CPU_FREQ_DEFAULT_GOV_"
ioniceCron="/etc/cron.d/make_nas_processes_faster"
ioniceScript="/usr/sbin/omv-ionice"
@@ -46,6 +47,7 @@ omvSources="/etc/apt/sources.list.d/openmediavault.list"
rfkill="/usr/sbin/rfkill"
smbOptions="min receivefile size = 16384\nwrite cache size = 524288\ngetwd cache = yes\nsocket options = TCP_NODELAY IPTOS_LOWDELAY"
url="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/"
+wpaConf="/etc/wpa_supplicant/wpa_supplicant.conf"
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
@@ -395,65 +397,56 @@ if [ ${version} -gt 4 ]; then
echo "Removing network-manager and dhcpcd5 ..."
apt-get -y --autoremove purge network-manager dhcpcd5
- echo "Disable predictive network adapter name ..."
- rule="/etc/udev/rules.d/80-net-setup-link.rules"
- if [ -e "${rule}" ]; then
- rm -f ${rule}
- fi
- ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
-
echo "Enable and start systemd-resolved ..."
systemctl enable systemd-resolved
systemctl start systemd-resolved
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
- nic="eth0"
- if grep -q "${nic}" ${OMV_CONFIG_FILE}; then
- echo "${nic} already found in database. Skipping..."
- else
- echo "Adding ${nic} to openmedivault database ..."
- jq --null-input --compact-output \
- "{uuid: \"${OMV_CONFIGOBJECT_NEW_UUID}\", devicename: \"${nic}\", method: \"dhcp\", method6: \"dhcp\"}" | \
- omv-confdbadm update "conf.system.network.interface" -
- cfg=1
- fi
-
if [ -f "${rfkill}" ]; then
echo "Unblocking wifi with rfkill ..."
${rfkill} unblock all
fi
- nic="wlan0"
- if grep -q "${nic}" ${OMV_CONFIG_FILE}; then
- echo "${nic} already found in database. Skipping..."
- elif grep -qw "${nic}" /proc/net/dev; then
- wpaConf="/etc/wpa_supplicant/wpa_supplicant.conf"
- crda="/etc/default/crda"
-
- if [ -f "${wpaConf}" ]; then
- country=$(awk -F'=' '/country=/{gsub(/["\r]/,""); print $NF}' ${wpaConf})
- wifiName=$(awk -F'=' '/ssid="/{st=index($0,"="); ssid=substr($0,st+1); gsub(/["\r]/,"",ssid); print ssid}' ${wpaConf})
- wifiPass=$(awk -F'=' '/psk="/{st=index($0,"="); pass=substr($0,st+1); gsub(/["\r]/,"",pass); print pass}' ${wpaConf})
-
- if [ -n "${country}" ] && [ -n "${wifiName}" ] && [ -n "${wifiPass}" ]; then
- if [ -f "${crda}" ]; then
- awk -i inplace -F'=' -v country="$country" '/REGDOMAIN=/{$0=$1"="country} {print $0}' ${crda}
- fi
- echo "Adding ${nic} to openmedivault database ..."
- jq --null-input --compact-output \
- "{uuid: \"${OMV_CONFIGOBJECT_NEW_UUID}\", devicename: \"${nic}\", type: \"wireless\", method: \"dhcp\", method6: \"dhcp\", wpassid: \"${wifiName}\", wpapsk: \"${wifiPass}\"}" | \
- omv-confdbadm update "conf.system.network.interface" -
- cfg=1
- fi
+ for nic in $(ls /sys/class/net | grep -v lo); do
+ if grep -q "${nic}" ${OMV_CONFIG_FILE}; then
+ echo "${nic} already found in database. Skipping..."
+ continue
fi
- fi
+
+ if udevadm info /sys/class/net/${nic} | grep -q wlan; then
+ if [ -f "${wpaConf}" ]; then
+ country=$(awk -F'=' '/country=/{gsub(/["\r]/,""); print $NF}' ${wpaConf})
+ wifiName=$(awk -F'=' '/ssid="/{st=index($0,"="); ssid=substr($0,st+1); gsub(/["\r]/,"",ssid); print ssid}' ${wpaConf})
+ wifiPass=$(awk -F'=' '/psk="/{st=index($0,"="); pass=substr($0,st+1); gsub(/["\r]/,"",pass); print pass}' ${wpaConf})
+
+ if [ -n "${country}" ] && [ -n "${wifiName}" ] && [ -n "${wifiPass}" ]; then
+ if [ -f "${crda}" ]; then
+ awk -i inplace -F'=' -v country="$country" '/REGDOMAIN=/{$0=$1"="country} {print $0}' ${crda}
+ fi
+ echo "Adding ${nic} to openmedivault database ..."
+ jq --null-input --compact-output \
+ "{uuid: \"${OMV_CONFIGOBJECT_NEW_UUID}\", devicename: \"${nic}\", type: \"wireless\", method: \"dhcp\", method6: \"dhcp\", wpassid: \"${wifiName}\", wpapsk: \"${wifiPass}\"}" | \
+ omv-confdbadm update "conf.system.network.interface" -
+ cfg=1
+ fi
+ fi
+ else
+ echo "Adding ${nic} to openmedivault database ..."
+ jq --null-input --compact-output \
+ "{uuid: \"${OMV_CONFIGOBJECT_NEW_UUID}\", devicename: \"${nic}\", method: \"dhcp\", method6: \"dhcp\"}" | \
+ omv-confdbadm update "conf.system.network.interface" -
+ cfg=1
+ fi
+ done
if [ ${cfg} -eq 1 ]; then
echo "IP address may change and you could lose connection if running this script via ssd."
# create config files
${confCmd} ${network}
+
+ reboot
fi
echo "It is recommended to reboot and then setup the network adapter in the openmediavault web interface."