get-scripts annotate b43-firmware @ rev 34

Add sublime-text-3
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Mar 23 08:59:52 2015 +0100 (2015-03-23)
parents 6603ef3afcd0
children 3cd8920c8ef2
rev   line source
pascal@34 1 SHORT_DESC="Install the firmware files for the wireless kernel module"
pascal@34 2 # end of get.list data
pascal@34 3
pascal@3 4 # install linux-wireless, wireless_tools and b43-fwcutter if needed.
pascal@3 5
pascal@3 6 MODULE=${PACKAGE%-firmware}
pascal@3 7 CATEGORY="non-free"
pascal@3 8 DEPENDS=""
pascal@3 9
pascal@3 10 MODULE_LIST=""
pascal@3 11 while read module desc ; do
pascal@34 12 [ "$MODULE" == "$module" ] && SHORT_DESC="$desc"
pascal@3 13 MODULE_LIST="$MODULE_LIST $module"
pascal@3 14 done <<EOT
pascal@3 15 b43 Broadcom $MODULE firmware.
pascal@3 16 b43legacy Broadcom $MODULE firmware (BCM4306 rev2 or 802.11b chips).
pascal@3 17 ipw2100 Intel PRO/Wireless 2100 firmware.
pascal@3 18 ipw2200 Intel PRO/Wireless 2200BG firmware.
pascal@6 19 iwlwifi-5000 Intel Wireless WiFi Link 5000AGN, 5300AGN and 5350AGN firmware.
pascal@3 20 iwlwifi-5150 Intel Wireless WiFi Link 5150AGN firmware.
pascal@6 21 iwlwifi-100 Intel Wireless WiFi Link 100N firmware.
pascal@6 22 iwlwifi-105 Intel Wireless WiFi Link 105N firmware.
pascal@6 23 iwlwifi-135 Intel Wireless WiFi Link 135N firmware.
pascal@6 24 iwlwifi-1000 Intel Wireless WiFi Link 1000N firmware.
pascal@6 25 iwlwifi-2000 Intel Wireless WiFi Link 2200 Series Wi-fi Adapters.
pascal@6 26 iwlwifi-2030 Intel Wireless WiFi Link 2230 Series Wi-fi Adapters.
pascal@6 27 iwlwifi-6000gda Intel Wireless WiFi Link 6000 Series Wi-fi Adapters.
pascal@6 28 iwlwifi-6000gdb Intel Wireless WiFi Link 6000 Series Wi-fi Adapters.
pascal@3 29 iwlwifi-6000 Intel Wireless WiFi Link 6000 Series Wi-fi Adapters.
pascal@6 30 iwlwifi-6050 Intel Wireless WiFi Link 6050 Series Wi-fi Adapters.
pascal@3 31 rt61 new RT2x00 RT61 Wireless Lan firmware.
pascal@3 32 rt61pci new RT2x00 RT61 Wireless Lan firmware.
pascal@3 33 rt73 new RT2x00 RT73(RT2571W) Wireless Lan firmware.
pascal@3 34 rt73usb new RT2x00 RT73(RT2571W) Wireless Lan firmware.
pascal@3 35 rt2870usb RaLink RT2870USB (RT2870/RT2770) WiFi adapter.
pascal@3 36 zd1211 zd1211/zd1211rw Wireless Lan firmware.
pascal@3 37 zd1211rw zd1211/zd1211rw Wireless Lan firmware.
pascal@3 38 EOT
pascal@3 39
pascal@3 40 case "$MODULE" in
pascal@3 41 b43)
pascal@3 42 WEB_SITE="http://www.linuxwireless.org/en/users/Drivers/b43"
pascal@3 43 WGET_URL="http://mirror2.openwrt.org/sources"
pascal@3 44 VERSION=$(wget -O - $WGET_URL | sed \
pascal@3 45 '/broadcom-wl-[0-9\.]*.tar/!d;s/.*com-wl-\([0-9\.]*\).tar.*/\1/' | \
pascal@3 46 tail -n 1)
pascal@3 47 SUBDIR="broadcom-wl-$VERSION"
pascal@3 48 WGET_URL="$WGET_URL/$SUBDIR.tar.bz2"
pascal@3 49 DEPENDS="b43-fwcutter"
pascal@3 50 FWSET=wl_apsta.o
pascal@3 51 ;;
pascal@3 52 b43legacy)
pascal@3 53 WEB_SITE="http://downloads.openwrt.org/"
pascal@3 54 VERSION=$(wget -O - ${WEB_SITE}sources | sed \
pascal@3 55 '/wl_apsta/!d;s/.*>wl_apsta-\(.*\).o.*/\1/')
pascal@3 56 WGET_URL="${WEB_SITE}sources/wl_apsta-$VERSION.o"
pascal@3 57 DEPENDS="b43-fwcutter"
pascal@3 58 FWSET=wl_apsta-$VERSION.o
pascal@3 59 ;;
pascal@5 60 ipw2*)
pascal@5 61 WEB_SITE="http://wireless.kernel.org/en/users/Drivers/$MODULE"
pascal@5 62 VERSION=$(wget -O - $WEB_SITE | sed '/-fw/!d;s/.*-fw-\([^t]*\).t.*/\1/')
pascal@5 63 WGET_URL="$(wget -O - $WEB_SITE | sed '/-fw/!d;s/.*href="\([^"]*\).*/\1/')$MODULE-fw-$VERSION.tgz"
pascal@3 64 ;;
pascal@3 65 iwlwifi-*)
pascal@6 66 WEB_SITE="http://wireless.kernel.org/en/users/Drivers/iwlwifi/"
pascal@6 67 WGET_URL="$(wget -O - $WEB_SITE | sed '/-ucode-/!d;s/.*href="\([^"]*\).*/\1/;/'${MODULE%firmware}'/!d' | sed '$!d')"
pascal@6 68 VERSION="$(echo "$WGET_URL" | sed 's/.*-ucode-\(.*\).t.*/\1/')"
pascal@3 69 CATEGORY="base-system"
pascal@3 70 ;;
pascal@3 71 rt61*)
pascal@3 72 WGET_URL="http://archlinux.c3sl.ufpr.br/other/rt2x00-rt61-fw"
pascal@3 73 VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/')
pascal@3 74 WEB_SITE="http://www.ralinktech.com/"
pascal@3 75 WGET_URL="$WGET_URL/RT61_Firmware_V${VERSION}.zip"
pascal@3 76 CATEGORY="base-system"
pascal@3 77 ;;
pascal@3 78 rt73*)
pascal@3 79 WGET_URL="http://archlinux.c3sl.ufpr.br/other/rt2x00-rt71w-fw"
pascal@3 80 VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/')
pascal@3 81 WEB_SITE="http://www.ralinktech.com/"
pascal@3 82 WGET_URL="$WGET_URL/RT71W_Firmware_V${VERSION}.zip"
pascal@3 83 CATEGORY="base-system"
pascal@3 84 ;;
pascal@3 85 rt2870usb)
pascal@3 86 WGET_URL="http://archlinux.c3sl.ufpr.br/other/${MODULE}-fw"
pascal@3 87 VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/')
pascal@3 88 WEB_SITE="http://www.ralinktech.com/"
pascal@3 89 WGET_URL="$WGET_URL/RT2870_Firmware_V${VERSION}.zip"
pascal@3 90 CATEGORY="base-system"
pascal@3 91 ;;
pascal@3 92 zd1211*)
pascal@3 93 WGET_URL="http://mirrors.kernel.org/debian/pool/non-free/z/zd1211-firmware"
pascal@3 94 VERSION=$(wget -O - $WGET_URL | sed -e '/zd1211-firmware/!d' \
pascal@3 95 -e '/all.deb/!d' -e 's/.*>zd1211-firmware_\(.*\)_all.deb.*/\1/')
pascal@3 96 SHORT_DESC="zd1211/zd1211rw Wireless Lan firmware."
pascal@3 97 WEB_SITE="http://packages.debian.org/etch/zd1211-firmware"
pascal@3 98 WGET_URL="$WGET_URL/zd1211-firmware_${VERSION}_all.deb"
pascal@3 99 ;;
pascal@3 100 esac
pascal@3 101
pascal@6 102 case "$WGET_URL" in
pascal@6 103 ftp*|http*) ;;
pascal@6 104 *) WGET_URL="${WEB_SITE%/}/$WGET_URL"
pascal@6 105 esac
pascal@6 106
pascal@3 107 # We need drivers, the extractor and tools.
pascal@3 108 for pkg in linux-wireless wireless_tools $DEPENDS
pascal@3 109 do
pascal@3 110 if [ ! -d $ROOT/var/lib/tazpkg/installed/$pkg ]; then
pascal@3 111 tazpkg get-install $pkg --root=$ROOT
pascal@3 112 fi
pascal@3 113 done
pascal@3 114
pascal@3 115 # Get files
pascal@3 116 wget $WGET_URL
pascal@3 117 TARBALL="$(basename $WGET_URL)"
pascal@3 118 [ -s $TARBALL ] || abort_package "Could not download $TARBALL. Exiting."
pascal@3 119
pascal@3 120 case "$WGET_URL" in
pascal@3 121 *rpm) rpm2cpio < $TARBALL | cpio -id;;
pascal@3 122 *deb) dpkg-deb -x $TARBALL . ;;
pascal@3 123 *bz2) tar xjf $TARBALL
pascal@3 124 cd $SUBDIR/linux;;
pascal@3 125 *tar.gz|*tgz) tar xzf $TARBALL;;
pascal@3 126 *zip) unzip $TARBALL;;
pascal@3 127 *o) ;;
pascal@3 128 esac
pascal@3 129
pascal@3 130 # Create pseudo package
pascal@3 131 mkdir -p $PACKAGE-$VERSION/fs/lib/firmware $PACKAGE-$VERSION/fs/usr/share/licenses
pascal@3 132 case "$MODULE" in
pascal@3 133 b43*) b43-fwcutter -w "$PACKAGE-$VERSION/fs/lib/firmware" $FWSET;;
pascal@3 134 ipw2200) cp ${MODULE}-fw-$VERSION/*LICENSE* $PACKAGE-$VERSION/fs/usr/share/licenses/intel-$MODULE-LICENSE.txt
pascal@3 135 mv ${MODULE}-fw-$VERSION/* $PACKAGE-$VERSION/fs/lib/firmware;;
pascal@3 136 ipw2100) cp *LICENSE* $PACKAGE-$VERSION/fs/usr/share/licenses/intel-$MODULE-LICENSE.txt
pascal@3 137 mv *.fw* *LICENSE* $PACKAGE-$VERSION/fs/lib/firmware;;
pascal@3 138 rt*)
pascal@3 139 mv RT*_Firmware_V$VERSION/*.bin $PACKAGE-$VERSION/fs/lib/firmware
pascal@3 140 mv RT*_Firmware_V$VERSION/*LICENSE* $PACKAGE-$VERSION/fs/usr/share/licenses/ralink-rt61-LICENSE.txt;;
pascal@3 141 iwlwifi*) mv iwlwifi*/iwlwifi*.ucode $PACKAGE-$VERSION/fs/lib/firmware
pascal@3 142 mv iwlwifi*/*LICENSE* $PACKAGE-$VERSION/fs/usr/share/licenses/intel-iwlwifi-LICENSE.txt ;;
pascal@3 143 zd1211*)
pascal@3 144 mv lib/firmware/zd1211 $PACKAGE-$VERSION/fs/lib/firmware ;;
pascal@3 145 esac
pascal@3 146
pascal@3 147 # Creat receipt
pascal@3 148 cat > $PACKAGE-$VERSION/receipt <<EOT
pascal@3 149 PACKAGE="$PACKAGE"
pascal@3 150 VERSION="$VERSION"
pascal@3 151 CATEGORY="$CATEGORY"
pascal@3 152 SHORT_DESC="$SHORT_DESC."
pascal@3 153 WEB_SITE="$WEB_SITE"
pascal@3 154 DEPENDS="linux-wireless wireless_tools $DEPENDS"
pascal@3 155
pascal@3 156 # Pre and post install commands for Tazpkg.
pascal@3 157 post_install()
pascal@3 158 {
pascal@3 159 echo -n "Configure wifi ? "
pascal@3 160 read -t 30 answer
pascal@3 161 case "\$answer" in
pascal@3 162 n*|N*) return
pascal@3 163 esac
pascal@3 164
pascal@3 165 echo "configuring and loading module ..."
pascal@3 166 # Check if we need wpa_supplicant
pascal@3 167 . \$1/etc/network.conf
pascal@3 168 if [ \$WIFI_KEY_TYPE = "wpa" ] || [ \$WIFI_KEY_TYPE = "WPA" ]; then
pascal@3 169 if [ ! -d \$1/var/lib/tazpkg/installed/wpa_supplicant ]; then
pascal@3 170 tazpkg get-install wpa_supplicant --root=\$1
pascal@3 171 fi
pascal@3 172 fi
pascal@3 173
pascal@3 174 # Configure /etc/network.conf and start connexion
pascal@3 175 sed -i s/'WIFI="no"'/'WIFI="yes"'/ \$1/etc/network.conf
pascal@3 176
pascal@3 177 # Load module
pascal@3 178 if [ -z "\$1" -a -n "\$(modprobe -l $MODULE)" ]; then
pascal@3 179 echo "Loading module: $MODULE..."
pascal@3 180 if modprobe $MODULE ; then
pascal@3 181 sleep 2
pascal@3 182 /etc/init.d/network.sh restart
pascal@3 183 fi
pascal@3 184 fi
pascal@3 185 }
pascal@3 186 EOT
pascal@3 187
pascal@3 188 set +e