# HG changeset patch # User Pascal Bellard # Date 1340704539 -7200 # Node ID 10dc8abeebb26d55e9a5656ef17bc9f475a07d4e # Parent 905806138e790d111a134789d12fdde59a1786da get-wifi-firmware: remove hard coded version diff -r 905806138e79 -r 10dc8abeebb2 get-wifi-firmware/receipt --- a/get-wifi-firmware/receipt Tue Jun 26 02:47:04 2012 +0000 +++ b/get-wifi-firmware/receipt Tue Jun 26 11:55:39 2012 +0200 @@ -12,23 +12,11 @@ { mkdir -p $fs/usr/bin cp stuff/$PACKAGE $fs/usr/bin - for i in b43 b43legacy ipw2100 ipw2200 rt61 rt73 rt2860 zd1211 \ - rt61pci rt73usb rt2870usb zd1211rw \ - iwlwifi-3945 iwlwifi-4965 iwlwifi-5000 iwlwifi-5150 iwlwifi-1000 iwlwifi-6000; do - ln -s $PACKAGE $fs/usr/bin/get-$i-firmware - done + $fs/usr/bin/$PACKAGE --install } post_install() { - # directly support some freely distributable firmware drivers - # intel - rootfs=$1 - get-iwlwifi-3945-firmware --firmware $rootfs - get-iwlwifi-4965-firmware --firmware $rootfs - get-iwlwifi-5000-firmware --firmware $rootfs - # ralink - get-rt61-firmware --firmware $rootfs - get-rt73-firmware --firmware $rootfs - get-rt2870usb-firmware --firmware $rootfs + # directly support some freely distributable firmware drivers + chroot $1 /usr/bin/get-wifi-firmware --get-free-firmware } diff -r 905806138e79 -r 10dc8abeebb2 get-wifi-firmware/stuff/get-wifi-firmware --- a/get-wifi-firmware/stuff/get-wifi-firmware Tue Jun 26 02:47:04 2012 +0000 +++ b/get-wifi-firmware/stuff/get-wifi-firmware Tue Jun 26 11:55:39 2012 +0200 @@ -5,6 +5,31 @@ ROOT="$2" PKG=$MODULE-firmware DEPENDS="" + +MODULE_LIST="" +while read module desc ; do + [ "$MODULE" == "$module" ] && desc="$SHORT_DESC" + MODULE_LIST="$MODULE_LIST $module" +done <wl_apsta-\(.*\).o.*/\1/') - SHORT_DESC="Broadcom $MODULE firmware (BCM4306 rev2 or 802.11b chips)." WGET_URL="${WEB_SITE}sources/wl_apsta-$VERSION.o" DEPENDS="b43-fwcutter" FWSET=wl_apsta-$VERSION.o ;; ipw2100) - VERSION=1.3 - SHORT_DESC="Intel PRO/Wireless 2100 firmware." + VERSION=$(wget -O - http://$MODULE.sourceforge.net/firmware.php?fid=2 |\ + sed '/$MODULE-fw/!d;s/.*fw-\(.*\).tgz.*/\1/') WEB_SITE="http://$MODULE.sourceforge.net/" WGET_URL="http://bughost.org/firmware/${MODULE}-fw-${VERSION}.tgz" ;; ipw2200) - VERSION=3.1 - SHORT_DESC="Intel PRO/Wireless 2200BG firmware." + VERSION=$(wget -O - http://$MODULE.sourceforge.net/firmware.php?fid=8 |\ + sed '/$MODULE-fw/!d;s/.*fw-\(.*\).tgz.*/\1/') WEB_SITE="http://$MODULE.sourceforge.net/" WGET_URL="http://bughost.org/firmware/${MODULE}-fw-${VERSION}.tgz" ;; -iwlwifi-3945) +iwlwifi-*) WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel PRO/Wireless 3945ABG/BG firmware." WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" ;; -iwlwifi-4965) - WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" - VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ - 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel WiFi Link 4965AGN firmware." - WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" +rt61*) + WGET_URL="http://archlinux.c3sl.ufpr.br/other/rt2x00-rt61-fw" + VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/') + WEB_SITE="http://www.ralinktech.com/" + WGET_URL="$WGET_URL/RT61_Firmware_V${VERSION}.zip" ;; -iwlwifi-5000) - WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" - VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ - 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel Wireless WiFi Link 5000AGN firmware." - WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" - ;; -iwlwifi-5150) - WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" - VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ - 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel Wireless WiFi Link 5150AGN firmware." - WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" - ;; -iwlwifi-1000) - WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" - VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ - 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel Wireless WiFi Link 1000BGN firmware." - WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" - ;; -iwlwifi-6000) - WEB_SITE="http://www.intellinuxwireless.org/?n=Downloads" - VERSION=$(wget -O - $WEB_SITE | sed -e "/$MODULE-/!d" -e \ - 's/.*-ucode-\([0-9\.-]*\).t.*/\1/;q') - SHORT_DESC="Intel Wireless WiFi Link 6000 Series Wi-fi Adapters" - WGET_URL="http://www.intellinuxwireless.org/iwlwifi/downloads/$MODULE-ucode-$VERSION.tgz" - ;; -rt61|rt61pci) - VERSION=1.2 - SHORT_DESC="new RT2x00 RT61 Wireless Lan firmware." +rt73*) + WGET_URL="http://archlinux.c3sl.ufpr.br/other/rt2x00-rt71w-fw" + VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/') WEB_SITE="http://www.ralinktech.com/" - WGET_URL="ftp://ftp.archlinux.org/other/rt2x00-rt61-fw/RT61_Firmware_V${VERSION}.zip" - ;; -rt73|rt73usb) - VERSION=1.8 - SHORT_DESC="new RT2x00 RT73(RT2571W) Wireless Lan firmware." - WEB_SITE="http://www.ralinktech.com/" - WGET_URL="ftp://ftp.archlinux.org/other/rt2x00-rt71w-fw/RT71W_Firmware_V${VERSION}.zip" + WGET_URL="$WGET_URL/RT71W_Firmware_V${VERSION}.zip" ;; rt2870usb) - VERSION=8 - SHORT_DESC="RaLink RT2870USB (RT2870/RT2770) WiFi adapter." + WGET_URL="http://archlinux.c3sl.ufpr.br/other/${MODULE}-fw" + VERSION=$(wget -O - $WGET_URL | sed '/Firmware/!d;s/.*_V\(.*\).zip.*/\1/') WEB_SITE="http://www.ralinktech.com/" - WGET_URL="ftp://ftp.archlinux.org/other/${MODULE}-fw/RT2870_Firmware_V${VERSION}.zip" + WGET_URL="$WGET_URL/RT2870_Firmware_V${VERSION}.zip" ;; -zd1211|zd1211rw) +zd1211*) WGET_URL="http://mirrors.kernel.org/debian/pool/non-free/z/zd1211-firmware" VERSION=$(wget -O - $WGET_URL | sed -e '/zd1211-firmware/!d' \ -e '/all.deb/!d' -e 's/.*>zd1211-firmware_\(.*\)_all.deb.*/\1/') @@ -107,7 +94,23 @@ WEB_SITE="http://packages.debian.org/etch/zd1211-firmware" WGET_URL="$WGET_URL/zd1211-firmware_${VERSION}_all.deb" ;; -*) echo "Unknown wifi driver. Please run one of the following commands:" +*) + case "$2" in + --install) + cd $(dirname $0) + for i in $MODULE_LIST ; do + ln -s get-wifi-firmware get-$i-firmware + done + exit 0 ;; + --get-free-firmware) + for i in $MODULE_LIST ; do + case "$i" in + iwlwifi*|rt*) get-$i-firmware + esac + done + exit 0 ;; + esac + echo "Unknown wifi driver. Please run one of the following commands:" for i in $(cd $(dirname $0); ls get-*-firmware); do [ -L $i ] || continue [ "$(readlink $i)" = "get-wifi-firmware" ] || continue @@ -144,7 +147,7 @@ cd $TMP wget $WGET_URL TARBALL="$(basename $WGET_URL)" -if [ ! -f $TARBALL ]; then +if [ ! -s $TARBALL ]; then cd $TOP rm -rf $DIR echo "Could not download $TARBALL. Exiting." @@ -174,7 +177,7 @@ mv RT*_Firmware_V$VERSION/*LICENSE* $PKG-$VERSION/fs/usr/share/licenses/ralink-rt61-LICENSE.txt;; iwlwifi*) mv iwlwifi*/iwlwifi*.ucode $PKG-$VERSION/fs/lib/firmware mv iwlwifi*/*LICENSE* $PKG-$VERSION/fs/usr/share/licenses/intel-iwlwifi-LICENSE.txt ;; -zd1211|zd1211rw) +zd1211*) mv lib/firmware/zd1211 $PKG-$VERSION/fs/lib/firmware for i in $(cd usr/lib/hotplug/firmware; ls); do target=$(readlink usr/lib/hotplug/firmware/$i)