Help - Search - Members - Calendar
Full Version: Installing And Running Smartlink Modem Driver
Linuxhelp > Support > Hardware Support
goathunter
Hello. I am unable to install the drivers for my linmodem. It is a Smartlink SmartPCI562 56k modem. I am using mandriva 2005 LE. I downloaded the drivers from smlinkdotcom. I then used cut and paste to put file 'slmodem-2.9.10.tar.gz' into 'file:/home/marcus/tmp'

I then opened the console and typed
su
(enter password)
cd /home/marcus/tmp
ls (to make sure file is in there)
tar -xvzf slmodem-2.9.10.tar.gz
cd slmodem-2.9.10 (it extracts to it's own directory)
make
make install-amr

All worked fine until I got to make install-amr
I got this
[root@localhost slmodem-2.9.10]# make install-amr
make: *** No rule to make target `install-amr'. Stop.

So no go.

I then tried this
[root@localhost slmodem-2.9.10]# make install

and got this

make -C modem all
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/modem'
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.11-6mdk/build
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
cc -I/lib/modules/2.6.11-6mdk/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.11
make[2]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make modules -C /lib/modules/2.6.11-6mdk/build SUBDIRS=/home/marcus/tmp/slmodem-2.9.10/drivers
make: *** /lib/modules/2.6.11-6mdk/build: No such file or directory. Stop.
make: Entering an unknown directorymake: Leaving an unknown directorymake[2]: *** [all] Error 2
make[2]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make: *** [drivers] Error 2
[root@localhost slmodem-2.9.10]# ATI7
bash: ATI7: command not found
[root@localhost slmodem-2.9.10]#

Now would someone be able to point out what I'm doing wrong or point me in the right direction?
BTW I have installed all the mandriva development tools. i went to install software and selected all of them.

Also I am not quite sure what to do once I have installed the drivers. Do they work automatically or is their more commands for me to type and if so once everything is done will everything load automatically when I connect with kppp or wvdial? The readme and the makefile have me mystified.

Thanks for your time.

BTW here is the README (completey different language to me sad.gif )

Smart Link Ltd.
wwwdotsmlinkdotcom
Sep 30, 2003


Smart Link Soft Modem for Linux
-------------------------------


Introduction
============

This is Smart Link Soft Modem for Linux version 2.9. It provides
full-featured 56K Voice Fax Modem.
This is implemented as generic application (slmodemd) and set of
hardware specific kernel-space drivers (slamr, slusb).
ALSA modem drivers may be used instead of proprietary ones (see ALSA mode).

Features
========

Modem: V.92, V.90, V.34, V.32bis, V.32, V.23, V.22, V.21, Bell 103/212.
Flow control: V.42.
Compression: V.44, V.42bis.
Fax: Class 1.
Voice: V253 like modem.
Multiple modems are supported.


Supported Hardware
==================

HAMR5600 based AMR/CNR/MDC/ACR modem cards on the following Southbridge
chips:
- Intel ICH0,ICH2, ICH3, ICH4
- Via 686A, 686B, 8231, 8233
- SiS 630
- ALI 1535.
SmartPCI56/561/562/563 based PCI modem cards.
SmartUSB56 based USB modem.



Requirements
============

CPU: Intel Pentium II, Celron. AMD K6, Cyrix 500MHz or higher.
Memory: 64MB.

OS: Linux 2.4. You need the kernel header files at least (or full kernel
source tree) installed and configured.
Linux 2.6. You need the full kernel source tree installed and configured.

Note: Most Linux Distributions have 'ready to use' kernel source package -
be sure that this is installed.


Installation
============

1. Unpack tar.gz package file:

$ gzip -dc slmodem-2.9.X.tar.gz | tar xf -

2. 'cd' to package directory:

$ cd slmodem-2.9.X

3. Review and edit 'Makefile' (if need):

In many cases you will need to correct path to your local kernel
source tree:

KERNEL_DIR=/path/to/linux

Default KERNEL_DIR is '/lib/modules/<kerne-version>/build'. Many Linux
Distributions use directory '/usr/src/linux-<version>' also.

Note: If you are using Linux kernel 2.4, only header files should be
available for build in $(KERNEL_DIR)/include

Another way to pass right value KERNEL_DIR is to use command line
parameter while running 'make':

$ make KERNEL_DIR=/path/to/linux ...

4. Run 'make' command to compile package:

$ make

5. Install. As 'root' user run:

# make install

It will install:

- application 'slmodemd' under '/usr/sbin' directory

- hardware specific drivers (kernel modules) 'slamr' and 'slusb'
under conventional kernel modules directory

- character device nodes '/dev/slamr0-3' with major number 212
(for pci modems) and '/dev/slusb0-3' with major number 213
(for usb modems).

- config modules for autoloading (by editing file '/etc/modules.conf')
(only with 2.4 kernels)

6. Config modem country.

Use AT+GCI=<T.35 country code> command to setup country.

Also you can setup default modem country by passing command line
parameter '--country=MY_COUNTRY' to program 'slmodemd'.

See output of 'slmodemd --countrylist' for a list of supported
country names and T.35 country codes (see also 'slmodemd --help').

Note: Command ATI7 shows currently installed country setting.

8. Uninstallation.

In package directory just type:

# make uninstall


Getting Started
===============

After successful installation and configuration:

1. Load modem driver.

Load your modem hardware specific kernel module:

# modprobe slamr

if you are using AMR/CNR/PCI modem, or

# modprobe slusb

if you are using SmartUSB56 Modem.

Note: this will be done automatically when modules were
configured for 'loading on demand'

Note: this is safe to load both 'alamr' and 'slusb' modules.

2. Run soft modem application.

# /usr/sbin/slmodemd [options] <device_name>

Where device name is appropriate device node for your modem
(look at output of 'dmesg' command).
Run '/usr/sbin/slmodemd --help' for details.

Examples:

# /usr/sbin/slmodemd --country=USA /dev/slamr0

, or for SmartUSB56 Modems:

# /usr/sbin/slmodemd --country=ITALY /dev/slusb0

3. Using the modem.

When 'slmodemd' is running this creates PTY (pseudo-terminal) to
emulate modem port device, also this creates symbolic link
like '/dev/ttySL0' (shown at startup).

Config your application to use this link '/dev/ttySL0' (or PTY node
itself) as modem port.

Note: Some application want 'to know' that they are working with
pseudo-terminal and may require additional configurations.

Known application notes:

- 'wvdial' requires option 'Carrier Check = no' in config file

- some versions of 'kppp' may not work properly with devices named
like '/dev/ttySL0'. To workaround this you may create symbolic link
'/dev/modem' ( # ln -s /dev/ttySL0 /dev/modem ) and use this link
as modem device with 'kppp'

4. Startup automation.

There are examples of startup scripts in 'scripts' directory.


ALSA mode
=========

ALSA has the built-in modem drivers included in 'alsa-driver' >= 1.0.2
and in Linux kernel >= 2.6.5. Currently there is 'intel8x0m' (snd-intel8x0m)
modem driver, which supports ICH based AC97 modems (MC97).

Recent 'alsa-driver' (>=1.0.6) has also support for NVidia NForce
(snd-intel8x0m) and ATI IXP (snd-atiixp-modem) based modems.

1. Configure your kernel and enable ALSA and ICH based modem support
( 'Device Drivers' -> 'Sound' -> 'Advanced Linux Sound Architecture' ->
'PCI devices' -> 'Intel i8x0/MX440; AMD768/8111 modems' ) .

2. Build and install kernel and modules as usual (make , make modules_install,
etc.). ICH modem driver modem module name is 'snd-intel8x0m'
(if was configured as module).

3. Build application 'slmodemd' with ALSA support. For this in
slmodem-2.9.x dir:

$ cd modem
$ make SUPPORT_ALSA=1

This will build 'slmodemd' with ALSA support. If compilation is failed
review Makefile (near ALSA_SUPPORT condition) and define right library
and/or CFLAGS

4. Use option '--alsa' when running 'slmodemd' and ALSA conventional
device name ('hw:0' or 'hw:1' for instance). If modem support in
the kernel was enabled as module module 'snd-intel8x0m' should be loaded.

Note: Recent version of 'alsa-lib' (>= 1.0.6) has built-in "modem" device
name support ('modem:0', 'modem:1', etc). It is recommended to use
those names with modems (mandatory with ATI IXP modems).

Note: When using ALSA modem driver you don't need to load other
modules ('slamr').


Troubleshooting
===============

If you get an error message during installation/configuration or loading
the modules try to see it in FAQ file.

Please report the problem to your modem provider or to us
(linux-support@smlinkdotcom).


Feedback
========

Please send any feedbacks to Smart Link. See the Smart Link
web site for contact information (wwwdotsmlindotcom) or to
linux-support@smlinkdotcom.

Thanks for your time.
goathunter
Ok. managed to install the driver last night.
heres what I did.

uname -r

got

2.6.11-6mdk

Thats my kernel.

Then
su
password
# /usr/bin/updatedb

that 'updateb' makes a database of all files on harddrive to use when searching for a file

# /usr/bin/locate KERNEL-2.6.11

'locate' finds the file, in this case my kernel.

Then
# urpmi kernel-source

installing kernel-source-2.6-2.6.11-6mdk.i586.rpm from /var/ftp/pub/Mandrakelinux/media/main3
Preparing... #############################################
1/1: kernel-source-2.6 #############################################

that installs the kernel source.

the kernel source is at /var/ftp/pub/Mandrakelinux/media/main3


Now according to info I got on another forum I needed to install a program called ungrabwinmodem because of the kernel I was using. It can be found here linmodemsdottechniondotacdotil/packages/smartlink/
Heres how I installed it.
I put the tar.gz file in /home/marcus
Then went to konsole and

# cd /home/marcus
ls (to make sure file is there)
# tar -xvzf ungrab-winmodem.tar.gz

this is what it spat out

ungrab-winmodem/
ungrab-winmodem/Makefile
ungrab-winmodem/ungrab-winmodem.c
ungrab-winmodem/Readme.txt

then

# cd ungrab-winmodem
# make

spits out this

make modules -C /lib/modules/2.6.11-6mdk/build SUBDIRS=/home/marcus/ungrab-winmodem
make[1]: Entering directory `/usr/src/linux-2.6.11-6mdk'
CC [M] /home/marcus/ungrab-winmodem/ungrab-winmodem.o
Building modules, stage 2.
MODPOST
CC /home/marcus/ungrab-winmodem/ungrab-winmodem.mod.o
LD [M] /home/marcus/ungrab-winmodem/ungrab-winmodem.ko
make[1]: Leaving directory `/usr/src/linux-2.6.11-6mdk'

Then

# make install

spits out this

make modules -C /lib/modules/2.6.11-6mdk/build SUBDIRS=/home/marcus/ungrab-winmodem
make[1]: Entering directory `/usr/src/linux-2.6.11-6mdk'
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/linux-2.6.11-6mdk'
install -D -m 644 ungrab-winmodem.ko /lib/modules/2.6.11-6mdk/extra/ungrab-winmodem.ko
/sbin/depmod -a

Installed.


then to install the drivers.

]# cd /home/marcus/tmp
[root@localhost tmp]# ls (to see whats in the folder)

[root@localhost tmp]# cd slmodem-2.9.10

[root@localhost slmodem-2.9.10]# make

(this is what it put out)

make -C modem all
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/modem'
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/modem'

[root@localhost slmodem-2.9.10]# make install

(this is what it put out)

make -C modem all
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/modem'
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.11-6mdk/build
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
cc -I/lib/modules/2.6.11-6mdk/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.11-6mdk
make[2]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make modules -C /lib/modules/2.6.11-6mdk/build SUBDIRS=/home/marcus/tmp/slmodem-
make[3]: Entering directory `/usr/src/linux-2.6.11-6mdk'
CC [M] /home/marcus/tmp/slmodem-2.9.10/drivers/amrmo_init.o
/home/marcus/tmp/slmodem-2.9.10/drivers/amrmo_init.c: In function `amrmo_read':
/home/marcus/tmp/slmodem-2.9.10/drivers/amrmo_init.c:353: warning: ignoring retuttribute warn_unused_result
/home/marcus/tmp/slmodem-2.9.10/drivers/amrmo_init.c: In function `amrmo_write':
/home/marcus/tmp/slmodem-2.9.10/drivers/amrmo_init.c:366: warning: ignoring retu attribute warn_unused_result
CC [M] /home/marcus/tmp/slmodem-2.9.10/drivers/sysdep_amr.o
CC [M] /home/marcus/tmp/slmodem-2.9.10/drivers/st7554.o
/home/marcus/tmp/slmodem-2.9.10/drivers/st7554.c: In function `st7554_init':
/home/marcus/tmp/slmodem-2.9.10/drivers/st7554.c:1112: warning: implicit declara
LD [M] /home/marcus/tmp/slmodem-2.9.10/drivers/slamr.o
LD [M] /home/marcus/tmp/slmodem-2.9.10/drivers/slusb.o
Building modules, stage 2.
MODPOST
CC /home/marcus/tmp/slmodem-2.9.10/drivers/slamr.mod.o
LD [M] /home/marcus/tmp/slmodem-2.9.10/drivers/slamr.ko
CC /home/marcus/tmp/slmodem-2.9.10/drivers/slusb.mod.o
LD [M] /home/marcus/tmp/slmodem-2.9.10/drivers/slusb.ko
make[3]: Leaving directory `/usr/src/linux-2.6.11-6mdk'
make[2]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make install -C drivers KERNEL_DIR=/lib/modules/2.6.11-6mdk/build
make[1]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
cc -I/lib/modules/2.6.11-6mdk/build/include -o kernel-ver kernel-ver.c
mkdir -p /dev
mknod -m 600 /dev/slamr0 c 212 0 ; mknod -m 600 /dev/slamr1 c 212 1 ; mknod /dev/slamr3 c 212 3 ; echo -n
mknod -m 600 /dev/slusb0 c 213 0 ; mknod -m 600 /dev/slusb1 c 213 1 ; mknod /dev/slusb3 c 213 3 ; echo -n
make install KERNEL_VER=2.6.11-6mdk
make[2]: Entering directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
install -D -m 644 slamr.ko /lib/modules/2.6.11-6mdk/extra/slamr.ko
install -D -m 644 slusb.ko /lib/modules/2.6.11-6mdk/extra/slusb.ko
/sbin/depmod -a
make[2]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
make[1]: Leaving directory `/home/marcus/tmp/slmodem-2.9.10/drivers'
install -D -m 755 modem/slmodemd /usr/sbin/slmodemd
rm -f -rf /var/lib/slmodem
install -d -D -m 755 /var/lib/slmodem

Now thats where my success ends. The driver is installed but it will not work. I read the readme and it says to set up the area codes. This is the commands I typed and what it gave me back.

[root@localhost slmodem-2.9.10]# AT+GCI+64
bash: AT+GCI+64: command not found
[root@localhost slmodem-2.9.10]# slmodemd --countrylist
02: ALGERIA
07: ARGENTINA
09: AUSTRALIA
0a: AUSTRIA
0c: BAHREIN
0f: BELGIUM
16: BRAZIL
1a: BRUNEI
1b: BULGARIA
20: CANADA
25: CHILE
26: CHINA
100: CTR21EUROPE
2d: CYPRUS
2e: CZECH_REPUBLIC
31: DENMARK
36: EGYPT
101: ESTONIA
3c: FINLAND
3d: FRANCE
42: GERMANY
46: GREECE
50: HONG_KONG
51: HUNGARY
52: ICELAND
53: INDIA
54: INDONESIA
57: IRELAND
58: ISRAEL
59: ITALY
00: JAPAN
5e: JORDAN
61: KOREA
62: KUWAIT
103: LATVIA
64: LEBANON
104: LITHUANIA
69: LUXEMBOURG
6c: MALAYSIA
70: MALTA
73: MEXICO
77: MOROCCO
7b: NETHERLANDS
7e: NEW_ZEALAND
82: NORWAY
83: OMAN
84: PAKISTAN
88: PERU
89: PHILIPPINES
8a: POLAND
8b: PORTUGAL
8e: ROMANIA
b8: RUSSIA
98: SAUDIARABIA
9c: SINGAPORE
c5: SLOVAKIA
c6: SLOVENIA
9f: SOUTHAFRICA
107: SOUTHKOREA
a0: SPAIN
a1: SRILANKA
a5: SWEDEN
a6: SWITZERLAND
108: TAIWAN
a9: THAILAND
ad: TUNISIA
ae: TURKEY
b3: UAE
b4: UK
b7: URUGUAY
b5: USA
bc: VIETNAM
[root@localhost slmodem-2.9.10]# AT+GCI=7e
bash: AT+GCI=7e: command not found

As you can see I tryed to install the country just like the readme says with no success.

So, failing to set country code (btw I'm in New Zealand), I went to the next step. Since I'm using a PCI modem, I typed

[root@localhost slmodem-2.9.10]# modprobe slamr

and it spits out this

FATAL: Error inserting slamr (/lib/modules/2.6.11-6mdk/extra/slamr.ko): Unknown
symbol in module, or unknown parameter (see dmesg)

So I type

dmesg

and get

slamr: module license 'Smart Link Ltd.' taints kernel.
slamr: Unknown symbol get_device
slamr: Unknown symbol put_device
slamr: Unknown symbol device_release_driver
slusb: Unknown symbol usb_endpoint_halted
slamr: Unknown symbol get_device
slamr: Unknown symbol put_device
slamr: Unknown symbol device_release_driver

So I am stuck again. Can anyone tell me what to do now?
Cheers and thanks for your time.
goathunter
Edit
sorry double post. deleted
Gummo97
Hi first post here,

Just to say that I am having similar problems with the exact same modem drivers. I can answer the above issue regarding country.

If you type:

# slmodemd --c=UK

That should work, ie ignore the code and type in the country (I am in the UK in case that wasnt clear!)

If anyone has got this modem working can they please help me tongue.gif thank you. Please bare in mind that I have been looking at linux for one short week.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2017 Invision Power Services, Inc.