wok view get-softmodem-driver/stuff/get-softmodem-driver @ rev 3494

get-softmodem-driver: automatic country detection added during slmodem install
author Dominique Corbex <domcox@users.sourceforge.net>
date Thu Jun 18 14:43:23 2009 +0200 (2009-06-18)
parents e5ab27ad8b9e
children 07633a539a9d
line source
1 #!/bin/sh
2 # install softmodems drivers if needed.
4 PACKAGE=$(echo $0 | sed 's/.*get-\(.*\)-driver/\1/')
5 ROOT="$1"
6 DEPENDS=""
8 untested()
9 {
10 echo "--------------------------------------------------------"
11 echo "Due to a lack of compatible hardware for troubleshooting,"
12 echo "this $PACKAGE package has not been tested."
13 echo "Please report any bug to SliTaz Labs or SliTaz Forum."
14 echo "--------------------------------------------------------"
15 sleep 1
16 }
18 case "$PACKAGE" in
19 hsfmodem)
20 . /usr/share/softmodem/hsfmodem.receipt
21 echo $SHORT_DESC;;
22 hcfpcimodem)
23 . /usr/share/softmodem/hcfpcimodem.receipt
24 echo $SHORT_DESC;;
25 martian)
26 . /usr/share/softmodem/martian.receipt
27 echo $SHORT_DESC;;
28 slmodem)
29 . /usr/share/softmodem/slmodem.receipt
30 echo $SHORT_DESC;;
31 *)
32 echo "Unknown modem driver. Please run one of the following commands:"
33 for i in $(cd $(dirname $0); ls get-*-driver); do
34 [ -L $i ] || continue
35 [ "$(readlink $i)" = "get-modem-driver" ] || continue
36 echo " $i"
37 done
38 exit 1;;
39 esac
41 # Check if user is root to install.
42 if test $(id -u) != 0 ; then
43 echo -e "\nYou must be root to run `basename $0`."
44 echo -e "Please use 'su' and root password to become super-user.\n"
45 exit 0
46 fi
48 # Avoid reinstall
49 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ]; then
50 echo -e "\n$PACKAGE-$VERSION package is already installed.\n"
51 exit 0
52 fi
54 # Check linux-source
55 cp /proc/config.gz . && gunzip config.gz
56 DIFF=$(diff /usr/src/linux/.config config | awk 'BEGIN{i=0}/^[-+]/{ i++} END{print i}')
57 rm -f config config.gz
58 if [ $DIFF -gt 2 ]; then
59 echo "Warning: Linux source .config file and currently installed kernel don't match."
60 echo "Please rebuild Linux source with the proper .config file."
61 echo "Otherwise you may not be able to load the generated drivers."
62 sleep 2
63 fi
65 # Get files
66 cd /usr/src
67 echo "Checking for source tarball... $WGET_URL"
68 if [ ! -f "$TARBALL" ]; then
69 wget $WGET_URL
70 # Exit if download failed to avoid errors.
71 if [ ! -f "$TARBALL" ]; then
72 echo -e "\nDownload failed, exiting. Please check WGET_URL variable.\n"
73 exit 1
74 fi
75 fi
77 case "$WGET_URL" in
78 *rpm) rpm2cpio < $(basename $WGET_URL) | cpio -id;;
79 *deb) dpkg-deb -x $(basename $WGET_URL) . ;;
80 *bz2) tar xjf $(basename $WGET_URL) ;;
81 *tar.gz|*tgz) tar xzf $(basename $WGET_URL) || exit 1 ;;
82 *zip) unzip $(basename $WGET_URL);;
83 *o) ;;
84 esac
86 # Set dirs
87 src=/usr/src/$PACKAGE-$VERSION
88 taz=/tmp/sm$RANDOM$RANDOM$RANDOM.$$
89 fs=$taz/$PACKAGE-$VERSION/fs
90 mkdir -p $fs
92 # Create pseudo package
93 case "$PACKAGE" in
94 hsfmodem)
95 # Rules to configure and make the package.
96 cd $src
97 echo "Apply $file..."
98 patch -p1 < /usr/share/softmodem/$PACKAGE-$VERSION.diff || exit 1
99 # Build
100 make all
101 make ROOT=$fs install
102 make clean
103 # Data for automatic region setting
104 mkdir -p $fs/usr/share/hsfmodem
105 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/hsfmodem
106 # src is needed
107 cd $taz
108 mkdir -p $fs/usr/src
109 mv $src $fs/usr/src
110 ;;
111 hcfpcimodem)
112 untested
113 # Rules to configure and make the package.
114 cd $src
115 echo "Apply $file..."
116 patch -p1 < /usr/share/softmodem/$PACKAGE-$VERSION.diff || exit 1
117 # Build
118 make all
119 make ROOT=$fs install
120 make clean
121 # Data for automatic region setting
122 mkdir -p $fs/usr/share/hcfpcimodem
123 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/hcfpcimodem
124 # src is needed
125 cd $taz
126 mkdir -p $fs/usr/src
127 mv $src $fs/usr/src
128 ;;
129 martian)
130 untested
131 # Build
132 src=/usr/src/$PACKAGE
133 cd $src
134 sed -i 's/uname -i/uname -m/' modem/Makefile
135 sed -i 's/asm\/page.h/\/usr\/src\/linux\/include\/asm\/page.h/' modem/mport.c
136 sed -i 's/asm\/page.h/\/usr\/src\/linux\/include\/asm\/page.h/' modem/tweakrelocsdynamic.c
137 make all
138 # Install
139 mkdir -p $fs/usr/sbin
140 cp -a modem/martian_modem $fs/usr/sbin
141 mkdir -p $fs/lib/modules/`uname -r`/martian
142 cp -a kmodule/martian_dev.ko $fs/lib/modules/`uname -r`/martian
143 mkdir -p $fs/etc/init.d
144 cp -a /usr/share/softmodem/martian.init $fs/etc/init.d/martian
145 rm -rf $src
146 ;;
147 slmodem)
148 untested
149 # build modules
150 cd $src
151 make clean
152 make drivers
153 # Build slmodemd with ALSA support
154 cd modem
155 make clean
156 make SUPPORT_ALSA=1
157 # install
158 cd $src
159 mkdir -p $fs/lib/modules/`uname -r`/slamr
160 cp -a drivers/*ko $fs/lib/modules/`uname -r`/slamr
161 mkdir -p $fs/usr/sbin
162 cp -a modem/slmodemd $fs/usr/sbin
163 mkdir -p $fs/etc/init.d
164 cp -a /usr/share/softmodem/slmodem.init $fs/etc/init.d/slmodem
165 chmod +x $fs/etc/init.d/slmodem
166 # Data for automatic region setting
167 mkdir -p $fs/usr/share/slmodem
168 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/slmodem
169 cp -a /usr/share/softmodem/slmodem.country $fs/usr/share/slmodem
170 rm -rf $src
171 ;;
172 esac
174 # Create receipt
175 cd $taz
176 cat /usr/share/softmodem/$PACKAGE.receipt> $PACKAGE-$VERSION/receipt
178 # Pack
179 tazpkg pack $PACKAGE-$VERSION
181 # Install pseudo package
182 tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
184 # Clean
185 if [ -e /etc/tazwok.conf ]; then
186 . /etc/tazwok.conf
187 mkdir -p $PACKAGES_REPOSITORY
188 cp -a $PACKAGE-$VERSION.tazpkg $PACKAGES_REPOSITORY
189 fi
190 rm -rf $taz