[SCRIPT] slmodem.slaxbuild for Smartlink modems

Post tutorials, HOWTO's and other useful resources here.
User avatar
Tonio
Contributor
Contributor
Posts: 276
Joined: 28 Dec 2010, 16:37
Distribution: Slackware,porteus,FreeBSD,Slax
Location: 127.0.0.1

[SCRIPT] slmodem.slaxbuild for Smartlink modems

Post#1 by Tonio » 28 Dec 2010, 20:27

Cut + paste code below and save as

Code: Select all

slmodem.slaxbuild 
run

Code: Select all

chmod +x slmodem.slaxbuild
and then run

Code: Select all

# ./slmodem.slaxbuild
and a new slmodem-2.9.11-20100718.sq4.lzm

Code: Select all

#!/bin/bash
#
# slmodemd package for Smartlink Modems
# Download both packages (slmodem and ungrab-winmodem) with wget, uncomment if internet
# connection is not present put a "#" before wget commands
#
#wget http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20100718.tar.gz
#sleep 2
#wget http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-20090716.tar.gz
#sleep 2
PKG=slmodem-2.9.11-20100718
TMP=/tmp/slmodem$$
PKG2=ungrab-winmodem-20090716
TMP2=/tmp/ungrab-winmodem$$

#set -e

tar -zxvf $PKG*
tar -zxvf $PKG2*
# copy rc.slmodemd fromm script/slackware packages and make changes to work in slax
cd $PKG/scripts/slackware/
sed -i '8 s|/dev/slusb0|/dev/slamr0|g' rc.slmodemd
sed -i '8 a /sbin/depmod -a' rc.slmodemd
sed -i '9 a sleep 3' rc.slmodemd
sed -i '13 a if ! [[ -e $SLMODEMD_DEVICE ]] &> /dev/null; then \' rc.slmodemd
sed -i '14 a   {\' rc.slmodemd
sed -i '15 a \\t  mkdir -p /dev' rc.slmodemd
sed -i '16 a \\t  mknod -m 600 /dev/slamr0 c 242 0 ; mknod -m 600 /dev/slamr1 c 242 1 ;' rc.slmodemd
sed -i '17 a \\t  mknod -m 600 /dev/slamr2 c 242 2 ; mknod -m 600 /dev/slamr3 c 242 3 ;' rc.slmodemd
sed -i '18 a \\t  echo -n' rc.slmodemd
sed -i '19 a \\t  mknod -m 600 /dev/slusb0 c 243 0 ; mknod -m 600 /dev/slusb1 c 243 1 ;' rc.slmodemd
sed -i '20 a \\t  mknod -m 600 /dev/slusb2 c 243 2 ; mknod -m 600 /dev/slusb3 c 243 3 ;' rc.slmodemd
sed -i '21 a \\t  echo -n ||' rc.slmodemd
sed -i '22 a \\t   {' rc.slmodemd
sed -i '23 a \\t     echo "failed."' rc.slmodemd
sed -i '24 a \\t     exit -1' rc.slmodemd
sed -i '25 a \\t   }' rc.slmodemd
sed -i '26 a   }' rc.slmodemd
sed -i '27 a fi' rc.slmodemd
sed -i '28 a\' rc.slmodemd
sed -i '28 a \\t cat /proc/modules | grep 'ungrab_winmodem' >/dev/null ||' rc.slmodemd
sed -i '29 a \\t {' rc.slmodemd
sed -i '30 a \\t   echo -n "Ungrabbing winmodem from kernel ... "' rc.slmodemd
sed -i '31 a \\t   modprobe ungrab-winmodem && echo "done." ||' rc.slmodemd
sed -i '32 a \\t   {' rc.slmodemd
sed -i '33 a \\t    echo "failed."' rc.slmodemd
sed -i '34 a \\t    exit -1' rc.slmodemd
sed -i '35 a \\t   }' rc.slmodemd
sed -i '36 a \\t }' rc.slmodemd
sed -i '37 a \\t cat /proc/modules | grep 'slamr' >/dev/null ||' rc.slmodemd
sed -i '38 a \\t {' rc.slmodemd
sed -i '39 a \\t   echo -n "Loading SmartLink Modem driver into kernel ... "' rc.slmodemd
sed -i '40 a \\t   modprobe slamr && echo "done." ||' rc.slmodemd
sed -i '41 a \\t   {' rc.slmodemd
sed -i '42 a \\t    echo "failed."' rc.slmodemd
sed -i '43 a \\t    exit -1' rc.slmodemd
sed -i '44 a \\t   }' rc.slmodemd
sed -i '45 a \\t }' rc.slmodemd
# end of long sed expression
mkdir -p $TMP/etc/rc.d/
cp rc.slmodemd $TMP/etc/rc.d/
chmod +x $TMP/etc/rc.d/rc.slmodemd
cd ..
cd ..
# return to base directory
sleep 3

make KERNEL_DIR=/lib/modules/`uname -r`/build
make all
make install DESTDIR=$TMP
sleep 3
cd ..

# take care of ungrab-winmodem
cd $PKG2
make
make install
mkdir -p $TMP/lib/modules/`uname -r`/extra
cp -ra /lib/modules/`uname -r`/extra/ungrab-winmodem.ko $TMP/lib/modules/`uname -r`/extra
sleep 5
rm -Rf $TMP2

# delete slamr.ko and ungrab-winmodem.ko
rm -rf /lib/modules/`uname -r`/extra/slamr.ko
rm -rf /lib/modules/`uname -r`/extra/ungrab-winmodem.ko

# copy build script
cd ..
mkdir -p $TMP/usr/src/slaxbuilds/
cp $0 $TMP/usr/src/slaxbuilds/
find $TMP -type d | xargs chmod -v 755
find $TMP | grep .gz | xargs gunzip
find $TMP | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded

dir2lzm $TMP $PKG.sq4.lzm
rm -Rf $TMP
rm -Rf $PKG
#rm -Rf $TMP2
rm -Rf $PKG2
chmod 755 $PKG.sq4.lzm

User avatar
Tonio
Contributor
Contributor
Posts: 276
Joined: 28 Dec 2010, 16:37
Distribution: Slackware,porteus,FreeBSD,Slax
Location: 127.0.0.1

Re: [SCRIPT] slmodem.slaxbuild for Smartlink modems

Post#2 by Tonio » 03 Jul 2011, 01:47

Made some changes, sq4.lzm to xzm, and slaxbuild to pbuild:

New document found here:
http://porteus.org/info/docs/49-interne ... odems.html

Special thanks to Ahau for his tremendous work!

Code: Select all

#!/bin/bash
#
# slmodemd package for Smartlink Modems
# Download both packages (slmodem and ungrab-winmodem) with wget, ncomment if internet
# connection is not present put a "#" before wget commands
#
#wget http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20110321.tar.gz
#sleep 2
#wget http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-20090716.tar.gz
#sleep 2
PKG=slmodem-2.9.11-20110321
TMP=/tmp/slmodem$$
PKG2=ungrab-winmodem-20090716
TMP2=/tmp/ungrab-winmodem$$

#set -e

tar -zxvf $PKG*
tar -zxvf $PKG2*
# copy rc.slmodemd fromm script/slackware packages and make changes to work in porteus
cd $PKG/scripts/slackware/
sed -i '8 s|/dev/slusb0|/dev/slamr0|g' rc.slmodemd
sed -i '8 a /sbin/depmod -a' rc.slmodemd
sed -i '9 a sleep 3' rc.slmodemd
sed -i '13 a if ! [[ -e $SLMODEMD_DEVICE ]] &> /dev/null; then \' rc.slmodemd
sed -i '14 a {\' rc.slmodemd
sed -i '15 a \\t mkdir -p /dev' rc.slmodemd
sed -i '16 a \\t mknod -m 600 /dev/slamr0 c 242 0 ; mknod -m 600 /dev/slamr1 c 242 1 ;' rc.slmodemd
sed -i '17 a \\t mknod -m 600 /dev/slamr2 c 242 2 ; mknod -m 600 /dev/slamr3 c 242 3 ;' rc.slmodemd
sed -i '18 a \\t echo -n' rc.slmodemd
sed -i '19 a \\t mknod -m 600 /dev/slusb0 c 243 0 ; mknod -m 600 /dev/slusb1 c 243 1 ;' rc.slmodemd
sed -i '20 a \\t mknod -m 600 /dev/slusb2 c 243 2 ; mknod -m 600 /dev/slusb3 c 243 3 ;' rc.slmodemd
sed -i '21 a \\t echo -n ||' rc.slmodemd
sed -i '22 a \\t {' rc.slmodemd
sed -i '23 a \\t echo "failed."' rc.slmodemd
sed -i '24 a \\t exit -1' rc.slmodemd
sed -i '25 a \\t }' rc.slmodemd
sed -i '26 a }' rc.slmodemd
sed -i '27 a fi' rc.slmodemd
sed -i '28 a\' rc.slmodemd
sed -i '28 a \\t cat /proc/modules | grep 'ungrab_winmodem' >/dev/null ||' rc.slmodemd
sed -i '29 a \\t {' rc.slmodemd
sed -i '30 a \\t echo -n "Ungrabbing winmodem from kernel ... "' rc.slmodemd
sed -i '31 a \\t modprobe ungrab-winmodem && echo "done." ||' rc.slmodemd
sed -i '32 a \\t {' rc.slmodemd
sed -i '33 a \\t echo "failed."' rc.slmodemd
sed -i '34 a \\t exit -1' rc.slmodemd
sed -i '35 a \\t }' rc.slmodemd
sed -i '36 a \\t }' rc.slmodemd
sed -i '37 a \\t cat /proc/modules | grep 'slamr' >/dev/null ||' rc.slmodemd
sed -i '38 a \\t {' rc.slmodemd
sed -i '39 a \\t echo -n "Loading SmartLink Modem driver into kernel ... "' rc.slmodemd
sed -i '40 a \\t modprobe slamr && echo "done." ||' rc.slmodemd
sed -i '41 a \\t {' rc.slmodemd
sed -i '42 a \\t echo "failed."' rc.slmodemd
sed -i '43 a \\t exit -1' rc.slmodemd
sed -i '44 a \\t }' rc.slmodemd
sed -i '45 a \\t }' rc.slmodemd
# end of long sed expression
mkdir -p $TMP/etc/rc.d/
cp rc.slmodemd $TMP/etc/rc.d/
chmod +x $TMP/etc/rc.d/rc.slmodemd
cd ..
cd ..
# return to base directory
sleep 3

make KERNEL_DIR=/lib/modules/`uname -r`/build
make all
make install DESTDIR=$TMP
sleep 3
cd ..

# take care of ungrab-winmodem
cd $PKG2
make
make install
mkdir -p $TMP/lib/modules/`uname -r`/extra
cp -ra /lib/modules/`uname -r`/extra/ungrab-winmodem.ko $TMP/lib/modules/`uname -r`/extra
sleep 5
rm -Rf $TMP2

# delete slamr.ko and ungrab-winmodem.ko
rm -rf /lib/modules/`uname -r`/extra/slamr.ko
rm -rf /lib/modules/`uname -r`/extra/ungrab-winmodem.ko

# copy build script
cd ..
mkdir -p $TMP/usr/src/pbuilds/
cp $0 $TMP/usr/src/pbuilds/
find $TMP -type d | xargs chmod -v 755
find $TMP | grep .gz | xargs gunzip
find $TMP | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded

dir2xzm $TMP $PKG.xzm
rm -Rf $TMP
rm -Rf $PKG
rm -Rf $PKG2
chmod 755 $PKG.xzm

Post Reply