# Smartlink Winmodem Driver Nightmare - slmodem

## hidethebaby

Hi,

I'm installing Gentoo on a laptop for an aquaintance and have successfully managed everything including alsa and kernel 2.6 but I'm stuck on getting the damn modem to go.

The laptop vendor docs say 

"Includes a SM-Link AMR modem."

The drivers the vendor says they have got it working under are slmdm-2.7.10.tar.gz from 

SmartLink (ftp://ftp.smlink.com/linux/unsupported/).

However, that version is very old it looks and I don't know much but it seems like its kernel 2.4 only. It certainly didn't compile anyway.

I'm using kernel 2.6.7 (from gentoo-dev-sources 2.6.7-r6) built using genkernel with no modifications.

The system is a Transmeta 5800 with everything integrated into one chip: the M1535+ (I think - I know sqat about hardware) and their linux FAQ is available at http://www.ali.com.tw/eng/support/faq_linux_os_faqs.htm

I've tried all the versions of net-dialup/slmodem:

2.7.14 (fails on compile)

2.9.7 (fails on compile)

2.9.7-r1(fails on compile)

2.9.7-r2 (compiles and installs successfully)

2.9.8 (failed on compile)

Attempting to use the net-dialup/slmodem-2.9.7-r2 without alsa support with the module slamr I get a NO DIALTONE error when using wvdial (and I have included the Check Carrier = no in wvdial.conf) This is done with the /etc/init.d/slmodem script that reports no problems when it is started.

wvdial output:

```

--> WvDial: Internet dialer version 1.53

--> Initializing modem.

--> Sending: ATZ

ATZ

OK

--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

OK

--> Modem initialized.

--> Sending: ATDT OMITTED

--> Waiting for carrier.

ATDT OMITTED

NO CARRIER

--> No Carrier!  Trying again.

--> Sending: ATDT OMITTED

--> Waiting for carrier.

ATDT OMITTED

NO CARRIER

--> No Carrier!  Trying again.

--> Sending: ATDT OMITTED

--> Waiting for carrier.

ATDT OMITTED

NO DIALTONE

--> No dial tone.

--> Disconnecting at Sat Jul  3 13:48:08 2004

```

wvdial.conf:

```

[Dialer Defaults]

Modem = /dev/ttySL0

Baud = 460800

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

Carrier Check = no

ISDN = 0

Modem Type = Analog Modem

Phone = OMITTED

Username = OMITTED

Password = OMITTED

```

I have tried to put 'Carrier Check = no' at various points in the file as you will notice that it still says '--> Waiting for carrier.'.

Attempting to use the slmodem with alsa support by calling 

/usr/sbin/slmodem --alsa --country=NEW_ZEALAND hw:0 OR

/usr/sbin/slmodem --alsa --country=NEW_ZEALAND hw:1

Results in console output of:

```

error: mdm setup: cannot stat `hw:0': No such file or directory

error: cannot setup device `hw:0'

(or 'hw:1' when hw:1 is used)

```

Which I really don't understand cause alsa seems to be working fine (I have tested by listening to a CD) But I don't really understand much.

Another thing which might be important is when I run modules-update I get:

```

/etc/modules.d/slmodem: line 12: alias: char-major-212: not found

/etc/modules.d/slmodem: line 12: alias: slamr: not found

/etc/modules.d/slmodem: line 13: alias: char-major-213: not found

/etc/modules.d/slmodem: line 13: alias: slusb: not found

```

then an 'lsmod | grep slamr' shows nothing. So then I do 'modprobe slamr' and 'lsmod | grep slamr' shows:

```

slamr                 375716  0

```

But trying to connect via wvdial has the same effect - a NO DIALTONE.

Running modem_test I get:

```

<820.305899> modemB: startup modem...

<820.306099> modemB: update termios...

main: created modemB: /dev/pts/4

And then nothing - so I quit that with a CTRL C (I wait a few minutes) and I get:

main: signal 2: mark termination.

<960.990496> modemA: modem_delete...

<960.991551> modemB: modem_delete...

```

My /etc/devfs.d/slmodem is:

```

LOOKUP          ^slamr0$   MODLOAD ACTION slamr

LOOKUP          ^slamr0$   CFUNCTION GLOBAL mksymlink ttySL0 modem

REGISTER        ^slamr0$   CFUNCTION GLOBAL mksymlink $devname modem

UNREGISTER      ^slamr0$   CFUNCTION GLOBAL unlink modem

LOOKUP          ^slusb0$   MODLOAD ACTION slusb

LOOKUP          ^slusb0$   CFUNCTION GLOBAL mksymlink ttySL0 modem

REGISTER        ^slusb0$   CFUNCTION GLOBAL mksymlink $devname modem

UNREGISTER      ^slusb0$   CFUNCTION GLOBAL unlink modem

```

My /etc/conf.d/slmodem is:

```

MODULE=slamr

# or MODULE=slusb

NICE=-6

DEV=/dev/slamr0

LN_DEV=/dev/modem

#MODEM_DAEMON=/usr/sbin/slmodemd

COUNTRY=NEW_ZEALAND

GROUP=dialout

```

dmesg reports:

```

slamr: module license 'Smart Link Ltd.' taints kernel.

slamr: SmartLink AMRMO modem.

slamr: probe 10b9:5457 SL1800 card...

slamr: mc97 codec is SIL21

slamr: slamr0 is SL1800 card.

```

lspci outputs:

```

0000:00:00.0 Host bridge: Transmeta Corporation LongRun Northbridge (rev 03)

0000:00:00.1 RAM memory: Transmeta Corporation SDRAM controller

0000:00:00.2 RAM memory: Transmeta Corporation BIOS scratchpad

0000:00:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

0000:00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)

0000:00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]

0000:00:08.0 Modem: ALi Corporation M5457 AC'97 Modem Controller

0000:00:09.0 VGA compatible controller: Silicon Integrated Systems [SiS] 315PRO PCI/AGP VGA Display Adapter

0000:00:0a.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:0a.1 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:0a.2 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:0a.3 USB Controller: ALi Corporation USB 2.0 Controller (rev 01)

0000:00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)

0000:00:11.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]

```

ls -l /dev/ttySL0 reports:

```

lr-xr-xr-x    1 root     root           10 Jul  3 13:46 /dev/ttySL0 -> /dev/pts/5

```

ls -l /dev/modem reports:

```

lr-xr-xr-x    1 root     root            6 Jul  3 12:53 /dev/modem -> ttySL0

```

ls -l /dev/slamr0 reports:

```

crw-------    1 root     root     212,   0 Jan  1  1970 /dev/slamr0

```

I have scoured the forums and the bug reports. 

I have read all posts resulting from a forum search of 'slmodem' I have not been able to find a similar enough one to help me (or I did and the person hadn't done a follow-up).

The bug reports from a search of 'slmodem' seem to indicate widespread problems, but again I couldn't find something to match with my problem enough.

The most extensive one is: https://bugs.gentoo.org/show_bug.cgi?id=47947

that is a discussion around the net-dialup/slmodem-2.9.8 and I couldn't get enough information out of it.

I have also tried manually installing the drivers direct from smartlinks ftp site (tried right up to version 2.9.9 - the latest). But I get the same results. I would think that is not the problem though - I'm sure I'm missing something in the configuration.

Any help would be much appreciated, is there any other information I can provide? - I'm at my wits end   :Sad:   :Confused:   :Sad:   :Confused: 

I'll be grinning for days if I can just get it going, either under alsa or slamr (what's the best anyway...??)

Cheers

Willie

----------

## hidethebaby

bump   :Sad: 

----------

## cmuus

i have the same problem,

 the same Modem, same config files an no idea whats wrong !!!

greetings

Chrisch

----------

## pjv

I have the intel8x0m. I'm not sure, but if you say you have to use the slamr part opf slmodemd, shouldn't you build the slamr module in your kernel? I don't think slamr needs any alsa configuring. Read the slmodemd README and only do the slamr part! I can be wrong  :Embarassed: .

I guess you should modprobe slamr, and then do:

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

with the right country.

If your problem lies deeper, sorry  :Sad: 

----------

## 10drill

I just got my intel8x0m modem working yesterday...pretty painless. This is what I did:

1. In kernel (2.6.7) I enabled ALSA, and under PCI devices load modules for Intel i8x0/MX440 Audio AND modems (2 seperate modules). Also of course the PPP stuff.

2. In /etc/modules.d/alsa this:

##  ALSA portion

```
alias snd-card-0 snd-intel8x0

alias snd-card-1 snd-intel8x0m
```

3. I downloaded (not emerge) slmodem-2.9.7.tar.gz from...umm, I can't remember. But easy to find. Followed instructions in the README about ALSA mode only. "Only ICH based AC97 modems are currently supported by 'intel8x0m' driver". Didn't need to patch kernel, so just did 

```
# cd modem

# make SUPPORT_ALSA=1
```

This gives me the binary executable slmodemd. 

4. Run slmodemd:

```
slmodemd --alsa hw:1
```

5. DO NOT push control c to exit...leave the terminal open!

6. In /etc/wvdial.conf I have

```
[Dialer Defaults]

Modem = /dev/ttySL0

Baud = 460800

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ISDN = 0

Carrier Check = no

Modem Type = Analog Modem

Phone = 55555555 

Username = whatever

Password = topsecret
```

7. Then I run wvdial and it works. One thing, to let the default gateway for my dialup ISP get set correctly, I must do 

```
/sbin/route del default gw 192.168.1.1
```

 to disable my ADSL router as default gateway BEFORE dialing to ISP. 

Hope this helps!

----------

## meijer.o

thank you for this post. I got my modem working with it on an nx5000. Could you tell me how to start the deamon slmodemd in an initscript. Just putting "slmodemd --alsa hw:1 &&"  in /etc/init.d/start.local doesn't work. It will than ask for control-c and booting will stop.

Kind regards,

Otto Meijer,

Netherlands

----------

