wok view get-wifi-firmware/stuff/get-wifi-firmware @ rev 1739

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