slitaz-tools annotate tinyutils/tazhw @ rev 939
tazbox: fix subox icon when ~/.local/share/applications is absent; fix working with freegeoip; write full list of icons used; all other files: 2015 and insert blank lines.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Apr 17 07:35:02 2015 +0300 (2015-04-17) |
parents | b0d5fdb1e5f3 |
children | 6ca520c64f35 |
rev | line source |
---|---|
pankso@299 | 1 #!/bin/sh |
pankso@299 | 2 # |
pankso@299 | 3 # SliTaz Hardware configuration tool. Auto-detect and configure in a |
paul@317 | 4 # simple way all PCI, PCMCIA and USB devices. Some Wireless Adapters |
paul@317 | 5 # need non-free firmware not installed by default. Users must use the |
paul@835 | 6 # option --get-firmware to force installation. GUI uses Yad and is |
paul@317 | 7 # called by args such as all box functions. |
pankso@299 | 8 # |
al@939 | 9 # (c) 2009-2015 SliTaz GNU/Linux - GNU GPL v3 |
pankso@299 | 10 # |
al@813 | 11 # Authors: Christophe Lincoln <pankso@slitaz.org> |
al@813 | 12 # Rohit Joshi <jozee@slitaz.org> |
jozee@457 | 13 # |
al@939 | 14 |
al@813 | 15 . /lib/libtaz.sh |
pankso@830 | 16 export TEXTDOMAIN='slitaz-tools' # i18n text mode |
pankso@299 | 17 |
al@813 | 18 usage() { |
al@813 | 19 cat << EOT |
al@813 | 20 |
al@813 | 21 $(_n 'SliTaz Hardware configuration') |
al@813 | 22 |
al@813 | 23 $(boldify "$(_n 'Usage:')") $(basename $0) [$(_n 'command')] [--$(_n 'option')] |
al@813 | 24 |
al@813 | 25 $(boldify "$(_n 'Commands:')") |
al@813 | 26 usage $(_n 'Print this short usage.') |
al@813 | 27 init $(_n 'Used at boot time to configure devices.') |
al@813 | 28 setup $(_n 'Setup hardware devices.') |
al@813 | 29 detect-pci $(_n 'Detect all PCI devices.') |
al@813 | 30 detect-usb $(_n 'Detect all USB devices.') |
al@813 | 31 detected-modules $(_n 'List all detected Kernel modules.') |
al@813 | 32 |
al@813 | 33 $(boldify "$(_n 'Options:')") |
al@813 | 34 --get-firmware $(_n 'Get and install non-free firmware (PCI and USB).') |
al@813 | 35 |
al@813 | 36 EOT |
pankso@299 | 37 } |
pankso@299 | 38 |
al@939 | 39 |
al@813 | 40 check_firmware() { |
pankso@299 | 41 if [ -x /usr/bin/get-$mod-firmware ]; then |
pankso@299 | 42 if [ ! -d /var/lib/tazpkg/installed/$mod-firmware ]; then |
paul@811 | 43 # We need an active connection to install firmware and we |
pankso@299 | 44 # only install firmware if specified from cmdline. |
pankso@299 | 45 if ifconfig | grep -q "inet addr"; then |
al@813 | 46 # Ensure module is not loaded and get files. |
pankso@299 | 47 if [ "$firmware" == "get" ]; then |
pankso@299 | 48 rmmod $mod 2>/dev/null |
pankso@299 | 49 get-$mod-firmware |
pankso@299 | 50 else |
al@813 | 51 _ '* Use --get-firmware option to install missing files.' |
pankso@299 | 52 fi |
pankso@299 | 53 else |
al@813 | 54 _ '* No active connection to get and install firmware.' |
pankso@299 | 55 fi |
pankso@299 | 56 else |
al@813 | 57 _ '> Firmware in use: $mod-firmware' |
pankso@299 | 58 fi |
pankso@299 | 59 fi |
pankso@299 | 60 } |
pankso@299 | 61 |
al@939 | 62 |
al@813 | 63 load_module() { |
pankso@299 | 64 if ! lsmod | grep -q "^$mod"; then |
pankso@829 | 65 # Check if builtin, loaded or missing |
pankso@829 | 66 if modprobe $mod 2>/dev/null; then |
pankso@829 | 67 if zcat /proc/config.gz | fgrep -i $mod | fgrep -q '=y'; then |
pankso@829 | 68 _ '* Builtin module : $mod' |
pankso@829 | 69 unset mod |
pankso@829 | 70 else |
pankso@829 | 71 _ "* Loaded module : $mod" |
pankso@829 | 72 fi |
pankso@829 | 73 else |
pankso@829 | 74 if zcat /proc/config.gz | fgrep -i $mod | fgrep -q '=y'; then |
pankso@829 | 75 _ '* Builtin module : $mod' |
pankso@829 | 76 unset mod |
pankso@829 | 77 else |
pankso@829 | 78 _ '! Missing module : $mod' |
pankso@829 | 79 fi |
gokhlayeh@705 | 80 fi |
pankso@299 | 81 else |
pankso@829 | 82 _ '> Module in use : $mod' |
pankso@299 | 83 fi |
pankso@829 | 84 # Add it to load automatically at next boot. |
pankso@829 | 85 if ! echo "$LOAD_MODULES" | grep -q "$mod"; then |
pankso@829 | 86 sed -i s/"LOAD_MODULES=\"$LOAD_MODULES\""/"LOAD_MODULES=\"$LOAD_MODULES $mod\""/ \ |
pankso@829 | 87 /etc/rcS.conf |
pankso@829 | 88 fi |
pankso@829 | 89 . /etc/rcS.conf |
pankso@299 | 90 } |
pankso@299 | 91 |
al@939 | 92 |
pankso@299 | 93 # Detect PCI devices and load kernel module only at first boot, |
pankso@299 | 94 # in LiveCD mode or with the command 'detect-pci'. |
al@939 | 95 |
al@813 | 96 detect_pci_devices() { |
pankso@299 | 97 if [ ! -s /var/lib/detected-modules ]; then |
pankso@299 | 98 . /etc/rcS.conf |
pankso@299 | 99 # We need module_name to match output of lsmod. |
pankso@829 | 100 list=$(lspci -k | grep "driver" | cut -d ":" -f 2 | sed s/-/_/g) |
pankso@299 | 101 echo "$list" > /var/lib/detected-modules |
pankso@829 | 102 for mod in $(cat /var/lib/detected-modules | uniq) |
pankso@829 | 103 do |
pankso@299 | 104 check_firmware |
pankso@299 | 105 load_module |
pankso@299 | 106 done |
pankso@299 | 107 fi |
pankso@299 | 108 } |
pankso@299 | 109 |
al@939 | 110 |
pankso@299 | 111 # Detect all USB devices. |
al@939 | 112 |
al@813 | 113 detect_usb_devices() { |
pascal@834 | 114 if [ -e /sys/bus/usb/devices/usb/usb1 ]; then |
pankso@832 | 115 for product in /sys/bus/usb/devices/*/product |
pankso@832 | 116 do |
pankso@832 | 117 path=$(dirname $product) |
pankso@832 | 118 product=$(cat $product) |
pankso@832 | 119 config=$(cat $path/configuration) |
pankso@832 | 120 debug "$path" |
pankso@832 | 121 . $path/[0-9]*/uevent |
pankso@832 | 122 [ ! "$DRIVER" ] && DRIVER="(none)" |
pankso@832 | 123 echo "$product $config $(indent 40 $DRIVER)" |
pankso@832 | 124 unset DRIVER |
pankso@299 | 125 done |
pankso@299 | 126 fi |
pankso@299 | 127 } |
pankso@299 | 128 |
al@939 | 129 |
pankso@299 | 130 # Get firmware used by check_firmware() |
al@939 | 131 |
pankso@299 | 132 if [ "$2" == "--get-firmware" ]; then |
pankso@299 | 133 firmware='get' |
pankso@299 | 134 fi |
al@813 | 135 |
al@939 | 136 |
pankso@299 | 137 # What to do. |
al@939 | 138 |
pankso@299 | 139 case "$1" in |
pankso@830 | 140 -i|init) |
pankso@299 | 141 check_root |
al@813 | 142 _ 'Detecting PCI devices Kernel modules...' |
pankso@299 | 143 detect_pci_devices |
al@813 | 144 _ 'Detecting USB devices Kernel modules...' |
pankso@326 | 145 detect_usb_devices ;; |
pankso@830 | 146 -dp|detect-pci) |
pankso@299 | 147 check_root |
al@813 | 148 newline; _ 'Detected PCI devices Kernel modules'; separator |
pankso@299 | 149 rm -f /var/lib/detected-modules |
pankso@299 | 150 detect_pci_devices |
al@813 | 151 separator; newline ;; |
pankso@830 | 152 -du|detect-usb) |
pankso@299 | 153 check_root |
al@813 | 154 newline; _ 'Detected USB devices Kernel modules'; separator |
pankso@299 | 155 rm -f /var/lib/detected-usb-modules |
pankso@299 | 156 detect_usb_devices |
al@813 | 157 separator; newline ;; |
pankso@830 | 158 -s|setup) |
al@813 | 159 SETUP_OPTIONS=$(echo "$@" | sed 's/setup//') |
pankso@828 | 160 check_root |
jozee@457 | 161 hwsetup $SETUP_OPTIONS ;; |
pankso@830 | 162 -dm|detected-modules) |
al@813 | 163 newline; _ 'Detected PCI and USB modules'; separator |
pankso@299 | 164 cat /var/lib/detected-modules |
pankso@304 | 165 cat /var/lib/detected-usb-modules 2>/dev/null |
al@813 | 166 separator; newline ;; |
pankso@830 | 167 *) |
pankso@299 | 168 usage ;; |
pankso@299 | 169 esac |
pankso@299 | 170 |
pankso@299 | 171 exit 0 |