Subject: slmodem and NO DIALTONE
From: CJ Kucera <linmodems@apocalyptech.com>
Date: Fri, 24 Jun 2005 23:00:22 -0500
Hello list!
I've seen this issue brought up a few times across the internet, and
even a little earlier in the month on this list, but what I haven't seen
is the answer to the problem, so I figured it's my turn to do the asking
this time.
I've got a laptop whose soundcard uses the ALSA snd-intel8x0 driver, and
it's got an attached modem which uses the ALSA snd-intel8x0m driver.
Theoretically I should be able to use the slmodem package to use the modem.
Currently I've got ALSA compiled straight into the kernel (running
2.6.12.1 at the moment), and in the bootup sequence I get these messages:
> ALSA device list:
> #0: Intel ICH6 with AD1981B at 0xd0581000, irq 11
> #1: Intel ICH Modem at 0x2400, irq 10
... and when I run "aplay -l" it looks like everything's been detected
correctly:
> **** List of PLAYBACK Hardware Devices ****
> card 0: ICH6 [Intel ICH6], device 0: Intel ICH [Intel ICH6]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: ICH6 [Intel ICH6], device 4: Intel ICH - IEC958 [Intel ICH6 - IEC958]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 1: Modem [Intel ICH Modem], device 0: Intel ICH - Modem [Intel ICH Modem - Modem]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
I can play sound through the soundcard with no problems.
Everything also seems fine when I start up slmodemd:
> # slmodemd --alsa -g=dialout -d=1 modem:1
> SmartLink Soft Modem: version 2.9.9d Jun 24 2005 22:33:15
> <213.937537> SmartLink Soft Modem: version 2.9.9d Jun 24 2005 22:33:15
> <213.938669> modem:1: startup modem...
> <213.939785> modem:1: update termios...
> symbolic link `/dev/ttySL0' -> `/dev/pts/6' created.
> modem `modem:1' created. TTY is `/dev/pts/6'
> <213.943389> open file: /var/lib/slmodem/data.modem:1...
> <213.944923> main: rt applyed: SCHED_FIFO, pri 99
> Use `/dev/ttySL0' as modem device, Ctrl+C for termination.
Everything seems good at this point, /dev/ttySL0 appears to be created
as well:
> # ls -lL /dev/ttySL0
> crw-rw---- 1 root dialout 136, 6 Jun 24 22:46 /dev/ttySL0
However, when I run wvdial, without fail I always get a "NO DIALTONE"
message (occasionally it'll try again and get the message a second time
before giving up). Here's the wvdial output:
> $ wvdial
> --> WvDial: Internet dialer version 1.54.0
> --> 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: ATDT1-xxx-xxx-xxxx
> --> Waiting for carrier.
> ATDT1-xxx-xxx-xxxx
> NO DIALTONE
> --> No dial tone.
> --> Disconnecting at Fri Jun 24 22:32:49 2005
(yes, there's a real phone number there, and not just a bunch of xes.)
The wvdial.conf looks like so:
> # cat /etc/wvdial.conf
> [Dialer Defaults]
> Modem = /dev/ttySL0
> Baud = 115200
> Init1 = ATZ
> Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
> ISDN = 0
> Modem Type = Analog Modem
> Phone = 1-xxx-xxx-xxxx
> Username = xxxxxxxx
> Password = xxxxxxxx
> Carrier Check = no
I've tried it with "Carrier Check" set to 'yes' as well, as well as leaving
that option out of the file entirely. The debugging output from slmodem
mentions a rate of 9600 in there as well (I'll paste in that monster
shortly), so I've also tried changing the Baud setting to 9600 (and a few
other values as well) which does no good. The above session was run as
a user (in the dialout group), but I get identical behavior when I run
it as root.
I'm not quite sure where to go with this. I'm running slmodem 2.9.9d.
I tried out 2.9.9e-pre1 available on the site, and that didn't change
the situation at all. My kernel is a vanilla, unpatched 2.6.12.1.
wvdial is 1.54.0. Oh, and I *did* make sure that I actually *am*
getting a dialtone using all the same cords, etc, so that's not the
problem either.
I do also get the following messages in dmesg:
> codec_semaphore: semaphore is not ready [0x1][0x700300]
> codec_read 1: semaphore is not ready for register 0x54
... though I've read elsewhere that these messages don't necessarily
indicate a problem.
Any help anyone could give would be greatly appreciated. I'll paste in
the massive output from slmodems after my signoff, in case that info
is useful as well. On another note, is it possible to use something like
minicom to talk to the modem directly over /dev/ttySL0, so I can run
the various ATZ and ATDT commands myself so that I can take wvdial out
of the picture? That may be helpful. I tried doing so earlier with a
number of different comm settings, but I couldn't actually get anything
out of the port that way. I presume that has something to do with me
putting in invalid settings in minicom, though.
Thanks,
CJ
(slmodem output follows - one odd thing I noticed was that there are
two "Its setup is" sections in here):
> <364.098728> main: termios changed.
> <364.098747> modem:1: update termios...
> <364.171952> main: termios changed.
> <364.171960> modem:1: update termios...
> <364.272002> modem:1: run cmd: ATZ
> <364.272009> modem:1: modem reset...
> <364.272013> modem:1: modem set state: 1 --> 1...
> <364.272020> modem:1: modem set mode: -> 0...
> <364.272024> modem:1: modem report result: 0 (OK)
> <364.372033> modem:1: run cmd: ATQ0V1E1S0=0&C1&D2+FCLASS=0
> <364.372048> modem:1: modem set mode: -> 0...
> <364.372053> modem:1: modem report result: 0 (OK)
> <364.472107> modem:1: run cmd: ATDT1-xxx-xxx-xxxx
> <364.472117> modem:1: modem dial: T1-xxx-xxx-xxxx...
> <364.472122> modem:1: modem_dial_start...
> <364.472153> modem:1: modem_start..
> <364.472157> modem:1: modem set state: 1 --> 2...
> <364.472162> modem:1: new state: DP_ESTAB
> <364.472166> main: alsa_ioctl: cmd 8, arg 3...
> <364.472171> modem:1: modem set hook: 0 --> 1...
> <364.472175> main: alsa_ioctl: cmd 2, arg 1...
> <364.474527> main: alsa_ioctl: cmd 11, arg 0...
> <364.474585> main: alsa_ioctl: cmd 4, arg 2580...
> <364.474590> main: alsa_ioctl: cmd 7, arg 30...
> <364.474594> main: alsa_start...
> Hardware PCM card 1 'Intel ICH Modem' device 0 subdevice 0
>
> Its setup is:
> stream : PLAYBACK
> access : RW_INTERLEAVED
> format : S16_LE
> subformat : STD
> channels : 1
> rate : 9600
> exact rate : 9600 (9600/1)
> msbits : 16
> buffer_size : 1536
> period_size : 48
> period_time : 5000
> tick_time : 1000
> tstamp_mode : NONE
> period_step : 1
> sleep_min : 0
> avail_min : 4
> xfer_align : 4
> start_threshold : 2147483647
> stop_threshold : 1536
> silence_threshold: 0
> silence_size : 0
> boundary : 1610612736
> Hardware PCM card 1 'Intel ICH Modem' device 0 subdevice 0
>
> Its setup is:
> stream : CAPTURE
> access : RW_INTERLEAVED
> format : S16_LE
> subformat : STD
> channels : 1
> rate : 9600
> exact rate : 9600 (9600/1)
> msbits : 16
> buffer_size : 1536
> period_size : 48
> period_time : 5000
> tick_time : 1000
> tstamp_mode : NONE
> period_step : 1
> sleep_min : 0
> avail_min : 4
> xfer_align : 4
> start_threshold : 2147483647
> stop_threshold : 1536
> silence_threshold: 0
> silence_size : 0
> boundary : 1610612736
> <364.475124> main: startup write: 576...
> <369.480254> modem:1: modem_update_status: 16
> <369.480288> modem:1: --> FINISH.
> <369.480292> modem:1: modem_hup...
> <369.480296> modem:1: modem set state: 2 --> 9...
> <369.480300> modem:1: new state: DP_DISC
> <369.480304> modem:1: modem_stop..
> <369.480308> main: alsa_stop...
> <369.480343> modem:1: modem set hook: 1 --> 0...
> <369.480348> main: alsa_ioctl: cmd 2, arg 0...
> <369.481518> main: alsa_ioctl: cmd 8, arg 0...
> <369.481530> modem:1: modem set state: 9 --> 1...
> <369.481534> modem:1: new state: MODEM_IDLE
> <369.481538> modem:1: modem report result: 6 (NO DIALTONE)
> <369.481545> main: dev write = 0
> <369.581496> main: termios changed.
> <369.581503> modem:1: update termios...
> <369.581511> main: pty closed.
> <372.386997> main: signal 2: mark termination.
> <372.387065> modem:1: modem_delete...
--
WOW: Kakistocracy | "Happiness isn't good enough for me! I
linmodems@apocalyptech.com | demand euphoria!"
apocalyptech.com/music/ | - Calvin