               SLMODEM PACKAGE USAGES and TESTING
	       
The slamr.ko driver is very useful for a quick diagnostic test to complete identification 
of your modem's subsystem.
------------------------------
If you have just downloaded the slamr.ko driver matching your kernel, 
just move into the folder with slamr.ko  and
# insmod  slamr.ko 
 will generate a warning about "Tainted kernel", and perhaps about non-SmartLink chips.
 So long as the driver loads, just ignore them. Read related kernel messages with
# dmesg | grep slamr
The output should include a line like:
      slamr: mc97 codec is CodecName
  wherein the CodecName is needed to choose the correct software

 A slamr.ko driver may already be installed.  Please run the following test sequence:
 # su - root
 # modprobe -r slamr
 Ignore any warning message
 # modprobe slamr
Then same as above. Get the CodecName
 Explanation and details follow  below.
 
  SmartLink products
   -------------------------------
   include the:
   163c:5459  SmartPCI561 modem;
   a chipset incorporated in many BrandName soft modems;
   a chipset for USB modems, the SmartUSB56 (ST7554) based modems
       with vendor/product usb ids: 0483:7554 
     For a detailed USB installation report see:
        http://linmodems.technion.ac.il/archive-fourth/msg03609.html
 Fax support is provided, though the AT&F command is not supported by the drivers.
 Multiple modems on the same PC are supported.
 There is support for SMP (Symmetric MultiProcessor) mother boards.
 There is a success report for 64 bit AMD x86_64 processor mother boards:
     http://linmodems.technion.ac.il/archive-fourth/msg02594.html

  Special cases:
  ---------------------------   
 For BCM64/Broadcom and ATI softmodem support, only the slmodem-2.9.9-alsa.tar.gz can serve. 
   Within the Modem/ folder output by scanModem, browse Slmodem.txt, ATI.txt and Testing.txt
 There have been a few reports of problems being solved by using Bootup options:
    noapci and/or apci=off
   thus dropping back to the APM power management mode.
 Solution of a CONNECT problem has been achieved by specifying a slower V32 modulation 
   http://linmodems.technion.ac.il/archive-fifth/msg00137.html

 Some Linux Distributions provide either slmodem packages with drivers or resources for compiling them.
 For Debian Linux they are called sl-modem-source and sl-modem-daemon. For current info do a search:
   apt-cache search sl-modem
 If not provided by your Linux distribution, download software through:
   http://www.smlink.com/main/index1.php?ln=en&main_id=40
   with recent fiixes and backups at http://linmodems.technion.ac.il/packages/smartlink/.
   Though only one will be utilized in the end, get both slmodem-2.9.9b and slmodem-2.9.9-alsa.
  Usage of slmodem-2.9.9-alsa is easier over the long term, for compatible Systems
    because the drivers come already compiled in kernel package updates.
    The slmodemd daemon does NOT have to be compiled again with each kernel update.
    
  Also install the wvdial package if your Distro provides it, and minicom too.
    Though both support modem testing and dialouts, but wvdial is more simpler to use.
  Packages libasound2 and libasound2-dev should be provided by your Linux Distro
    and are Necessary for compiling within slmodem-2.9.9-alsa package. While libasound2 is 
    probably installed already, libasound2-dev will have to be additionally installed.
 
 If installed as slmodem.rpm  or sl-modem.deb packages, the resouces for compiling slmodem drives will typically be installed to /usr/src/modules/
 Within the slmodem folder:
 Read the README in the slmodem packages. For some Linux distros, 
   there will be immediate success in doing:
 # make clean
 # make
 # make install
 But if there is a failure, install kernel-source.  For 2.4.n kernels kernel-source requires 
configuration as described in Modem/DriverCompiling.txt. Then do the above makes again.
 For a detailed illustration on some of the following see:
     http://linmodems.technion.ac.il/archive-fourth/msg00176.html
 
 For the Debian sl-modem-source.deb package, the resources are installed as:
    /usr/src/sl-modem.tar.bz2
 Unpack by
  #  cd /usr/src/
  #  tar jxf sl-modem.tar.bz2
  which opens into:
    /usr/src/modules/sl-modem/
  Move in with:
  # cd /usr/src/modules/sl-modem/drivers
  and therein
  # make clean
  # make
  # make install 
 
 Afterward a test can be performed:
 # modprobe slamr
 See a resulting the kernel report with:
 # dmesg | grep slamr
 which may contain a line:
   slamr:  mc97 codec is CodecName
 with CodecName being a variable diagnostic output.
 There are 4 cases:
  a) codec is SILnm , with n,m numbers
    there are good prospects for the modem being supported by the slmodem resources.
  b) codec is INT65
   The Intel_secure-537AA-CurrentVersion should serve, 
   with slmodem support an alternative for compatible modem controllers.
  c) codec is CXTnm
    the softmodem is a Conexant type.  
    ONLY hsfmodem drivers from http://www.linuxant.com can be utilized.
    Do remove the slmodem installation first with:
      # make uninstall
    before proceeding further.
  d) codec is BCM64
    the soft modem has a Broadcom codec and the slmodem-2.9.9-alsa MUST be used.
    See http://oboc.ucdavis.edu/Marik/inspiron/ 
    But readon first for general information
 
 Prior to permanant slmodemd activation output a country listing with: 
 # slmodemd --countrylist
 if the list scrolls too far, capture it to a file Clist.txt with:
 # slmodem --countrylist > Clist.txt 2>&1
 
 The slmodemd daemon from slmodem-2.9.n is activated with:
 # slmodemd --country=YourCountry /dev/slamr0  &
 These command creats a modem port /dev/pts/N with a symbolic link to it:
    /dev/ttySL0 --> /dev/pts/N
 The discretionary " & " just allows recovery of the command prompt.
 There should be a message about creation of a port /dev/pts/N with a symbolic link to it:
   /dev/ttySL0 --> /dev/pts/N
 There is a scripts/ folder which provides options for bootup activation of slmodemd.

 Preferably use wvdial for testing if your distribution provides it. Otherwise use Minicom.
 For Fedora users, using usage of Internet Wizard will generate the a file /etc/wvdial.conf
 Otherwise the first driver+hardware test is:
 # wvdialconf /etc/wvdial.conf
 If successful, add the following line needed by  slmodemd to /etc/wvdial.conf 
  Carrier Check = no
 Also replace the < sections > with your personal dialup information.
 If your IP is MSN.net instead of your LoginName use:  MSN/LoginName
 
 Then try a dialout with:
 # wvdial &
 or alternatively using the dialout utility of RedHat and Fedora,
   setup through a Internet Wizard in the popup menus.
 If there is a failure to acquire a dial tone, add an X3 in the /etc/wvdial.conf line like:
   Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
 to:
   Init2 = ATQ0 X3 V1 E1 S0=0 &C1 &D2 +FCLASS=0
 For dialers using a chatscript, the edit would be like:
   ATQ0X3V1E1S0=0&C1&D2+FCLASS=0
  
  Read Modem/Testing.txt for further testing guidance.
										
 If success has been achieved using the slamr driver, after a while
 it is worth also testing the slmodem-2.9.n-alsa resource .
   but do fully UNINSTALL slmodem-2.9.n first!!!
 Only the slmodemd for creating ports is provided. The complementing Open Source
 driver comes with kernel-image packages. See 2) below
		    
Here are a few more details about the alternatives
 1) The slmodem-2.9.n series provides after compiling:
     slamr - the low level driver
     slusb - the low level driver for USB modems
  The proxy ports can be displayed with:
  # ls -l /dev/sl*
crw-------  1 root root 212, 0 Apr 29  2004 /dev/slamr0
crw-------  1 root root 212, 1 Apr 29  2004 /dev/slamr1
crw-------  1 root root 212, 2 Apr 29  2004 /dev/slamr2
crw-------  1 root root 212, 3 Apr 29  2004 /dev/slamr3
crw-------  1 root root 213, 0 Apr 29  2004 /dev/slusb0
crw-------  1 root root 213, 1 Apr 29  2004 /dev/slusb1
crw-------  1 root root 213, 2 Apr 29  2004 /dev/slusb2
crw-------  1 root root 213, 3 Apr 29  2004 /dev/slusb3
  If your System is using the udev file system for devices. A proxy report 
will NOT be present until the driver is inserted:
# modprobe slamr
OR
# modprobe slusb  
Then start the slmoded daemon with:
# slmdemd --country=YourCountry /dev/slamr0 (or  /dev/slusb0)  &
The " & " merely allows recovery of the command prompt.
To stop the daemon, foreground (fg) it:
# fg slmodemd
Them stop it with:
# Ctrl-C

 2) In recent 2.6.n kernel releases there is a driver snd-intel8x0m.ko ,
 for which the slmodem-2.9.9-alsa slmodemd provides port creation and high level services.
 After
 # modprobe snd-intel8x0m
 start the daemon with:
 # slmdemd --country=YourCountry modem:0  &
  Try to read codec information from  /proc/asound/cardN/ files
 
 3) The slmodem packages way contain a scripts/ folder , with scripts for
 automating driver loading and port creation upon bootup. For some Systems, 
 it has proven beneficial to cause a pause after driver loading by inserts
 	sleep 1 (or maybe 2 or 3 if necessary)
 before the line:
 	echo -n "Starting SmartLink Modem driver for: "
 Without the pause, the driver diagnositics may not complete 
 before the following step is attempted, with a resultant failure.
 
 Call back support is implemented in slmodem-2.9.10 and slmodem-2.9.9b
See  http://linmodems.technion.ac.il/archive-fifth/msg00219.html
   
END 
cat<<END>>Modem/ModemData.txt

 The Modem/DriverCompiling.txt  is a MUST READ,
 if you are not experienced in configuring kernel-source/
 or get "unresolved symbols" upon driver insertion.

  Most recent WinModem fixes are in:  http://linmodems.technion.ac.il/FAQ.html
  
(4) For guidance on automation see  http://linmodems.technion.ac.il/archive-fourth/msg03734.html
and the scripts in the slmodem-2.9.n/scripts folder/

