Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Tue 02 Sep 2014, 16:32
All times are UTC - 4
 Forum index » Advanced Topics » Cutting edge
2.17 Lucent modem detection - ICW, PupDial (SOLVED)
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [10 Posts]  
Author Message
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Fri 13 Jul 2007, 15:40    Post subject:  2.17 Lucent modem detection - ICW, PupDial (SOLVED)
Subject description: PCI: ICW correctly detects as ttyLT0; laptop: not detected until modem-wizard detects.
 

EDIT July 22: See my solution near the end of this thread.

EDIT: I intended this to be part of the 2.17alpha thread, but used "new topic" instead of "post reply". Can this be moved to the correct thread?

I am pleased to see the focus on automated modem detection. I have two Lucent modems: a PCI in a desktop and the built-in in my IBM i1720 Thinkpad. The Internet Connection Wizard and PupDial handle the PCI modem just as one would expect.

However on the laptop, the ICW indicates "no modem detected." Selecting "Connect to .. modem" on ICW results in PupDial's "No modem detected" warning. When I press "probe for modem" the log shows PupDial checking for ttyS0-4, ttyS_ESS0, and ttyS_PCTEL0, but not ttyLT0! -- summarizing with "Sorry, no modem was detected."

If I use the Modem Wizard and press the ttyLT0 button, it does detect the modem as ttyLT0. I save the setting. When I restart PupDial from the menu, it still claims "no modem detected." When I click on "probe for modem," PupDial indicates "GOOD! Modem selected! Device interface: /dev/tty_ESS0."

The Connection status log shows conversations with both ttyS_ESS0 and ttyS_PCTEL0 and concludes that the "found" modem is the ESS0. The Modem Identifier shown in both conversations is "ATI -- LT V.92 Data+Fax Modem Version 8.30."

The big surprise, though, is that when I set up an account and "Connect to Internet," the connection is successful! So the problem appears to be that (1) PupDial cannot see the modem on its own, but does so if the modem is already set up by the modem-wizard and (2) the modem is misidentified as an ESS -- the chosen setup still works, no matter what the modem may be called.

PupDial log1:
Quote:
Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S1
ttyS2<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S3
ttyS4<Info>: No such device or address
Port Scan<*1>: S4
ttyS_ESS0<Info>: No such device or address
Port Scan<*1>: S_ESS0
ttyS_PCTEL0<Info>: No such device or address
Port Scan<*1>: S_PCTEL0


Sorry, no modem was detected! Is it in use by another program?
Did you configure it properly with setserial?

Part of PupDial log2:
Quote:
Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S1
ttyS2<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S3
ttyS4<Info>: No such device or address
Port Scan<*1>: S4
ttyS_ESS0<*1>: ATQ0 V1 E1 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 Z -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 -- OK
. . .
ttyS_ESS0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.30
. . .
ttyS_PCTEL0<*1>: ATQ0 V1 E1 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 Z -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 -- OK
. . .
ttyS_PCTEL0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.30
. . .
Found a modem on /dev/ttyS_ESS0.
/tmp/wvdial.conf<Warn>: Can't read config file /tmp/wvdial.conf: No such file or directory

*** WARNING! Line "115200"
in /etc/ppp/options may conflict with wvdial!

ttyS_ESS0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0"
ttyS_PCTEL0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0"

Please let me know if there is more info I can provide you to enable Puppy to tell the truth about the laptop modem. Thanks for making Puppy so amazing!
Richard

Last edited by rerwin on Sun 22 Jul 2007, 17:38; edited 1 time in total
Back to top
View user's profile Send private message 
BarryK
Puppy Master


Joined: 09 May 2005
Posts: 7047
Location: Perth, Western Australia

PostPosted: Fri 13 Jul 2007, 20:56    Post subject:  

Okay, when your modem is working, what modem modules have loaded? (run 'lsmod'). What is the 'Modem = ' entry in /etc/wvdial.conf?

If the 'wrong' module is loaded but it still works, I guess that is good.

If you are sure that it is the Lucent module that is required, run PupScan (System menu) and get the IDs for the modem chip. Then do this:
# modprobe -vn ltserial
# modinfo ltserial
....and find out if one of the IDs (in lines starting with 'alias:' matches your chip.
Back to top
View user's profile Send private message Visit poster's website 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Sat 14 Jul 2007, 12:32    Post subject:  

Barry, thanks for your interest in my report. Here is the info you requested.

1. After booting from the 2.17a CD with pfix=ram, ran modem-wizard with ttyLT0, without "saving", just exiting:
SUCCESS, /dev/ttyLT0 seems to be a modem, using irq=4

2. # lsmod
Module Size Used by
ltserial 10928 0
ltmodem 556624 1 ltserial
. . .

3. Ran connectionwizard from icon, then PupDial to create wvdial.conf:
Quote:
[Dialer Defaults]
Modem = /dev/ttyS_ESS0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
Carrier Check = no
Dial Command = ATDT
Phone = MYISPPHONENUM
Username = MYUSERNAME
Password = MYPASSWORD

[Dialer isp2]
Phone = MY2ISPPHONENUM
Username = MY2USERNAME
Password = MY2PASSWORD

4. Ran PupScan:
-- Kernel module details for ltmodem:
Quote:
filename: /lib/modules/2.6.21.5/ltmodem/ltmodem.ko
description: Lucent/Agere linmodem controller driver
license: Proprietary
vermagic: 2.6.21.5 mod_unload 486
depends:
parm: Forced:Forced Irq,BaseAddress,ComAddress[,NoDetect] of the Lucent Modem e.g. Forced=3,0x130,0x2f8
parm: device_id:Device ID of the Lucent Modem e.g. device_id=0x0440
parm: vendor_id:Vendor ID of the Lucent Modem e.g. vendor_id=0x11c1 (int)

-- PCI Interfaces (I don't see anything for the modem.):
Quote:
DESCRIPTION: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
VENDOR: 8086 DEVICE: 7192 KERNEL MODULE: unknown

DESCRIPTION: Intel Corporation 82371AB/EB/MB PIIX4 ISA
VENDOR: 8086 DEVICE: 7110 KERNEL MODULE: unknown

DESCRIPTION: Intel Corporation 82371AB/EB/MB PIIX4 IDE
VENDOR: 8086 DEVICE: 7111 KERNEL MODULE: unknown

DESCRIPTION: Intel Corporation 82371AB/EB/MB PIIX4 USB
VENDOR: 8086 DEVICE: 7112 KERNEL MODULE: uhci-hcd

DESCRIPTION: Intel Corporation 82371AB/EB/MB PIIX4 ACPI
VENDOR: 8086 DEVICE: 7113 KERNEL MODULE: i2c-piix4

DESCRIPTION: Texas Instruments PCI1250
VENDOR: 104c DEVICE: ac16 KERNEL MODULE: yenta_socket

DESCRIPTION: Texas Instruments PCI1250
VENDOR: 104c DEVICE: ac16 KERNEL MODULE: yenta_socket

DESCRIPTION:
VENDOR: 10c8 DEVICE: 0005 KERNEL MODULE: neofb

DESCRIPTION:
VENDOR: 10c8 DEVICE: 8005 KERNEL MODULE: snd-nm256

5.# modprobe -vn ltserial

#

6. Modinfo first alias matches the vendor/hardware ID shown after "e.g." in kernel module details for ltmodem, but I suspect that is only an example and not what is found by/for ltmodem:
Quote:
# modinfo ltserial
filename: /lib/modules/2.6.21.5/ltmodem/ltserial.ko
license: GPL
description: Lucent/Agere linmodem serial port driver
vermagic: 2.6.21.5 mod_unload 486
depends: ltmodem
alias: pci:v000011C1d00000440sv*sd*bc*sc*i*
alias: pci:v000011C1d00000441sv*sd*bc*sc*i*
alias: pci:v000011C1d00000442sv*sd*bc*sc*i*
alias: pci:v000011C1d00000443sv*sd*bc*sc*i*
alias: pci:v000011C1d00000444sv*sd*bc*sc*i*
alias: pci:v000011C1d00000445sv*sd*bc*sc*i*
alias: pci:v000011C1d00000446sv*sd*bc*sc*i*
alias: pci:v000011C1d00000447sv*sd*bc*sc*i*
alias: pci:v000011C1d00000448sv*sd*bc*sc*i*
alias: pci:v000011C1d00000445sv*sd*bc*sc*i*
. . .
alias: pci:v0000115Dd00000459sv*sd*bc*sc*i*
alias: pci:v0000115Dd0000045Asv*sd*bc*sc*i*
alias: pci:v0000115Dd0000045Bsv*sd*bc*sc*i*
alias: pci:v0000115Dd0000045Csv*sd*bc*sc*i*

7. On PupDial, clicked on Connect to internet and was successful - pupdial.log:
Quote:
--> WvDial: Internet dialer version 1.41
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT #######
--> Waiting for carrier.
ATDT #######
CONNECT 42666 V42bis
--> Carrier detected. Waiting for prompt.
Level 3 Comm nas13.2ma1 UQKT2
Username:/login:/Login:
--> Looks like a login prompt.
--> Sending: ###/######
###/########
Password:
--> Looks like a password prompt.
--> Sending: (password)
Entering PPP Session.
IP address is #.###.###.###
MTU is 1524.
--> Looks like a welcome message.
--> Starting pppd at Sat Jul 14 10:27:26 2007

8. Here is the log of the PupDial modem probe:
Quote:
Connection status log:<quote>Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S1
ttyS2<*1>: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
Port Scan<*1>: S3
ttyS4<Info>: No such device or address
Port Scan<*1>: S4
ttyS_ESS0<*1>: ATQ0 V1 E1 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 Z -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 -- OK
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK
ttyS_ESS0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.30
ttyS_ESS0<*1>: Speed 2400: AT -- OK
ttyS_ESS0<*1>: Speed 4800: AT -- OK
ttyS_ESS0<*1>: Speed 9600: AT -- OK
ttyS_ESS0<*1>: Speed 19200: AT -- OK
ttyS_ESS0<*1>: Speed 38400: AT -- OK
ttyS_ESS0<*1>: Speed 57600: AT -- OK
ttyS_ESS0<*1>: Speed 115200: AT -- OK
ttyS_ESS0<*1>: Max speed is 115200; that should be safe.
ttyS_ESS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 Z -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 -- OK
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK
ttyS_PCTEL0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.30
ttyS_PCTEL0<*1>: Speed 2400: AT -- OK
ttyS_PCTEL0<*1>: Speed 4800: AT -- OK
ttyS_PCTEL0<*1>: Speed 9600: AT -- OK
ttyS_PCTEL0<*1>: Speed 19200: AT -- OK
ttyS_PCTEL0<*1>: Speed 38400: AT -- OK
ttyS_PCTEL0<*1>: Speed 57600: AT -- OK
ttyS_PCTEL0<*1>: Speed 115200: AT -- OK
ttyS_PCTEL0<*1>: Max speed is 115200; that should be safe.
ttyS_PCTEL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK

Found a modem on /dev/ttyS_ESS0.
/tmp/wvdial.conf<Warn>: Can't read config file /tmp/wvdial.conf: No such file or directory

*** WARNING! Line "115200"
in /etc/ppp/options may conflict with wvdial!

ttyS_ESS0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0"
ttyS_PCTEL0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0"
Welcome to PupDial, written by Barry Kauler for Puppy Linux.
. . .

After all this, I still do not feel we know the actual vendor and hardware IDs. The only text string I have seen from the modem is from WinXP Device Manager and Belarc advisor, which show it as "Lucent Win Modem". How can you find that in Linux? It appears to me that the only clue we have is the line in the PupDial probe log:
ttyS_ESS0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.30

Thanks for all your help.
Richard
Back to top
View user's profile Send private message 
BarryK
Puppy Master


Joined: 09 May 2005
Posts: 7047
Location: Perth, Western Australia

PostPosted: Sat 14 Jul 2007, 17:01    Post subject:  

So perhaps the modem in your laptop is not a PCI device, since none of the info returned by PupScan seems to fit.
It intrigues me that you have the 'ltserial' and 'ltmodem' drivers loaded, but wvdial is using '/dev/ttyS_ESS0'.

I don't know how to get Puppy to autodetect this.

What you can do is run System --> BootManager
and click the button to add a module, then add 'ltserial' so it will get loaded at bootup.
Back to top
View user's profile Send private message Visit poster's website 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Sun 15 Jul 2007, 16:24    Post subject:  

I followed your suggestion and it solved both problems! Connection wizard announced that ttyLT0 was detected and so did PupDial when it started. I entered my ISP account and got right onto the internet. Thanks.

I have been looking at some of the scripts involved, to understand the detection process. I see in local0 and /init.d/ltmodem how my modem get selected. So to automate its detection, something is needed to determine whether to load ltserial before the service scripts are run.

I have not found how it is decided to check for ESS and PCTEL (and not LT) modems; I would expect in PupDial, but cannot figure that out. I would think that PupDial would be where ltserial would get loaded the first time. Would you point me to the logic that handles the checking of linmodems, so I can see the obstacles to implementing checking for LT0?

Now that we at least have a workaround for the Lucent issue, I have a similar problem with a PC-Card hardware modem not being detected (as ttyS1) since Puppy 2.12 (starting with 2.13). I will describe that further in a new post to the Hardware forum (unless you want it here).

Richard
Back to top
View user's profile Send private message 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Sun 15 Jul 2007, 19:55    Post subject:  

I think I have answered my own questions. The probing is done by wvdialconf in file modemprobe. The reason it does not check for ttyLT0 is that it checks only ttyS* /dev files.

If I change /dev/ttyLT0 to /dev/ttyS_LT0 (ttySLT0 would also probably work) wvdialconf does check it successfully. So it ends up with three successful checks and simply selects the first alphabetically. So, what to do about the multiple "hits"?

For my case, grepping /tmp/logwvdialprobe for "Modem Identifier:" would find all three instances, which could be examined to select the appropriate one. Say, testing for " AT " in those lines would select the ttyS_LT0 line; the initial text up to the "<" would go into the "Modem =" line of wvdial.conf. Other tests could be added as people report similar problems.

EDIT: I made a fresh test run where I created /dev/ttySLT0 and modprobed ltserial. Then ran PupDial, which correctly identified the modem as ttySLT0, since that came before the ttyS_* entries in the log!
This implies that ttyLT0 would need to be changed to ttySLT0 or ttyS_LT0 throughout Puppy and that ltserial would need to be loaded before running wvdialconf, then removing it and ltmodem if they are not needed. The examination of logwvdialprobe would still be needed if ttyS_LT0 is used and to support any other similar cases. /EDIT

This discovery, though, does not explain why the ttyLT0 PCI modem is found correctly by connectwizard and PupDial. That suggests there is another aspect to the modem discovery process.

Hope you find this interesting, Barry.

Richard
Back to top
View user's profile Send private message 
BarryK
Puppy Master


Joined: 09 May 2005
Posts: 7047
Location: Perth, Western Australia

PostPosted: Sun 15 Jul 2007, 20:51    Post subject:  

Normally, the Lucent modem has a PCI interface, which is the case in a Thinkpad laptop that I tested. Each module has built-in information about which PCI IDs it supports, and /etc/rc.d/rc.modules reads this information and loads the module.
When the ltserial and ltodem modules load, the 'firmware' also loads, which in this case is a script /etc/init.d/ltmodem -- the most important thing that does is set /dev/modem symlink to /dev/ttyLT0.

When execution gets to rc.modem, it will see the /dev/modem symlink already setup and will go ahead and create /etc/wvdial.conf.

Finally, you run PupDial and it reads and uses /etc/wvdial.conf.

I'm still not convinced that your modem does not have a PCI interface. What about running just 'lspci -n' -- anything new that was not listed by PupScan?
Back to top
View user's profile Send private message Visit poster's website 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Mon 16 Jul 2007, 00:14    Post subject:  

Upon reflection, I am not addressing the issue of determining whether to load ltserial, at all. lspci -n does not add any IDs beyond what we have seen:
Quote:
# lspci -n
00:00.0 Class 0600: 8086:7192 (rev 02)
00:02.0 Class 0680: 8086:7110 (rev 02)
00:02.1 Class 0101: 8086:7111 (rev 01)
00:02.2 Class 0c03: 8086:7112 (rev 01)
00:02.3 Class 0680: 8086:7113 (rev 02)
00:03.0 Class 0607: 104c:ac16 (rev 02)
00:03.1 Class 0607: 104c:ac16 (rev 02)
00:05.0 Class 0300: 10c8:0005 (rev 12)
00:05.1 Class 0401: 10c8:8005 (rev 12)
#

I have spent the day researching this and found very little that helps. I did find this 1999 56k.com FAQ:
Quote:
How do I know if I have a Lucent LT Win Modem?

Issue an ATI3 in a terminal program, or check the ATI3 response in the Windows 95 Modem control panel. Most LT Win Modems will identify themselves when they receive the ATI3 command.

Some Toshiba and Compaq embedded modems are LT Win Modems, even though they don't identify themselves as such.
And apparently some ThinkPads also don't. Can the ATI3 command be sent to the modem without the driver being loaded? We have already seen the ATI3 response with the driver loaded. I assume it was loaded under W95 in this case.

I did look in WinXP for modem info. The device info includes a hardware ID of "HSM1A19", which doesn't look like the kinds of IDs we are looking for, and the text "Lucent Win Modem". I do not find 1a19 in the pci-usb-pcmcia.ids file.

I googled HSM1a19 and found a list of mars2 and mars3 Lucent modems at modem-help.co.uk. Also a Win inf listing at driverguide:
Quote:
; name and version number:@(#)ltw2kg.inf 1.1*/
; date of get: 05/09/00 09:55:46*/
; date of delta: 04/03/00 16:21:07*/
;
; Windows Modem Setup File
; Copyright 1998 Lucent
;
; Manufacturer: Lucent Microelectronics
. . .
[Strings]
Mfg = "Lucent"
Modem1 = "Lucent Win Modem"
LT.disk = "Lucent Installation Disk"

[Models]
; UNIMODEM ID for 56k modem
. . .
%Modem1% = Modem_PNP_DSVD, *HSM1A19
. . .
The last line suggests a PNP modem, but does that imply isa? I ran pnpdump and it found no isa devices.

I found another FAQ line that mentions both "LT Win Modem" and "LT PCI Win Modem", but have not found how they might differ. I'm really grasping at straws here.

It could be that there are a lot of built-in laptop Lucent modems out there that do not identify themselves. So maybe PupDial should deal with them somehow. One technique is to just let the user tell PupDial that the modem is an LT, as is done in the modem wizard. I hope all this helps you.

Richard
Back to top
View user's profile Send private message 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Sun 22 Jul 2007, 17:32    Post subject: Modem detection solve for unidentified Lucent modem
Subject description: Fixed modemprobe to correctly detect LT, ESS and PCTEL modems.
 

Barry,
I have spent much of the past week studying modem detection and modifying the modemprobe script so it will tell the truth. My issue with it is that ESS and PCTEL devices appear to respond to probing of the Lucent driver; the LTmodem device does not participate in the probes. So I resolved that and made it able to handle modem change-outs.

The probe program, wvdialconf, works only with devices named ttyS*, which excludes ttyLT0. Also, the Lucent driver appears associated with ESS and PCTEL devices as well as LT modems. If I create a device link, ttyS_LT0, wvdialconf will include it in its probes, now for ttyS_ESS, -LT and -PCTEL. Only the first aphabetically is chosen as the detected modem. My solution is to manage the device name made available to wvdialconf, so it probes only one of those devices and detects the correct name.

The technique is based on initialization code that "detects" based on whether ltserial is loaded. So if ltserial is already loaded, modemprobe renames the ESS and PCTEL devices to remove the "S" and ensures that the LT0 device is ttyS_LT0. If ltserial is not loaded, similar checks are made for esscom and pctel drivers, for the ESS and PCTEL devices.

The reason I care about this is the even though loading ltserial at boot time always makes the detection, the "probe" button in PupDial is too tempting to resist. But pressing it changes the device name, certainly frustrating the user; it should maintain the current detection.

But it turns out that simply entering "modprobe ltserial" on a command line and then repeating the probe will detect the LT modem, ready for dialing, without having to reboot. Furthermore, rebooting retains the setup and supports immediate dialup, even though ltserial and ltmodem are not loaded at that point; the dialup itself apparently triggers the loading, because it works! The device-selection logic (above) has a fourth test in case none of the drivers are found; it sets LT0 for probing if the previous selection (in wvdial.conf) was the LT0 device. (I add to the log an explanation that ttyLT0 and ttyS_LT0 are the same device -- maybe we could someday just change the name of ttyLT0 and avoid the link.)

SmartLink modems seem to be outside of this issue, but bring up another one. I find that a PC with both PCI and USB SLmodems attached, the PCI is detected and used, although both sl* drivers are loaded. But since a USB modem is optional, one would expect its presence to pre-empt the PCI modem (of any type). Would that be something possible to implement? If that were the case, the above selection logic could avoid setting any of the three devices if an SL driver is loaded (and its daemon running).

I have tested this as much as I can think of, but I do not have ESS or PCTEL modems. When I modprobe esscom, it loads with errors and probes successfully (although incorrectly); but lsmod shows that ltserial was loaded as part of the probe! (esscom is "busy" and cannot be rmmod-ed.) Pctel loads and probes correctly, in my case - No such device or address.

Attached is my product. Could you (or anyone) try it with your ESS and PCTEL modems? Thanks.
Richard
modemprobe.tar.gz
Description  Updated modemprobe script, for linmodems. Further updated to accommodate unexpected loading of Lucent driver when ESS driver is loaded.
gz

 Download 
Filename  modemprobe.tar.gz 
Filesize  1.32 KB 
Downloaded  319 Time(s) 

Last edited by rerwin on Wed 25 Jul 2007, 14:53; edited 1 time in total
Back to top
View user's profile Send private message 
rerwin


Joined: 24 Aug 2005
Posts: 1513
Location: Maine, USA

PostPosted: Wed 25 Jul 2007, 14:15    Post subject: Minor update to updated modemprobe
Subject description: Changed order of tests to ESS, PCTEL, then LT
 

To handle the phenomenon where loading the esscom driver triggers loading of the Lucent driver as well, I reordered the test so that ESS driver is checked for being loaded, before the Lucent driver. In testing, though, esscom would not load due to many errors. So, someone please test with an ESS or PCTEL modem. Thanks.

I am replacing my earlier attachment with the new version.
Richard
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [10 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Cutting edge
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1290s ][ Queries: 12 (0.0053s) ][ GZIP on ]