wok annotate get-wifi-firmware/stuff/get-wifi-firmware @ rev 1040
Add get-wifi-firmware
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Jul 11 15:12:13 2008 +0000 (2008-07-11) |
parents | |
children | 784c95ed7cd7 |
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@1040 | 5 PKG=$MODULE-firmware |
pascal@1040 | 6 DEPENDS="" |
pascal@1040 | 7 case "$MODULE" in |
pascal@1040 | 8 b43) |
pascal@1040 | 9 VERSION=4.80.53.0 |
pascal@1040 | 10 SUBDIR="broadcom-wl-$VERSION" |
pascal@1040 | 11 SHORT_DESC="Broadcom $MODULE firmware." |
pascal@1040 | 12 WEB_SITE="http://downloads.openwrt.org/" |
pascal@1040 | 13 WGET_URL="${WEB_SITE}sources/$SUBDIR.tar.bz2" |
pascal@1040 | 14 DEPENDS="b43-fwcutter" |
pascal@1040 | 15 FWSET=wl_apsta.o |
pascal@1040 | 16 ;; |
pascal@1040 | 17 b43legacy) |
pascal@1040 | 18 VERSION=3.130.20.0 |
pascal@1040 | 19 SHORT_DESC="Broadcom $MODULE firmware." |
pascal@1040 | 20 WEB_SITE="http://downloads.openwrt.org/" |
pascal@1040 | 21 WGET_URL="${WEB_SITE}sources/wl_apsta-$VERSION.o" |
pascal@1040 | 22 DEPENDS="b43-fwcutter" |
pascal@1040 | 23 FWSET=wl_apsta-$VERSION.o |
pascal@1040 | 24 ;; |
pascal@1040 | 25 ipw2100) |
pascal@1040 | 26 VERSION=1.3-6.0.1 |
pascal@1040 | 27 SHORT_DESC="Intel PRO/Wireless 2100 firmware." |
pascal@1040 | 28 WEB_SITE="http://$MODULE.sourceforge.net/" |
pascal@1040 | 29 WGET_URL="http://dl.atrpms.net/all/$PKG-$VERSION.noarch.rpm" |
pascal@1040 | 30 ;; |
pascal@1040 | 31 ipw2200) |
pascal@1040 | 32 VERSION=3.0-9.0.1 |
pascal@1040 | 33 SHORT_DESC="Intel PRO/Wireless 2200BG firmware." |
pascal@1040 | 34 WEB_SITE="http://$MODULE.sourceforge.net/" |
pascal@1040 | 35 WGET_URL="http://dl.atrpms.net/all/$PKG-$VERSION.noarch.rpm" |
pascal@1040 | 36 ;; |
pascal@1040 | 37 *) echo "Unknown wifi driver. Please run one of the following commands:" |
pascal@1040 | 38 for i in $(cd $(dirname $0); ls get-*-firmware); do |
pascal@1040 | 39 [ "$i" = "get-wifi-firmware" ] && continue |
pascal@1040 | 40 echo " $i" |
pascal@1040 | 41 done |
pascal@1040 | 42 exit 1;; |
pascal@1040 | 43 esac |
pascal@1040 | 44 |
pascal@1040 | 45 # Check if user is root to install. |
pascal@1040 | 46 if test $(id -u) != 0 ; then |
pascal@1040 | 47 echo -e "\nYou must be root to run `basename $0`." |
pascal@1040 | 48 echo -e "Please use 'su' and root password to become super-user.\n" |
pascal@1040 | 49 exit 0 |
pascal@1040 | 50 fi |
pascal@1040 | 51 |
pascal@1040 | 52 # Avoid reinstall |
pascal@1040 | 53 if [ -d /var/lib/tazpkg/installed/$PKG ]; then |
pascal@1040 | 54 echo -e "\n$PKG package is already installed.\n" |
pascal@1040 | 55 exit 0 |
pascal@1040 | 56 fi |
pascal@1040 | 57 |
pascal@1040 | 58 # We need drivers and tools. |
pascal@1040 | 59 for pkg in linux-wireless wireless_tools $DEPENDS |
pascal@1040 | 60 do |
pascal@1040 | 61 if [ ! -d /var/lib/tazpkg/installed/$pkg ]; then |
pascal@1040 | 62 tazpkg get-install $pkg |
pascal@1040 | 63 fi |
pascal@1040 | 64 done |
pascal@1040 | 65 |
pascal@1040 | 66 # Get files |
pascal@1040 | 67 TMP=/tmp/$(basename $0)$$ |
pascal@1040 | 68 mkdir $TMP |
pascal@1040 | 69 TOP=$PWD |
pascal@1040 | 70 cd $TMP |
pascal@1040 | 71 wget $WGET_URL |
pascal@1040 | 72 case "$WGET_URL" in |
pascal@1040 | 73 *rpm) rpm2cpio < $(basename $WGET_URL) | cpio -id;; |
pascal@1040 | 74 *bz2) tar xjf $(basename $WGET_URL) |
pascal@1040 | 75 cd $SUBDIR/kmod;; |
pascal@1040 | 76 *o) ;; |
pascal@1040 | 77 esac |
pascal@1040 | 78 |
pascal@1040 | 79 # Create pseudo package |
pascal@1040 | 80 mkdir -p $PKG-$VERSION/fs/lib/firmware |
pascal@1040 | 81 case "$MODULE" in |
pascal@1040 | 82 b43*) b43-fwcutter -w "$PKG-$VERSION/fs/lib/firmware" $FWSET;; |
pascal@1040 | 83 ipw*) rm -f lib/firmware/*LICENSE* |
pascal@1040 | 84 mv lib/firmware/* $PKG-$VERSION/fs/lib/firmware;; |
pascal@1040 | 85 esac |
pascal@1040 | 86 |
pascal@1040 | 87 # Creat receipt |
pascal@1040 | 88 cat > $PKG-$VERSION/receipt <<EOT |
pascal@1040 | 89 PACKAGE="$PKG" |
pascal@1040 | 90 VERSION="$VERSION" |
pascal@1040 | 91 CATEGORY="non-free" |
pascal@1040 | 92 SHORT_DESC="$SHORT_DESC." |
pascal@1040 | 93 WEB_SITE="$WEB_SITE" |
pascal@1040 | 94 EOT |
pascal@1040 | 95 [ -n "$DEPENDS" ] echo "DEPENDS=$DEPENDS" >> $PKG-$VERSION/receipt |
pascal@1040 | 96 |
pascal@1040 | 97 # Pack |
pascal@1040 | 98 tazpkg pack $PKG-$VERSION |
pascal@1040 | 99 |
pascal@1040 | 100 # Install pseudo package |
pascal@1040 | 101 tazpkg install $PKG-$VERSION.tazpkg |
pascal@1040 | 102 |
pascal@1040 | 103 # Clean |
pascal@1040 | 104 cd $TOP |
pascal@1040 | 105 rm -rf $TMP |
pascal@1040 | 106 |
pascal@1040 | 107 # Load module |
pascal@1040 | 108 echo "Loading module: $MODULE..." |
pascal@1040 | 109 modprobe $MODULE |
pascal@1040 | 110 sleep 1 |
pascal@1040 | 111 |
pascal@1040 | 112 # Configure /etc/network.conf and start connexion |
pascal@1040 | 113 sed -i s/'WIFI="no"'/'WIFI="yes"'/ /etc/network.conf |
pascal@1040 | 114 . /etc/network.conf |
pascal@1040 | 115 |
pascal@1040 | 116 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID |
pascal@1040 | 117 echo "Starting udhcpc client on: $WIFI_INTERFACE... " |
pascal@1040 | 118 /sbin/udhcpc -b -i $WIFI_INTERFACE \ |
pascal@1040 | 119 -p /var/run/udhcpc.$WIFI_INTERFACE.pid |
pascal@1040 | 120 |