wok diff get-softmodem-driver/stuff/get-softmodem-driver @ rev 16374

Up: slitaz-configs (5.4) Getting ready for 5.0-RC1
author Christophe Lincoln <pankso@slitaz.org>
date Mon Apr 14 19:59:46 2014 +0200 (2014-04-14)
parents
children c07aaa614a02
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/get-softmodem-driver/stuff/get-softmodem-driver	Mon Apr 14 19:59:46 2014 +0200
     1.3 @@ -0,0 +1,194 @@
     1.4 +#!/bin/sh
     1.5 +# install softmodems drivers if needed.
     1.6 +
     1.7 +PACKAGE=$(echo $0 | sed 's/.*get-\(.*\)-driver/\1/')
     1.8 +ROOT="$1"
     1.9 +DEPENDS=""
    1.10 +
    1.11 +untested()
    1.12 +{
    1.13 +echo "--------------------------------------------------------"
    1.14 +echo "Due to a lack of compatible hardware for troubleshooting,"
    1.15 +echo "this $PACKAGE package has not been tested. Please report"
    1.16 +echo "any success, failure, bug to SliTaz Labs or SliTaz Forum."
    1.17 +echo "--------------------------------------------------------"
    1.18 +sleep 1
    1.19 +}
    1.20 +
    1.21 +case "$PACKAGE" in
    1.22 +hsfmodem)
    1.23 +	. /usr/share/softmodem/hsfmodem.receipt ;;
    1.24 +hcfpcimodem)
    1.25 +	. /usr/share/softmodem/hcfpcimodem.receipt ;;
    1.26 +martian)
    1.27 +	. /usr/share/softmodem/martian.receipt ;;
    1.28 +slmodem)
    1.29 +	. /usr/share/softmodem/slmodem.receipt ;;
    1.30 +*)
    1.31 +	echo "Unknown modem driver. Please run one of the following commands:"
    1.32 +	for i in $(cd $(dirname $0); ls get-*-driver); do
    1.33 +		[ -L $i ] || continue
    1.34 +		[ "$(readlink $i)" = "get-modem-driver" ] || continue
    1.35 +		echo "  $i"
    1.36 +	done
    1.37 +	exit 1;;
    1.38 +esac
    1.39 +
    1.40 +# Report
    1.41 +echo "Installing $SHORT_DESC.."
    1.42 +
    1.43 +# Check if user is root to install.
    1.44 +if test $(id -u) != 0 ; then
    1.45 +	echo -e "\nYou must be root to run `basename $0`."
    1.46 +	echo -e "Please use 'su' and root password to become super-user.\n"
    1.47 +	exit 0
    1.48 +fi
    1.49 +
    1.50 +# Avoid reinstall
    1.51 +if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ]; then
    1.52 +	echo -e "\n$PACKAGE-$VERSION package is already installed.\n"
    1.53 +	exit 0
    1.54 +fi
    1.55 +
    1.56 +# Check linux-source
    1.57 +cp /proc/config.gz . && gunzip config.gz
    1.58 +DIFF=$(diff /usr/src/linux/.config config | awk 'BEGIN{i=0}/^[-+]/{ i++} END{print i}')
    1.59 +rm -f config config.gz
    1.60 +if [ $DIFF -gt 2 ]; then
    1.61 +	echo "Warning: Linux source .config file and currently installed kernel don't match."
    1.62 +	echo "Please rebuild Linux source with the proper .config file."
    1.63 +	echo "Otherwise you may not be able to load the generated drivers."
    1.64 +	sleep 2
    1.65 +fi
    1.66 +
    1.67 +# Get files
    1.68 +cd /usr/src
    1.69 +echo "Checking for source tarball... $WGET_URL"
    1.70 +if [ ! -f "$TARBALL" ]; then 
    1.71 +	wget $WGET_URL
    1.72 +	# Exit if download failed to avoid errors.
    1.73 +	if [ ! -f "$TARBALL" ]; then
    1.74 +		echo -e "\nDownload failed, exiting. Please check WGET_URL variable.\n"
    1.75 +		exit 1
    1.76 +	fi
    1.77 +fi
    1.78 +
    1.79 +case "$WGET_URL" in
    1.80 +*rpm)	rpm2cpio < $(basename $WGET_URL) | cpio -id;;
    1.81 +*deb)	dpkg-deb -x $(basename $WGET_URL) . ;;
    1.82 +*bz2)	tar xjf $(basename $WGET_URL) ;;
    1.83 +*tar.gz|*tgz)	tar xzf $(basename $WGET_URL) || exit 1 ;;
    1.84 +*zip)	unzip $(basename $WGET_URL);;
    1.85 +*o)	;;
    1.86 +esac
    1.87 +
    1.88 +# Set dirs
    1.89 +src=/usr/src/$PACKAGE-$VERSION
    1.90 +taz=/tmp/sm$RANDOM$RANDOM$RANDOM.$$
    1.91 +fs=$taz/$PACKAGE-$VERSION/fs
    1.92 +mkdir -p $fs
    1.93 +
    1.94 +# Create pseudo package
    1.95 +case "$PACKAGE" in 
    1.96 +hsfmodem)
    1.97 +	# Rules to configure and make the package.
    1.98 +	cd $src
    1.99 +	echo "Apply $file..."
   1.100 +	patch -p1 < /usr/share/softmodem/$PACKAGE-$VERSION.diff || exit 1
   1.101 +	# Build
   1.102 +	make all
   1.103 +	make ROOT=$fs install
   1.104 +	make clean
   1.105 +	# Data for automatic region setting
   1.106 +	mkdir -p $fs/usr/share/hsfmodem
   1.107 +	cp -a /usr/share/softmodem/zone.tab $fs/usr/share/hsfmodem
   1.108 +	# src is needed
   1.109 +	cd $taz
   1.110 +	mkdir -p $fs/usr/src
   1.111 +	mv $src $fs/usr/src
   1.112 +	;;
   1.113 +hcfpcimodem)
   1.114 +	untested
   1.115 +	# Rules to configure and make the package.
   1.116 +	cd $src
   1.117 +	echo "Apply $file..."
   1.118 +	patch -p1 < /usr/share/softmodem/$PACKAGE-$VERSION.diff || exit 1
   1.119 +	# Build
   1.120 +	make all
   1.121 +	make ROOT=$fs install
   1.122 +	make clean
   1.123 +	# Data for automatic region setting
   1.124 +	mkdir -p $fs/usr/share/hcfpcimodem
   1.125 +	cp -a /usr/share/softmodem/zone.tab $fs/usr/share/hcfpcimodem
   1.126 +	# src is needed
   1.127 +	cd $taz
   1.128 +	mkdir -p $fs/usr/src
   1.129 +	mv $src $fs/usr/src
   1.130 +	;;
   1.131 +martian)
   1.132 +	untested
   1.133 +	# Build
   1.134 +	src=/usr/src/$PACKAGE
   1.135 +	cd $src
   1.136 +	sed -i 's/uname -i/uname -m/' modem/Makefile
   1.137 +	sed -i 's/asm\/page.h/\/usr\/src\/linux\/include\/asm\/page.h/' modem/mport.c
   1.138 +	sed -i 's/asm\/page.h/\/usr\/src\/linux\/include\/asm\/page.h/' modem/tweakrelocsdynamic.c
   1.139 +	make all
   1.140 +	# Install
   1.141 +	mkdir -p $fs/usr/sbin
   1.142 +	cp -a modem/martian_modem $fs/usr/sbin
   1.143 +	mkdir -p $fs/lib/modules/`uname -r`/martian
   1.144 +	cp -a kmodule/martian_dev.ko $fs/lib/modules/`uname -r`/martian
   1.145 +	mkdir -p $fs/etc/init.d
   1.146 +	cp -a /usr/share/softmodem/martian.init $fs/etc/init.d/martian
   1.147 +	chmod +x $fs/etc/init.d/martian
   1.148 +	# Data for automatic region setting
   1.149 +	mkdir -p $fs/usr/share/martian
   1.150 +	cp -a /usr/share/softmodem/zone.tab $fs/usr/share/martian
   1.151 +	cp -a /usr/share/softmodem/martian.country $fs/usr/share/martian
   1.152 +	rm -rf $src
   1.153 +	;;
   1.154 +slmodem)
   1.155 +	untested
   1.156 +	# build modules
   1.157 +	cd $src
   1.158 +	make clean
   1.159 +	make drivers
   1.160 +	# Build slmodemd with ALSA support
   1.161 +	cd modem
   1.162 +	make clean
   1.163 +	make SUPPORT_ALSA=1
   1.164 +	# install
   1.165 +	cd $src
   1.166 +	mkdir -p $fs/lib/modules/`uname -r`/slamr
   1.167 +	cp -a drivers/*ko $fs/lib/modules/`uname -r`/slamr
   1.168 +	mkdir -p $fs/usr/sbin
   1.169 +	cp -a modem/slmodemd $fs/usr/sbin
   1.170 +	mkdir -p $fs/etc/init.d
   1.171 +	cp -a /usr/share/softmodem/slmodem.init $fs/etc/init.d/slmodem
   1.172 +	chmod +x $fs/etc/init.d/slmodem
   1.173 +	# Data for automatic region setting
   1.174 +	mkdir -p $fs/usr/share/slmodem
   1.175 +	cp -a /usr/share/softmodem/zone.tab $fs/usr/share/slmodem
   1.176 +	cp -a /usr/share/softmodem/slmodem.country $fs/usr/share/slmodem
   1.177 +	rm -rf $src
   1.178 +	;;
   1.179 +esac
   1.180 +
   1.181 +# Create receipt
   1.182 +cd $taz
   1.183 +cat /usr/share/softmodem/$PACKAGE.receipt> $PACKAGE-$VERSION/receipt
   1.184 +
   1.185 +# Pack
   1.186 +tazpkg pack $PACKAGE-$VERSION
   1.187 +
   1.188 +# Install pseudo package
   1.189 +tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
   1.190 +
   1.191 +# Clean
   1.192 +if [ -e /etc/tazwok.conf ]; then
   1.193 +	. /etc/tazwok.conf
   1.194 +	mkdir -p $PACKAGES_REPOSITORY
   1.195 +	cp -a $PACKAGE-$VERSION.tazpkg $PACKAGES_REPOSITORY
   1.196 +fi
   1.197 +rm -rf $taz