When installing slmodemd on Fedora core one has to download slmodem-2.9.11-20051101.tar.gz, and ungrab-winmodem.gz from LinModems Smartlink webpage and follow the directions given. In my case I have a directory local in my home directory and I do many installations from there.

This is how a standard slmodemd installation is performed.

[olivares@localhost ~]$ 
[olivares@localhost ~]$ cd local
[olivares@localhost local]$ tar -zxvf slmodem-2.9.11-20051101.tar.gz
[olivares@localhost local]$ tar -zxvf ungrab-winmodem.tar.gz
[olivares@localhost ~]$ cd slmodem-2.9.11-20051101
[olivares@localhost slmodem-2.9.11-20051101]$ ls
Changes  COPYING  drivers  Makefile  modem  patches  README  scripts
[olivares@localhost slmodem-2.9.11-20051101]$ make KENEL_VER=/lib/modules/2.6.16-1.2111_FC5/build/
make -C modem all
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2111_FC5/build
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2111_FC5/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2111_FC5
make[2]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrmo_init.o
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/sysdep_amr.o
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/st7554.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.o
  Building modules, stage 2.
  MODPOST
Warning: could not find /home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
  CC      /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.mod.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.ko
  CC      /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.mod.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.ko
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
make[2]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
[olivares@localhost slmodem-2.9.11-20051101]$ make
make -C modem all
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2111_FC5/build
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2111_FC5/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2111_FC5
make[2]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
  Building modules, stage 2.
  MODPOST
Warning: could not find /home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
make[2]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
[olivares@localhost slmodem-2.9.11-20051101]$ su -
Password:
[root@localhost ~]# cd /home/olivares/local/slmodem-2.9.11-20051101
[root@localhost slmodem-2.9.11-20051101]# make install
make -C modem all
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2111_FC5/build
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2111_FC5/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2111_FC5
make[2]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
  Building modules, stage 2.
  MODPOST
Warning: could not find /home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
make[2]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make install -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2111_FC5/build
make[1]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2111_FC5/build/include -o kernel-ver kernel-ver.c
mkdir -p /dev
mknod -m 600 /dev/slamr0 c 242 0 ;   mknod -m 600 /dev/slamr1 c 242 1 ;   mknod -m 600 /dev/slamr2 c 242 2 ;   mknod -m 600 /dev/slamr3 c 242 3 ;  echo -n
mknod -m 600 /dev/slusb0 c 243 0 ;   mknod -m 600 /dev/slusb1 c 243 1 ;   mknod -m 600 /dev/slusb2 c 243 2 ;   mknod -m 600 /dev/slusb3 c 243 3 ;  echo -n
make install KERNEL_VER=2.6.16-1.2111_FC5
make[2]: Entering directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
install -D -m 644 slamr.ko /lib/modules/2.6.16-1.2111_FC5/extra/slamr.ko
install -D -m 644 slusb.ko /lib/modules/2.6.16-1.2111_FC5/extra/slusb.ko
/sbin/depmod -a
make[2]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/drivers'
install -D -m 755 modem/slmodemd /usr/sbin/slmodemd
rm -f -rf /var/lib/slmodem
install -d -D -m 755 /var/lib/slmodem
[root@localhost slmodem-2.9.11-20051101]# cd ..
[root@localhost local]# cd ungrab-winmodem
[root@localhost ungrab-winmodem]# make
make modules -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/home/olivares/local/ungrab-winmodem
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
  CC [M]  /home/olivares/local/ungrab-winmodem/ungrab-winmodem.o
  Building modules, stage 2.
  MODPOST
  CC      /home/olivares/local/ungrab-winmodem/ungrab-winmodem.mod.o
  LD [M]  /home/olivares/local/ungrab-winmodem/ungrab-winmodem.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
[root@localhost ungrab-winmodem]# make install
make modules -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/home/olivares/local/ungrab-winmodem
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
  Building modules, stage 2.
  MODPOST
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-i686'
install -D -m 644 ungrab-winmodem.ko /lib/modules/2.6.16-1.2111_FC5/extra/ungrab-winmodem.ko
/sbin/depmod -a
[root@localhost ungrab-winmodem]# cd ,,
-bash: cd: ,,: No such file or directory
[root@localhost ungrab-winmodem]# cd ..
[root@localhost local]# modprobe ungrab-winmodem
[root@localhost local]# modprobe slamr
[root@localhost local]# slmodemd -c USA /dev/slamr0 &
[1] 2917
SmartLink Soft Modem: version 2.9.11 Apr 21 2006 08:06:55
symbolic link `/dev/ttySL0' -> `/dev/pts/4' created.
modem `slamr0' created. TTY is `/dev/pts/4'
Use `/dev/ttySL0' as modem device, Ctrl+C for termination.
[root@localhost local]# 

Latest/Next to Latest Fedora Core 5 kernel, installation of slmodemd, Keep it updated

[olivares@localhost local]$ cd slmodem-2.9.11-20051101
[olivares@localhost slmodem-2.9.11-20051101]$ make
KERNEL_DIR=/lib/modules/2.6.16-1.2122_FC5/build/
make -C modem all
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2122_FC5/build/
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2122_FC5/build//include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2122_FC5
make[2]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2122_FC5/build/
SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrmo_init.o
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/sysdep_amr.o
  CC [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/st7554.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.o
  Building modules, stage 2.
  MODPOST
Warning: could not find
/home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd
for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
  CC      /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.mod.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slamr.ko
  CC      /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.mod.o
  LD [M]  /home/olivares/local/slmodem-2.9.11-20051101/drivers/slusb.ko
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
make[2]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
[olivares@localhost slmodem-2.9.11-20051101]$ make
make -C modem all
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2122_FC5/build
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2122_FC5/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2122_FC5
make[2]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2122_FC5/build
SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
  Building modules, stage 2.
  MODPOST
Warning: could not find
/home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd
for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
make[2]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
[olivares@localhost slmodem-2.9.11-20051101]$ su
Password:
[root@localhost slmodem-2.9.11-20051101]# make install
make -C modem all
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/modem'
make[1]: Leaving directory `/home/olivares/local/slmodem-2.9.11-20051101/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2122_FC5/build
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2122_FC5/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.16-1.2122_FC5
make[2]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make modules -C /lib/modules/2.6.16-1.2122_FC5/build
SUBDIRS=/home/olivares/local/slmodem-2.9.11-20051101/drivers
make[3]: Entering directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
  Building modules, stage 2.
  MODPOST
Warning: could not find
/home/olivares/local/slmodem-2.9.11-20051101/drivers/.amrlibs.o.cmd
for /home/olivares/local/slmodem-2.9.11-20051101/drivers/amrlibs.o
make[3]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
make[2]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make install -C drivers KERNEL_DIR=/lib/modules/2.6.16-1.2122_FC5/build
make[1]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
cc -I/lib/modules/2.6.16-1.2122_FC5/build/include -o kernel-ver kernel-ver.c
mkdir -p /dev
mknod -m 600 /dev/slamr0 c 242 0 ;   mknod -m 600 /dev/slamr1 c 242 1
;   mknod -m 600 /dev/slamr2 c 242 2 ;   mknod -m 600 /dev/slamr3 c
242 3 ;  echo -n
mknod -m 600 /dev/slusb0 c 243 0 ;   mknod -m 600 /dev/slusb1 c 243 1
;   mknod -m 600 /dev/slusb2 c 243 2 ;   mknod -m 600 /dev/slusb3 c
243 3 ;  echo -n
make install KERNEL_VER=2.6.16-1.2122_FC5
make[2]: Entering directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
install -D -m 644 slamr.ko /lib/modules/2.6.16-1.2122_FC5/extra/slamr.ko
install -D -m 644 slusb.ko /lib/modules/2.6.16-1.2122_FC5/extra/slusb.ko
/sbin/depmod -a
make[2]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
make[1]: Leaving directory
`/home/olivares/local/slmodem-2.9.11-20051101/drivers'
install -D -m 755 modem/slmodemd /usr/sbin/slmodemd
rm -f -rf /var/lib/slmodem
install -d -D -m 755 /var/lib/slmodem
[root@localhost slmodem-2.9.11-20051101]# cd ..
[root@localhost local]# cd ungrab-winmodem
[root@localhost ungrab-winmodem]# make
make modules -C /lib/modules/2.6.16-1.2122_FC5/build
SUBDIRS=/home/olivares/local/ungrab-winmodem
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
  CC [M]  /home/olivares/local/ungrab-winmodem/ungrab-winmodem.o
  Building modules, stage 2.
  MODPOST
  CC      /home/olivares/local/ungrab-winmodem/ungrab-winmodem.mod.o
  LD [M]  /home/olivares/local/ungrab-winmodem/ungrab-winmodem.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
[root@localhost ungrab-winmodem]# make install
make modules -C /lib/modules/2.6.16-1.2122_FC5/build
SUBDIRS=/home/olivares/local/ungrab-winmodem
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
  Building modules, stage 2.
  MODPOST
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686'
install -D -m 644 ungrab-winmodem.ko
/lib/modules/2.6.16-1.2122_FC5/extra/ungrab-winmodem.ko
/sbin/depmod -a
[root@localhost ungrab-winmodem]# exit
exit
[olivares@localhost slmodem-2.9.11-20051101]$ su -
Password:
[root@localhost ~]# modprobe ungrab-winmodem
[root@localhost ~]# modprobe slamr
[root@localhost ~]# slmodemd -c USA /dev/slamr0
SmartLink Soft Modem: version 2.9.11 Apr 21 2006 08:06:55
symbolic link `/dev/ttySL0' -> `/dev/pts/4' created.
modem `slamr0' created. TTY is `/dev/pts/4'
Use `/dev/ttySL0' as modem device, Ctrl+C for termination.

Now to autoload slmodemd on Fedora or other Redhat based distros we can make use of the command

chkconfig

As I found an interesting explanation on the page http://www.netadmintools.com/art94.html and I made the connection with slmodemd. This should help users autoload slmodemd on Fedora or other RedHat based distros, or distros that incorporate chkconfig.

[olivares@localhost Documents]$ su -
Password:
[root@localhost ~]# cp /slmodem-2.9.X/scripts/slmodemd /etc/rc.d/init.d/
[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# chmod +x slmodemd

[root@localhost init.d]# chkconfig --help
chkconfig version 1.3.20 - Copyright (C) 1997-2000 Red
Hat, Inc.
This may be freely redistributed under the terms of
the GNU Public License.

usage:   chkconfig --list [name]
         chkconfig --add 
         chkconfig --del 
         chkconfig [--level ] 



[root@localhost init.d]# head -8 slmodemd
#!/bin/sh
#
# slmodemd:    Starts the SmartLink Modem Daemon
#
# chkconfig: 345 90 10
# description: This is the user space part of the
SmartLink Modem driver
# processname: slmodemd
# config: /etc/sysconfig/slmodem
[root@localhost init.d]#

The chkconfig line & description line must go into
every script that is to go under the control of
chkconfig. The description line seems pretty
self-explanatory. the chkconfig line:

# chkconfig: 345 90 10
              |  |  |
              |  |  priority for kill scripts 
              |  |
              |  priority for start scripts
              |
              run levels at which to start service



[root@localhost init.d]# chkconfig slmodemd --add
[root@localhost init.d]# chkconfig slmodemd on
[root@localhost init.d]# cd ..
[root@localhost rc.d]# for i in 0 1 2 3 4 5 6
> do
> ls rc$i.d/*slmodemd*
> done
rc0.d/K10slmodemd
rc1.d/K10slmodemd
rc2.d/S90slmodemd
rc3.d/S90slmodemd
rc4.d/S90slmodemd
rc5.d/S90slmodemd
rc6.d/K10slmodemd
[root@localhost rc.d]#

[root@localhost rc.d]# chkconfig slmodemd --list
slmodemd        0:off   1:off   2:on    3:on    4:on  
 5:on    6:off
[root@localhost rc.d]#


I also found this for other distros. From http://linuxhelp.blogspot.com/2006/04/enabling-and-disabling-services-during_01.html and then again using slmodemd we still have to

[root@localhost ~]# cp /slmodem-2.9.X/scripts/slmodemd /etc/rc.d/init.d/
[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# chmod +x slmodemd
for whichever distro that you want slmodemd to start at boot.

If you use Debian

Debian Method

Debian Linux has its own script to enable and disable services across runlevels. It is called update-rc.d. Going by the above example, you can enable slmodemd as follows:

# update-rc.d slmodemd defaults

... this will enable the apache webserver to start in the default run levels of 2,3,4 and 5. Of course, you can do it explicitly by giving the run levels instead of the "defaults" keyword as follows:

# update-rc.d slmodemd start 90 3 4 5 . stop 10 0 1 6 .

The above command modifies the sym-links in the respective /etc/rcX.d directories to start or stop the service in the destined runlevels. Here X stands for a value of 0 to 6 depending on the runlevel. One thing to note here is the dot (.) which is used to terminate the set which is important. Also 10 and 90 are the sequence codes which decides in what order of precedence the scripts in the /etc/init.d/ directory should be started or stopped.

And to disable the service in all the run levels, you execute the command:

# update-rc.d -f slmodemd remove

Here -f option which stands for force is mandatory.

But if you want to enable the service only in runlevel 5, you do this instead:

# update-rc.d slmodemd  start 90 5 . stop 10 0 1 2 3 4 6 .

If you use Gentoo

Gentoo Method
Gentoo also uses a script to enable or disable services during boot-up. The name of the script is rc-update . Gentoo has three default runlevels. Them being: boot, default and nonetwork. Suppose I want to add the apache webserver to start in the default runlevel, then I run the command:

# rc-update add slmodemd default

... and to remove the slmodemd, it is as simple as :

# rc-update del slmodemd

To see all the running applications at your runlevel and their status, similar to what is achieved by chkconfig --list, you use the rc-status command.

# rc-status --all

The old fashioned way is the way Marv explained to me when I wanted to autoload slmodemd. I refer you to the page where it clicked for me http://linmodems.technion.ac.il/archive-fourth/msg00963.html. The following slmodemd script works with Fedora Core 5 accomodating ungrab-winmodem and /dev/ creation with udev.

#!/bin/sh
#
# slmodemd:    Starts the SmartLink Modem Daemon
#
# chkconfig: 345 90 10
# description: This is the user space part of the SmartLink Modem driver
# processname: slmodemd
# config: /etc/sysconfig/slmodem

# Source function library.
. /etc/init.d/functions

prog=slmodemd
RETVAL=0

# Default configuration
SLMODEMD_DEVICE=slamr0
SLMODEMD_COUNTRY=USA

# Source configuration
CONFIG=/etc/sysconfig/$prog
if [ -f $CONFIG ]; then
        . $CONFIG
        # override default group and permissions if defined in $CONFIG;
        # other valid options also can be put into SLMODEMD_OPTS variable
        [ "$GROUP" ] && SLMODEMD_OPTS="$SLMODEMD_OPTS --group=$GROUP"
        [ "$PERMS" ] && SLMODEMD_OPTS="$SLMODEMD_OPTS --perm=$PERMS"
fi

# uncomment this if you want this feature (if necessary edit module pattern):
# do not try to start on a kernel which does not support it
# grep -q 'slamr\..*o' /lib/modules/`uname -r`/modules.dep || exit 0

start() {
        mkdir -p /dev
        mknod -m 600 /dev/slamr0 c 242 0
        cat /proc/modules | grep 'ungrab-winmodem' >/dev/null || {
          echo -n "ungrabbing winmodem ... "
          modprobe ungrab-winmodem && echo "done." || {
            echo "failed."
            exit -1
          }
        }
        modprobe slamr
        rmmod slamr
        sleep 3
        cat /proc/modules | grep 'slamr' >/dev/null || {
          echo -n "Loading SmartLink Modem driver into kernel ... "
          modprobe slamr && echo "done." || {
            echo "failed."
            exit -1
          }
        }
        echo -n "Starting SmartLink Modem driver for $SLMODEMD_DEVICE: "
        $prog /dev/null 2>/dev/null \
            --country=$SLMODEMD_COUNTRY $SLMODEMD_OPTS /dev/$SLMODEMD_DEVICE &
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success $"$prog startup" || failure $"$prog startup"
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
        return $RETVAL
}

stop() {
        echo -n "Shutting down SmartLink Modem driver: "
        killproc $prog
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
                stop
                start
                RETVAL=$?
        fi
        ;;
  *)
        echo "*** Usage: $prog {start|stop|status|restart|condrestart}"
        exit 1
esac

exit $RETVAL


If something does not work please make it known to me directly or to LinModems discussion list.

Fri Apr 28 22:06:52 2006