wok annotate get-wifi-firmware/stuff/get-wifi-firmware @ rev 1974
Get-wifi-firmware: add iwlwifi* support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Jan 03 11:44:04 2009 +0000 (2009-01-03) |
parents | 1f488899d7f8 |
children | dcd78f3d0238 |
rev | line source |
---|---|
pascal@1040 | 1 #!/bin/sh |
pascal@1040 | 2 # install linux-wireless, wireless_tools and b43-fwcutter if needed. |
pascal@1040 | 3 |
pascal@1040 | 4 MODULE=$(echo $0 | sed 's/.*get-\(.*\)-firmware/\1/') |
pascal@1713 | 5 ROOT="$1" |
pascal@1040 | 6 PKG=$MODULE-firmware |
pascal@1040 | 7 DEPENDS="" |
pascal@1040 | 8 case "$MODULE" in |
pascal@1040 | 9 b43) |
pascal@1040 | 10 VERSION=4.80.53.0 |
pascal@1040 | 11 SUBDIR="broadcom-wl-$VERSION" |
pascal@1040 | 12 SHORT_DESC="Broadcom $MODULE firmware." |
pascal@1040 | 13 WEB_SITE="http://downloads.openwrt.org/" |
pascal@1040 | 14 WGET_URL="${WEB_SITE}sources/$SUBDIR.tar.bz2" |
pascal@1040 | 15 DEPENDS="b43-fwcutter" |
pascal@1040 | 16 FWSET=wl_apsta.o |
pascal@1040 | 17 ;; |
pascal@1040 | 18 b43legacy) |
pascal@1040 | 19 VERSION=3.130.20.0 |
pascal@1040 | 20 SHORT_DESC="Broadcom $MODULE firmware." |
pascal@1040 | 21 WEB_SITE="http://downloads.openwrt.org/" |
pascal@1040 | 22 WGET_URL="${WEB_SITE}sources/wl_apsta-$VERSION.o" |
pascal@1040 | 23 DEPENDS="b43-fwcutter" |
pascal@1040 | 24 FWSET=wl_apsta-$VERSION.o |
pascal@1040 | 25 ;; |
pascal@1040 | 26 ipw2100) |
pascal@1040 | 27 VERSION=1.3-6.0.1 |
pascal@1040 | 28 SHORT_DESC="Intel PRO/Wireless 2100 firmware." |
pascal@1040 | 29 WEB_SITE="http://$MODULE.sourceforge.net/" |
pascal@1040 | 30 WGET_URL="http://dl.atrpms.net/all/$PKG-$VERSION.noarch.rpm" |
pascal@1040 | 31 ;; |
pascal@1040 | 32 ipw2200) |
pascal@1040 | 33 VERSION=3.0-9.0.1 |
pascal@1040 | 34 SHORT_DESC="Intel PRO/Wireless 2200BG firmware." |
pascal@1040 | 35 WEB_SITE="http://$MODULE.sourceforge.net/" |
pascal@1040 | 36 WGET_URL="http://dl.atrpms.net/all/$PKG-$VERSION.noarch.rpm" |
pascal@1040 | 37 ;; |
pascal@1974 | 38 iwlwifi-3945) |
pascal@1974 | 39 VERSION=15.28.2.8 |
pascal@1974 | 40 SHORT_DESC="Intel PRO/Wireless 3945ABG/BG firmware." |
pascal@1974 | 41 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" |
pascal@1974 | 42 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" |
pascal@1974 | 43 ;; |
pascal@1974 | 44 iwlwifi-4965) |
pascal@1974 | 45 VERSION=228.57.2.23 |
pascal@1974 | 46 SHORT_DESC="Intel WiFi Link 4965AGN firmware." |
pascal@1974 | 47 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" |
pascal@1974 | 48 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" |
pascal@1974 | 49 ;; |
pascal@1974 | 50 iwlwifi-5000) |
pascal@1974 | 51 VERSION=5.4.A.11 |
pascal@1974 | 52 SHORT_DESC="Intel Wireless WiFi Link 5000AGN firmware." |
pascal@1974 | 53 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" |
pascal@1974 | 54 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" |
pascal@1974 | 55 ;; |
pascal@1935 | 56 rt61) |
pascal@1935 | 57 VERSION=1.2 |
pascal@1935 | 58 SHORT_DESC="RT61 Wireless Lan firmware." |
pascal@1935 | 59 WEB_SITE="http://www.ralinktech.com/" |
pascal@1935 | 60 WGET_URL="http://www.ralinktech.com.tw/data/RT61_Firmware_V$VERSION.zip" |
pascal@1935 | 61 ;; |
pascal@1892 | 62 rt73) |
pascal@1892 | 63 VERSION=1.0.3.6 |
pascal@1892 | 64 SHORT_DESC="RT73(RT2571W) Wireless Lan firmware." |
pascal@1892 | 65 WEB_SITE="http://www.ralinktech.com/" |
pascal@1892 | 66 WGET_URL="http://www.ralink.com.tw/data/RT73_Linux_STA_Drv$VERSION.tar.gz" |
pascal@1892 | 67 ;; |
pascal@1040 | 68 *) echo "Unknown wifi driver. Please run one of the following commands:" |
pascal@1040 | 69 for i in $(cd $(dirname $0); ls get-*-firmware); do |
pascal@1040 | 70 [ "$i" = "get-wifi-firmware" ] && continue |
pascal@1040 | 71 echo " $i" |
pascal@1040 | 72 done |
pascal@1040 | 73 exit 1;; |
pascal@1040 | 74 esac |
pascal@1040 | 75 |
pascal@1040 | 76 # Check if user is root to install. |
pascal@1040 | 77 if test $(id -u) != 0 ; then |
pascal@1040 | 78 echo -e "\nYou must be root to run `basename $0`." |
pascal@1040 | 79 echo -e "Please use 'su' and root password to become super-user.\n" |
pascal@1040 | 80 exit 0 |
pascal@1040 | 81 fi |
pascal@1040 | 82 |
pascal@1040 | 83 # Avoid reinstall |
pascal@1713 | 84 if [ -d $ROOT/var/lib/tazpkg/installed/$PKG ]; then |
pascal@1040 | 85 echo -e "\n$PKG package is already installed.\n" |
pascal@1040 | 86 exit 0 |
pascal@1040 | 87 fi |
pascal@1040 | 88 |
pascal@1713 | 89 # We need drivers, the extractor and tools. |
pascal@1714 | 90 for pkg in linux-wireless wireless_tools $DEPENDS |
pascal@1040 | 91 do |
pascal@1713 | 92 if [ ! -d /var/lib/tazpkg/installed/$pkg ]; then |
pascal@1040 | 93 tazpkg get-install $pkg |
pascal@1040 | 94 fi |
pascal@1040 | 95 done |
pascal@1040 | 96 |
pascal@1040 | 97 # Get files |
pascal@1040 | 98 TMP=/tmp/$(basename $0)$$ |
pascal@1040 | 99 mkdir $TMP |
pascal@1040 | 100 TOP=$PWD |
pascal@1040 | 101 cd $TMP |
pascal@1040 | 102 wget $WGET_URL |
pascal@1040 | 103 case "$WGET_URL" in |
pascal@1040 | 104 *rpm) rpm2cpio < $(basename $WGET_URL) | cpio -id;; |
pascal@1040 | 105 *bz2) tar xjf $(basename $WGET_URL) |
pascal@1040 | 106 cd $SUBDIR/kmod;; |
pascal@1974 | 107 *tar.gz|*tgz) tar xzf $(basename $WGET_URL);; |
pascal@1935 | 108 *zip) unzip $(basename $WGET_URL);; |
pascal@1040 | 109 *o) ;; |
pascal@1040 | 110 esac |
pascal@1040 | 111 |
pascal@1040 | 112 # Create pseudo package |
pascal@1040 | 113 mkdir -p $PKG-$VERSION/fs/lib/firmware |
pascal@1040 | 114 case "$MODULE" in |
pascal@1040 | 115 b43*) b43-fwcutter -w "$PKG-$VERSION/fs/lib/firmware" $FWSET;; |
pascal@1040 | 116 ipw*) rm -f lib/firmware/*LICENSE* |
pascal@1040 | 117 mv lib/firmware/* $PKG-$VERSION/fs/lib/firmware;; |
pascal@1936 | 118 rt61) mv RT61_Firmware_V$VERSION/*.bin $PKG-$VERSION/fs/lib/firmware;; |
pascal@1892 | 119 rt73) mv RT73_Linux_STA_Drv$VERSION/Module/rt73.bin $PKG-$VERSION/fs/lib/firmware;; |
pascal@1974 | 120 iwlwifi*) mv iwlwifi*/iwlwifi*.ucode $PKG-$VERSION/fs/lib/firmware;; |
pascal@1040 | 121 esac |
pascal@1040 | 122 |
pascal@1040 | 123 # Creat receipt |
pascal@1040 | 124 cat > $PKG-$VERSION/receipt <<EOT |
pascal@1040 | 125 PACKAGE="$PKG" |
pascal@1040 | 126 VERSION="$VERSION" |
pascal@1040 | 127 CATEGORY="non-free" |
pascal@1040 | 128 SHORT_DESC="$SHORT_DESC." |
pascal@1040 | 129 WEB_SITE="$WEB_SITE" |
pascal@1713 | 130 DEPENDS="linux-wireless wireless_tools $DEPENDS" |
pascal@1040 | 131 EOT |
pascal@1040 | 132 |
pascal@1040 | 133 # Pack |
pascal@1040 | 134 tazpkg pack $PKG-$VERSION |
pascal@1040 | 135 |
pascal@1040 | 136 # Install pseudo package |
pascal@1713 | 137 tazpkg install $PKG-$VERSION.tazpkg --root=$ROOT |
pascal@1040 | 138 |
pascal@1040 | 139 # Clean |
pascal@1040 | 140 cd $TOP |
pascal@1040 | 141 rm -rf $TMP |
pascal@1040 | 142 |
sygne@1158 | 143 # Check if we need wpa_supplicant |
pascal@1713 | 144 . $ROOT/etc/network.conf |
sygne@1158 | 145 if [ $WIFI_KEY_TYPE = "wpa" ] || [ $WIFI_KEY_TYPE = "WPA" ]; then |
pascal@1713 | 146 if [ ! -d $ROOT/var/lib/tazpkg/installed/wpa_supplicant ]; then |
pascal@1713 | 147 tazpkg get-install wpa_supplicant --root=$ROOT |
sygne@1158 | 148 fi |
sygne@1158 | 149 fi |
sygne@1158 | 150 |
pascal@1935 | 151 # Configure /etc/network.conf and start connexion |
pascal@1935 | 152 sed -i s/'WIFI="no"'/'WIFI="yes"'/ $ROOT/etc/network.conf |
pascal@1935 | 153 |
pascal@1040 | 154 # Load module |
pascal@1974 | 155 if [ -z "$ROOT" -a -n "$(modprobe -l $MODULE)" ]; then |
pascal@1713 | 156 echo "Loading module: $MODULE..." |
pascal@1935 | 157 if modprobe $MODULE ; then |
pascal@1935 | 158 sleep 2 |
pascal@1935 | 159 /etc/init.d/network.sh restart |
pascal@1935 | 160 fi |
pascal@1713 | 161 fi |
pascal@1040 | 162 |