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

get-pcem-roms: version less
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jul 17 19:56:00 2021 +0000 (2021-07-17)
parents 4aed2b24febc
children
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. Please report"
13 echo "any success, failure, 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 hcfpcimodem)
22 . /usr/share/softmodem/hcfpcimodem.receipt ;;
23 martian)
24 . /usr/share/softmodem/martian.receipt ;;
25 slmodem)
26 . /usr/share/softmodem/slmodem.receipt ;;
27 *)
28 echo "Unknown modem driver. Please run one of the following commands:"
29 for i in $(cd $(dirname $0); ls get-*-driver); do
30 [ -L $i ] || continue
31 [ "$(readlink $i)" = "get-modem-driver" ] || continue
32 echo " $i"
33 done
34 exit 1;;
35 esac
37 # Report
38 echo "Installing $SHORT_DESC.."
40 # Check if user is root to install.
41 if test $(id -u) != 0 ; then
42 echo -e "\nYou must be root to run `basename $0`."
43 echo -e "Please use 'su' and root password to become super-user.\n"
44 exit 0
45 fi
47 # Avoid reinstall
48 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ]; then
49 echo -e "\n$PACKAGE-$VERSION package is already installed.\n"
50 exit 0
51 fi
53 # Check linux-source
54 cp /proc/config.gz . && gunzip config.gz
55 DIFF=$(diff /usr/src/linux/.config config | awk 'BEGIN{i=0}/^[-+]/{ i++} END{print i}')
56 rm -f config config.gz
57 if [ $DIFF -gt 2 ]; then
58 echo "Warning: Linux source .config file and currently installed kernel don't match."
59 echo "Please rebuild Linux source with the proper .config file."
60 echo "Otherwise you may not be able to load the generated drivers."
61 sleep 2
62 fi
64 # Get files
65 cd /usr/src
66 echo "Checking for source tarball... $WGET_URL"
67 if [ ! -f "$TARBALL" ]; then
68 wget $WGET_URL
69 # Exit if download failed to avoid errors.
70 if [ ! -f "$TARBALL" ]; then
71 echo -e "\nDownload failed, exiting. Please check WGET_URL variable.\n"
72 exit 1
73 fi
74 fi
76 case "$WGET_URL" in
77 *rpm) rpm2cpio < $(basename $WGET_URL) | cpio -id;;
78 *deb) dpkg-deb -x $(basename $WGET_URL) . ;;
79 *bz2) tar xjf $(basename $WGET_URL) ;;
80 *tar.gz|*tgz) tar xzf $(basename $WGET_URL) || exit 1 ;;
81 *zip) unzip $(basename $WGET_URL);;
82 *o) ;;
83 *) busybox tar xf $(basename $WGET_URL) ;;
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 chmod +x $fs/etc/init.d/martian
146 # Data for automatic region setting
147 mkdir -p $fs/usr/share/martian
148 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/martian
149 cp -a /usr/share/softmodem/martian.country $fs/usr/share/martian
150 rm -rf $src
151 ;;
152 slmodem)
153 untested
154 # build modules
155 cd $src
156 make clean
157 make drivers
158 # Build slmodemd with ALSA support
159 cd modem
160 make clean
161 make SUPPORT_ALSA=1
162 # install
163 cd $src
164 mkdir -p $fs/lib/modules/`uname -r`/slamr
165 cp -a drivers/*ko $fs/lib/modules/`uname -r`/slamr
166 mkdir -p $fs/usr/sbin
167 cp -a modem/slmodemd $fs/usr/sbin
168 mkdir -p $fs/etc/init.d
169 cp -a /usr/share/softmodem/slmodem.init $fs/etc/init.d/slmodem
170 chmod +x $fs/etc/init.d/slmodem
171 # Data for automatic region setting
172 mkdir -p $fs/usr/share/slmodem
173 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/slmodem
174 cp -a /usr/share/softmodem/slmodem.country $fs/usr/share/slmodem
175 rm -rf $src
176 ;;
177 esac
179 # Create receipt
180 cd $taz
181 cat /usr/share/softmodem/$PACKAGE.receipt> $PACKAGE-$VERSION/receipt
183 # Pack
184 tazpkg pack $PACKAGE-$VERSION
186 # Install pseudo package
187 tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
189 # Clean
190 if [ -e /etc/tazwok.conf ]; then
191 . /etc/tazwok.conf
192 mkdir -p $PACKAGES_REPOSITORY
193 cp -a $PACKAGE-$VERSION.tazpkg $PACKAGES_REPOSITORY
194 fi
195 rm -rf $taz