wok annotate get-wifi-firmware/stuff/get-wifi-firmware @ rev 6949
Fix get-wifi-firmware to work if you use --root option in tazpkg get-install or tazpkg install options.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Sun Oct 24 22:49:39 2010 +0000 (2010-10-24) |
parents | ae73fba3a561 |
children | 0f8155e82bba |
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 |
pascal@1040 | 124 tazpkg get-install $pkg |
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 |