wok diff get-softmodem-driver/stuff/get-softmodem-driver @ rev 20659
sakura: fix login shell (again)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Jan 13 21:29:34 2019 +0100 (2019-01-13) |
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 Sun Jan 13 21:29:34 2019 +0100 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