wok annotate get-wifi-firmware/stuff/get-wifi-firmware @ rev 7147

Fixed get-wifi-firmware script to install depends to ROOT.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Nov 06 18:41:24 2010 +0000 (2010-11-06)
parents 7843031ac32d
children fff81b2e2529
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/')
jozee@5197 5 ROOT="$2"
pascal@1040 6 PKG=$MODULE-firmware
pascal@1040 7 DEPENDS=""
pascal@1040 8 case "$MODULE" in
pascal@1040 9 b43)
pascal@2129 10 VERSION=4.150.10.5
pascal@1040 11 SUBDIR="broadcom-wl-$VERSION"
pascal@1040 12 SHORT_DESC="Broadcom $MODULE firmware."
pascal@2129 13 WEB_SITE="http://www.linuxwireless.org/en/users/Drivers/b43"
pascal@2129 14 WGET_URL="http://mirror2.openwrt.org/sources/$SUBDIR.tar.bz2"
pascal@1040 15 DEPENDS="b43-fwcutter"
pascal@2129 16 FWSET=wl_apsta_mimo.o
pascal@1040 17 ;;
pascal@1040 18 b43legacy)
pascal@1040 19 VERSION=3.130.20.0
pascal@2129 20 SHORT_DESC="Broadcom $MODULE firmware (BCM4306 rev2 or 802.11b chips)."
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)
jozee@5105 27 VERSION=1.3
pascal@1040 28 SHORT_DESC="Intel PRO/Wireless 2100 firmware."
pascal@1040 29 WEB_SITE="http://$MODULE.sourceforge.net/"
jozee@5105 30 WGET_URL="http://bughost.org/firmware/${MODULE}-fw-${VERSION}.tgz"
pascal@1040 31 ;;
pascal@1040 32 ipw2200)
jozee@5105 33 VERSION=3.1
pascal@1040 34 SHORT_DESC="Intel PRO/Wireless 2200BG firmware."
pascal@1040 35 WEB_SITE="http://$MODULE.sourceforge.net/"
jozee@5105 36 WGET_URL="http://bughost.org/firmware/${MODULE}-fw-${VERSION}.tgz"
pascal@1040 37 ;;
pascal@1974 38 iwlwifi-3945)
jozee@4592 39 VERSION=15.32.2.9
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)
jozee@4592 45 VERSION=228.61.2.24
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)
jozee@4592 51 VERSION=8.24.2.12
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 ;;
jozee@4592 56 iwlwifi-5150)
jozee@4592 57 VERSION=8.24.2.2
jozee@4592 58 SHORT_DESC="Intel Wireless WiFi Link 5150AGN firmware."
jozee@4592 59 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads"
jozee@4592 60 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz"
jozee@4592 61 ;;
jozee@4592 62 iwlwifi-1000)
jozee@4592 63 VERSION=128.50.3.1
jozee@4592 64 SHORT_DESC="Intel Wireless WiFi Link 1000BGN firmware."
jozee@4592 65 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads"
jozee@4592 66 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz"
jozee@4592 67 ;;
jozee@4592 68 iwlwifi-6000)
jozee@4592 69 VERSION=9.176.4.1
jozee@4592 70 SHORT_DESC="Intel Wireless WiFi Link 6000 Series Wi-fi Adapters"
jozee@4592 71 WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads"
jozee@4592 72 WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz"
jozee@4592 73 ;;
pascal@2267 74 rt61|rt61pci)
pascal@1935 75 VERSION=1.2
jozee@4592 76 SHORT_DESC="new RT2x00 RT61 Wireless Lan firmware."
pascal@1935 77 WEB_SITE="http://www.ralinktech.com/"
jozee@4592 78 WGET_URL="ftp://ftp.archlinux.org/other/rt2x00-rt61-fw/RT61_Firmware_V${VERSION}.zip"
pascal@1935 79 ;;
pascal@2267 80 rt73|rt73usb)
jozee@4592 81 VERSION=1.8
jozee@4592 82 SHORT_DESC="new RT2x00 RT73(RT2571W) Wireless Lan firmware."
pascal@1892 83 WEB_SITE="http://www.ralinktech.com/"
jozee@4592 84 WGET_URL="ftp://ftp.archlinux.org/other/rt2x00-rt71w-fw/RT71W_Firmware_V${VERSION}.zip"
pascal@1892 85 ;;
jozee@5105 86 rt2870usb)
jozee@5105 87 VERSION=8
jozee@5105 88 SHORT_DESC="RaLink RT2870USB (RT2870/RT2770) WiFi adapter."
jozee@5105 89 WEB_SITE="http://www.ralinktech.com/"
jozee@5105 90 WGET_URL="ftp://ftp.archlinux.org/other/${MODULE}-fw/RT2870_Firmware_V${VERSION}.zip"
jozee@5105 91 ;;
pascal@2267 92 zd1211|zd1211rw)
pascal@2128 93 VERSION=2.16.0.0-0.1
pascal@2128 94 SHORT_DESC="zd1211/zd1211rw Wireless Lan firmware."
pascal@2128 95 WEB_SITE="http://packages.debian.org/etch/zd1211-firmware"
pascal@2348 96 WGET_URL="http://mirrors.kernel.org/debian/pool/non-free/z/zd1211-firmware/zd1211-firmware_${VERSION}_all.deb"
pascal@2348 97 ;;
pascal@1040 98 *) echo "Unknown wifi driver. Please run one of the following commands:"
pascal@1040 99 for i in $(cd $(dirname $0); ls get-*-firmware); do
pascal@2171 100 [ -L $i ] || continue
pascal@2171 101 [ "$(readlink $i)" = "get-wifi-firmware" ] || continue
pascal@1040 102 echo " $i"
pascal@1040 103 done
pascal@1040 104 exit 1;;
pascal@1040 105 esac
pascal@1040 106
pascal@1040 107 # Check if user is root to install.
pascal@1040 108 if test $(id -u) != 0 ; then
pascal@1040 109 echo -e "\nYou must be root to run `basename $0`."
pascal@1040 110 echo -e "Please use 'su' and root password to become super-user.\n"
pascal@1040 111 exit 0
pascal@1040 112 fi
pascal@1040 113
pascal@1040 114 # Avoid reinstall
pascal@1713 115 if [ -d $ROOT/var/lib/tazpkg/installed/$PKG ]; then
pascal@1040 116 echo -e "\n$PKG package is already installed.\n"
pascal@1040 117 exit 0
pascal@1040 118 fi
pascal@1040 119
pascal@1713 120 # We need drivers, the extractor and tools.
pascal@1714 121 for pkg in linux-wireless wireless_tools $DEPENDS
pascal@1040 122 do
slaxemulator@6949 123 if [ ! -d $ROOT/var/lib/tazpkg/installed/$pkg ]; then
slaxemulator@7147 124 tazpkg get-install $pkg --root=$ROOT
pascal@1040 125 fi
pascal@1040 126 done
pascal@1040 127
pascal@1040 128 # Get files
pascal@1040 129 TMP=/tmp/$(basename $0)$$
pascal@1040 130 mkdir $TMP
pascal@1040 131 TOP=$PWD
pascal@1040 132 cd $TMP
pascal@1040 133 wget $WGET_URL
pascal@3893 134 TARBALL="$(basename $WGET_URL)"
pascal@3893 135 if [ ! -f $TARBALL ]; then
pascal@3893 136 cd $TOP
pascal@3893 137 rm -rf $DIR
pascal@3893 138 echo "Could not download $TARBALL. Exiting."
pascal@3893 139 exit 1
pascal@3893 140 fi
pascal@3893 141
pascal@1040 142 case "$WGET_URL" in
pascal@3893 143 *rpm) rpm2cpio < $TARBALL | cpio -id;;
pascal@3893 144 *deb) dpkg-deb -x $TARBALL . ;;
pankso@4946 145 *bz2) tar xjf $TARBALL
pascal@2129 146 cd $SUBDIR/driver;;
pascal@3893 147 *tar.gz|*tgz) tar xzf $TARBALL;;
pascal@3893 148 *zip) unzip $TARBALL;;
pascal@1040 149 *o) ;;
pascal@1040 150 esac
pascal@1040 151
pascal@1040 152 # Create pseudo package
jozee@5105 153 mkdir -p $PKG-$VERSION/fs/lib/firmware $PKG-$VERSION/fs/usr/share/licenses
pascal@1040 154 case "$MODULE" in
pascal@1040 155 b43*) b43-fwcutter -w "$PKG-$VERSION/fs/lib/firmware" $FWSET;;
jozee@5105 156 ipw2200) cp ${MODULE}-fw-$VERSION/*LICENSE* $PKG-$VERSION/fs/usr/share/licenses/intel-$MODULE-LICENSE.txt
jozee@5105 157 mv ${MODULE}-fw-$VERSION/* $PKG-$VERSION/fs/lib/firmware;;
jozee@5105 158 ipw2100) cp *LICENSE* $PKG-$VERSION/fs/usr/share/licenses/intel-$MODULE-LICENSE.txt
jozee@5105 159 mv *.fw* *LICENSE* $PKG-$VERSION/fs/lib/firmware;;
jozee@5105 160 rt*)
jozee@5105 161 mv RT*_Firmware_V$VERSION/*.bin $PKG-$VERSION/fs/lib/firmware
jozee@5105 162 mv RT*_Firmware_V$VERSION/*LICENSE* $PKG-$VERSION/fs/usr/share/licenses/ralink-rt61-LICENSE.txt;;
jozee@5105 163 iwlwifi*) mv iwlwifi*/iwlwifi*.ucode $PKG-$VERSION/fs/lib/firmware
jozee@5105 164 mv iwlwifi*/*LICENSE* $PKG-$VERSION/fs/usr/share/licenses/intel-iwlwifi-LICENSE.txt ;;
pascal@2267 165 zd1211|zd1211rw)
pascal@2267 166 mv lib/firmware/zd1211 $PKG-$VERSION/fs/lib/firmware
pascal@2128 167 for i in $(cd usr/lib/hotplug/firmware; ls); do
pascal@2128 168 target=$(readlink usr/lib/hotplug/firmware/$i)
pascal@2129 169 ln -s $(basename $target) $PKG-$VERSION/fs/lib/firmware/zd1211/$i
pascal@2128 170 done;;
pascal@1040 171 esac
pascal@1040 172
pascal@1040 173 # Creat receipt
pascal@1040 174 cat > $PKG-$VERSION/receipt <<EOT
pascal@1040 175 PACKAGE="$PKG"
pascal@1040 176 VERSION="$VERSION"
pascal@1040 177 CATEGORY="non-free"
pascal@1040 178 SHORT_DESC="$SHORT_DESC."
pascal@1040 179 WEB_SITE="$WEB_SITE"
pascal@1713 180 DEPENDS="linux-wireless wireless_tools $DEPENDS"
pascal@1040 181 EOT
pascal@1040 182
pascal@1040 183 # Pack
pascal@1040 184 tazpkg pack $PKG-$VERSION
pascal@1040 185
pascal@1040 186 # Install pseudo package
pascal@1713 187 tazpkg install $PKG-$VERSION.tazpkg --root=$ROOT
pascal@1040 188
pascal@1040 189 # Clean
pascal@1040 190 cd $TOP
pascal@1040 191 rm -rf $TMP
pascal@1040 192
jozee@5198 193 if [ "$1" == "--firmware" ] ; then
jozee@5105 194 echo "just install firmare: yes"
jozee@5105 195 JUST_INSTALL_FIRMWARE="yes"
jozee@5105 196 fi
jozee@5105 197
jozee@5105 198 if [ ! "$JUST_INSTALL_FIRMWARE" == "yes" ]; then
jozee@5105 199 echo "configuring and loading module ..."
jozee@5105 200 # Check if we need wpa_supplicant
jozee@5105 201 . $ROOT/etc/network.conf
jozee@5105 202 if [ $WIFI_KEY_TYPE = "wpa" ] || [ $WIFI_KEY_TYPE = "WPA" ]; then
jozee@5105 203 if [ ! -d $ROOT/var/lib/tazpkg/installed/wpa_supplicant ]; then
jozee@5105 204 tazpkg get-install wpa_supplicant --root=$ROOT
jozee@5105 205 fi
jozee@5105 206 fi
jozee@5105 207
jozee@5105 208 # Configure /etc/network.conf and start connexion
jozee@5105 209 sed -i s/'WIFI="no"'/'WIFI="yes"'/ $ROOT/etc/network.conf
jozee@5105 210
jozee@5105 211 # Load module
jozee@5105 212 if [ -z "$ROOT" -a -n "$(modprobe -l $MODULE)" ]; then
jozee@5105 213 echo "Loading module: $MODULE..."
jozee@5105 214 if modprobe $MODULE ; then
jozee@5105 215 sleep 2
jozee@5105 216 /etc/init.d/network.sh restart
jozee@5105 217 fi
sygne@1158 218 fi
sygne@1158 219 fi
sygne@1158 220