_common.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. #=================================================
  3. # COMMON VARIABLES
  4. #=================================================
  5. pkg_dependencies="sipcalc hostapd iptables iw dnsmasq kmod"
  6. nonfree_firmware_packages="firmware-atheros firmware-realtek firmware-ralink firmware-libertas atmel-firmware firmware-zd1211"
  7. free_firmware_packages="firmware-ath9k-htc"
  8. #=================================================
  9. # PERSONAL HELPERS
  10. #=================================================
  11. function check_armbian_nonfree_conflict()
  12. {
  13. # If we're on armbian, force $firmware_nonfree
  14. # because armbian-firmware conflicts with firmware-misc-nonfree package
  15. if dpkg --list | grep -q armbian-firmware; then
  16. echo "You are running Armbian and firmware-misc-nonfree are known to conflict with armbian-firwmare. " >&2
  17. echo "The package firmware-misc-nonfree is a dependency of firmware-ralink, so firmware-ralink will NOT be installed" >&2
  18. echo "You can manually install firmware-ralink with 'apt -o Dpkg::Options::=\"--force-overwrite\" firmware-ralink'" >&2
  19. nonfree_firmware_packages=$(echo $nonfree_firmware_packages | sed 's/ firmware-ralink//')
  20. fi
  21. }
  22. function hot_reload_usb_wifi_cards()
  23. {
  24. modulesList="acx-mac80211 ar5523 ar9170usb at76c50x-usb at76_usb ath9k_htc carl9170 orinoco_usb p54usb prism2_usb r8712u r8192s_usb r8192u_usb rndis_wlan rt2500usb rt2800usb rt2870sta rt73usb rtl8187 rtl8192cu usb8xxx vt6656_stage zd1201 zd1211rw"
  25. modprobe --quiet --remove $modulesList || true
  26. possibleUsbDevicesNeedingReload=$(dmesg | grep -Pio '(?<=usb )[0-9-]+(?=:.*firmware)' | sort | uniq)
  27. for usbPath in $possibleUsbDevicesNeedingReload; do
  28. if [[ -f "/sys/bus/usb/devices/$usbPath/authorized" ]]; then
  29. echo "Try to reload driver for usb $usbPath" >&2
  30. echo 0 > /sys/bus/usb/devices/$usbPath/authorized
  31. echo 1 > /sys/bus/usb/devices/$usbPath/authorized
  32. # Wait for driver reloading
  33. sleep 2
  34. fi
  35. done
  36. }
  37. #=================================================
  38. # EXPERIMENTAL HELPERS
  39. #=================================================
  40. #=================================================
  41. # FUTURE OFFICIAL HELPERS
  42. #=================================================