MonacoReadme.txt Driver File Contents (KR_MZ_CD.zip)

                                                                    08/17/2005
Conexant ADSL USB Driver for Linux
-----------------------------------

Introduction
------------
  This file describes the Linux LAN/WAN driver for the Conexant ADSL USB adapters.

  This driver supports Linux-2.6 kernels. The Linux kernel sources can be download from:
    http://www.kernel.org/pub/linux/kernel/v2.6/
  The driver supports Linux-2.6 kernels.

  The installed system should already have the kernel sources
  installed in the /usr/src/linux or /lib/modules directory. If they are not there,
  try to get them off the installation disks for your distribution,
  or download the latest Linux-2.6 kernel, and configure and
  build that. One common problem while compiling modules on a new 
  kernel is not to create link /usr/src/linux which should point to 
  the relevent kernel source directory. On a freshly installed system
  this link might not be present and needs to be created before the 
  kernel or any driver module can be compiled. There are lots of books 
  and documents available describing how to extract, configure and 
  build the kernel from it's sources...

  The driver is compiled and tested for:
  - Fedora Core 3 : kernel 2.6.9-1.667 using gcc 3.4.2
  - SuseLinux 9.2 : kernel 2.6.8.8-24.10 using gcc 3.3.4
  - Mandrake 10.1 : kernel 2.6.8.1-12mdk using gcc 3.4.1

Release Notes
=============
Current
-------
->  v1.02.0002E (08/17/2005)
    Firmware version: Y1.58.5 (Annex A)
    
    -Added the support the new Zeus DSP firmware 
    -Added support for firmware deployment option at runtime 
    -Added Mutex locks to synchronize access to firmware
    -Added support for enabling new firmware at run time via control panel

History
-------
->  v1.02.0001E-Beta (02/28/2005)
    Firmware version: Y1.8.1 (Annex A)

    -Support for Linux kernel 2.6 series (Fedora Core 3, Mandrake 10.1,	SuseLinux 9.2)
	
->  v1.01.0006E-Beta (01/04/2005)
    Firmware version: Y1.8.1 (Annex A)

    -Support for multiple PPPOA interfaces using different VPI/VCI 

->  v1.01.0005E (12/01/2004)
    Firmware version: Y1.8.1 (Annex A)

->  v1.01.0005E (12/01/2004)
    Firmware version: Y1.8.1 (Annex A)

    -Support for multiple ethernet interfaces using different VPI/VCI (Rfc1483 mode only)

->  v1.01.0004E (05/07/2004)
    Firmware version: Y1.8.1 (Annex A)

    -Endianness Related Fix in USB Interrupt Pipe processing (VTAen36951)

->  v1.01.0003E (08/07/2003)
    Firmware version: Y1.8.1 (Annex A)

    -Firmware has been updated to Y1.8.1

	-Merged changes from ATM library

->  v1.01.0002E (06/18/2003)
    Firmware version: Y1.4.8 (Annex A)

    -Firmware has been updated to Y1.4.8 which contains following fixes:
    1) Removed the forced re-handshake that was used for cafe biquad training.
    Known issues:
    2) Watch out for cafe bridged-tap performance.

    -VTAen25931: Improper "training" state shown in Cetragate driver.
    Driver indicates "training" when the DSL cable is not plugged in.

->  v1.01.0001E (04/28/2003)
    - Initial release of driver with support for Linux-2.4 kernels.


Directory Structure
====================
    The directory Structure is as follows.
        monaco_linux
            |
            |---ModemDrv
            |
            |---gpatm
            |
            |---Gti
            |
            |---cpl


Compiling the Driver
====================

 -   Run make in the folder monaco_linux/ModemDrv/src to compile the driver.
  
  The Makefile contains following important options:

     DEBUG          - Output driver debug messages  [n]
     LAN            - Create LAN interface          [y]
     WAN            - Create WAN interfaces         [y]
     
Compiling the Control Panel Application
---------------------------------------
  The Makefile understands following target(s).
    % make          - This is to create the Control panel application. (Command to be executed from directory monaco_linux/cpl.)


Loading Modem Driver
=====================
  
The module accepts several parameters that can be set when the module is loaded.

  Syntax:
    insmod ./GUModem.ko {Module Options} (Command to be executed from directory monaco_linux/ModemDrv/src)

    Module Options
    --------------
      Rfc1483Mode          default: 0       (Bridged LLC)
      Rfc1483VciX          default: 85+X    (X would be 1,2,3,4)
      Rfc1483VpiX          default: X	    (X would be 1,2,3,4)
      Rfc2364Mode          default: 0       (VC)
      Rfc2364VciX          default: X		(X would be 1,2,3,4)
      Rfc2364VpiX          default: 116+X	(X would be 1,2,3,4)
      PVCCount		   default: 4		(Maximum Ethernet interfaces)
      PPPOACount	   default: 4		(Maximum PPPOA Interfaces)
    
      VPI and VCI settings to be used according to what's configured.

  For example to load the module and to create 4 interfaces using different set of VCI/VPI the command would be as follows:

    % insmod ./GUModem.ko Rfc1483Mode=0 Rfc1483Vci1=35 Rfc1483Vpi1=0 Rfc1483Vci2=36 Rfc1483Vpi2=1 Rfc1483Vci3=37 Rfc1483Vpi3=2 Rfc1483Vci4=38 Rfc1483Vpi4=3 PVCCount=4 Rfc2364Mode=2 Rfc2364Vpi1=0 Rfc2364Vci1=116 Rfc2364Vpi2=0 Rfc2364Vci2=117

 Issuing this command will create 4 ethernet interfaces and 2 PVC for PPPOA 
 interfaces. ( Combination of Rfc1483Vpi1 and Rfc1483Vci1 will be the first 
 interface, Rfc1483Vpi2 and Rfc1483Vci2 will be 2nd interface and so on.)

	The details of various options used in command above is as below

	1). PVCCount - This indicates the number of PVCs user wants to configure for ethernet interfaces. Maximum value for this variable in this release is 4 and hence can have any walue between 1 and 4, any value above 4 and below 1 is invalid and driver loading will fail.

	2). PPPOACount - This indicates the number of PVCs user wants to configure for PPPOA interfaces. Maximum value for this variable in this release is 4 and hence can have any walue between 1 and 4, any value above 4 and below 1 is invalid and driver loading will fail.

    3). Rfc1483Vpi1, Rfc1483Vpi2, Rfc1483Vpi3,  Rfc1483Vpi4 -- These are 4 different values of the VPIs that user wants to configure. 

    4). Rfc1483Vci1, Rfc1483Vci2, Rfc1483Vci3,  Rfc1483Vci4 -- These are 4 different values of the VCIs that user wants to configure. 

	5). Rfc1483Mode defines the mode for which the PVC is operating. In this release this value of Rfc1483Mode remains same for all the PVCs which are being created. Thus all VCs using rfc1483 encapsulation will be created using same encapsulation type.

    3). Rfc2364Vpi1, Rfc2364Vpi2 -- These are different values of the VPIs that user wants to configure for PPP interfaces. 

    4). Rfc2364Vci1, Rfc2364Vci2 -- These are different values of the VCIs that user wants to configure for PPP interfaces corresponding to above mentioned VPIs. 

Note: Please note that the VPIs/VCIs of the PVCs should not be conflicting with each other else the driver loading will fail.


Verification of driver loading successfully
===========================================   
  To determine if the driver has loaded:
    % dmesg (or file /var/log/messages)

      gp: USB Modem Driver Build

  To determine if driver is in data mode.
  % dmesg (or file /var/log/messages)

      gp: Link established (8000/892)
                              ^^^^ ^^^
                              ^    ^
                              ^    Upstream rate
                              Downstream rate
  
  Alternatively the control panel application can also be used to get Modem Status as given below.
  % gsi_cfg eth2 -s  ( The ethernet device depends on what has been configured on the system )
  (Command to be executed from monaco_linux/cpl)



Changes required to modify the number of MAXIMUM Ethernet interface PVCs that 
user can configure
===============================================================================
1) File Modemdrv/inc/atmuni.h (line 65) contains macro MAX_PVC_SUPPORTED which is presently set to 4. Change this to the desired maximum number of interfaces required.

2) Make changes in file Modemdrv/inc/atmusb.h ( after Line 229) to define the default values of additional VCIs and VPIs. For example if user increases MAX_PVC_SUPPORTED to 5 then add following lines in Modemdrv/inc/atmusb.h
#define RFC1483_DEFAULT_VCI5               90
#define RFC1483_DEFAULT_VPI5               4

3) Add following lines in Modemdrv/src/GULinux.c (After Line 164). This will add the addtional VPI/VCI Configuration parameter to be recognized by insmod command.

MODULE_PARM_DESC(Rfc1483Vci5, "RFC1483 VCI5");
MODULE_PARM(Rfc1483Vci5, "h");
MODULE_PARM_DESC(Rfc1483Vpi5, "RFC1483 VPI5");
MODULE_PARM(Rfc1483Vpi5, "h");

4) Add following lines in Modemdrv/src/GULinux.c (After Line 111). This will define variables to be used for additional VPI/VCI Configuration.
static u16    Rfc1483Vci5            = RFC1483_DEFAULT_VCI5;
static u16    Rfc1483Vpi5            = RFC1483_DEFAULT_VPI5;

5) Add following lines in Modemdrv/src/GULinux.c (After Line 441 in function GpQueryConfig) This sets the additional VPI/VCI values in internal configuration structure from static variables corresponding to command line parameters)

	pCfg->rfc1483Vci[X]            = Rfc1483VciX;
	pCfg->rfc1483Vpi[X]            = Rfc1483VpiX;
X in above two line is the index added. Say if max pvc is modified to 5 then X will be 5. 



Changes required to modify the number of MAXIMUM PPPOA interface PVCs that 
user can configure
===============================================================================
1) File Modemdrv/inc/atmuni.h (line 66) contains macro GSI_WAN_MAX_CHANNELS which is presently set to 4. Change this to the desired maximum number of interfaces required.

2) Make changes in file Modemdrv/inc/atmusb.h ( after Line 400) to define the default values of additional VCIs and VPIs. For example if user increases GSI_WAN_MAX_CHANNELS to 5 then add following lines in Modemdrv/inc/atmusb.h
#define RFC2364_DEFAULT_VCI5               X
#define RFC2364_DEFAULT_VPI5               Y
where X and Y are desired default VPI/VCI for additional PVC

3) Add following lines in Modemdrv/src/GULinux.c (After Line 197). This will add the addtional VPI/VCI Configuration parameter to be recognized by insmod command.

MODULE_PARM_DESC(Rfc2364Vci5, "RFC2364 VCI5");
MODULE_PARM(Rfc2364Vci5, "h");
MODULE_PARM_DESC(Rfc2364Vpi5, "RFC2364 VPI5");
MODULE_PARM(Rfc2364Vpi5, "h");

4) Add following lines in Modemdrv/src/GULinux.c (After Line 126). This will define variables to be used for additional VPI/VCI Configuration.
static u16    Rfc2364Vci5            = RFC2364_DEFAULT_VCI5;
static u16    Rfc2364Vpi5            = RFC2364_DEFAULT_VPI5;

5) Add following lines in Modemdrv/src/GULinux.c (After Line 456 in function GpQueryConfig) This sets the additional VPI/VCI values in internal configuration structure from static variables corresponding to command line parameters)

	pCfg->rfc2364Vci[X]            = Rfc2364VciX;
	pCfg->rfc2364Vpi[X]            = Rfc2364VpiX;
X in above two line is the index added. Say if max pvc is modified to 5 then X will be 5. 

6) monaco_linux/cpl/gsi_cfg.c contains variables PVCCount and PPPOACount
defined as 4. This has to be modfied to the desired number of interfaces.


Unloading the module & the firmware loader
------------------------------------------
  To unload an unused module:
    % rmmod GUModem (Command to be executed from directory monaco_linux/ModemDrv)

  You may need to exit or disconnect any program current using the module
  before it will unload. If the module was configured for LAN, shutdown
  the ethernet interface:
    % ifconfig eth2 down

  Note: If multiple ethernet interfaces are created then all the ethernet interfaces need to be brought down before unloading the driver.

  If the module was configured as a WAN device, you may need to disconnect
  the PPP daemon (pppd) from the TTY interfaces. Do this by terminating
  the PPP daemon:
    % killall pppd


LAN Configuration
-----------------
  To enable LAN traffic over the ethernet interface:
    % ifconfig eth2 192.168.1.200 up

  You may also need to modify the netmask and route for the interface.
  Refer to the manual pages for ifconfig and route for more information.

  To test the LAN connection is alive by pinging the remote side:
    % ping 192.168.1.1

  To disconnect the LAN inteface:
    % ifconfig eth2 down


WAN Configuration
-----------------
  The PPP daemon (pppd) talks to the driver over TTY devices. Before the
  driver can be used, the devices /dev/ttyG[0-X] and /dev/cug[0-X] need to be
  created. X here is the maximum supported PPP interfaces. This can be performed by executing:
    % makenode devnodes

  or by entering the following from the command line:
    % mknod /dev/ttyG0 c 43 0
    % chown root.uucp /dev/ttyG0
    % chmod 0660 /dev/ttyG0

    % mknod /dev/cug0 c 44 0
    % chown root.uucp /dev/cug0
    % chmod 0660 /dev/cug0

  If the support is required for more than the default configured interfaces then additional device nodes need to be created along with this.

  Next, PPP needs to be configured as a client to connect to a PPP
  server. The PPP server should already be created, and a dialup
  user configured. For this example, the user name is "test_user",
  and the user password is "test_password".

  Add the following (delete the leading spaces, and replace the spaces
  with tabs) to: "/etc/ppp/pap-secrets" and "/etc/ppp/chap-secrets"
    "test_user"         *       "test_password"
  Please note that user name and passward should be given in double quotes 
  as shown above. Also note that there should be additional username / 
  password configured for additional PPP interfaces.

  Create a PPP description file: "/etc/ppp/peers/adsl0" that contains:
    user "test_user"
    ttyG0
    sync
    mtu 1490
    mru 1490
    debug
   
  It should be also noted that additional "adslX" files need to be created 
  corresponding to the PPP interfaces where X is the number of the PPP interface

  To initiate a WAN connection execute the following:
    % pppd call adsl0
  
  In same way additional PPP links can be setup using command "pppd call adslX"

  To test the PPP connection by pinging the remote side:
  Do ifconfig -a to get the remote IPADDRESS and then ping the remote.
    % ping Remote IPADDRESS


PPPoE Configuration
-------------------
    The PPPoE should be installed on the system.

    The file /etc/pppoe/pppoe.conf should have ETH=eth1 (where eth1 is the Ethernet card connected to ADSL modem)
    and USER=test_user.

    To enable the interface:
    % ifconfig eth1 up ( eth1 is the ethernet device as configured in file /etc/pppoe/pppoe.conf

    Then execute:
    adsl-start


Changing Driver and DSP Parameters Configuration
------------------------------------------------

    Conexant provides "gsi_cfg" control panel application ( available in cpl 
	directory in src tree) to enable customers to change the drivers and DSP 
	parameters on run time.

    To see the parameter of the application run following command
    
        gsi_cfg eth1 -h
 

    To change the Driver and DSP parameters. Modify the gp.cfg file and run the control panel with Change configuration option(run -C eth2)

    To see the current firmware deploymet option, run following command from cpl directory with superuser permissions
    
        gsi_cfg eth1 -f
	
    To see the All available firmware deploymet options, run following command from cpl directory with superuser permissions
    
        gsi_cfg eth1 -P
  
    To change the current firmware option to any other available value, open file gp.cfg presnt in cpl firectory. Then set the option GTI_PROFILE_ITEM to any other value as obtained from above command. Then run the following command from cpl directory with superuser permissions
    
        gsi_cfg eth1 -F	
	
	
Various modes tested
--------------------

    WAN modes tested
    1. RFC 2364 PPPoATM LLC  encapsulation

    LAN modes tested
    1. RFC 1483 IPoATM/bridged LLC encapsulation
    2. RFC 1483 IPoATM/bridged VC encapsulation

    LAN modes which are not tested are
    1. RFC 2364 PPPoATM NULL encapsulation
    2. RFC 2516 PPPoE encapsulation


Known Issues
------------
1)In Linux kernel 2.6 series there is an issue related to usage of
"interruptible_sleep_on" kernel API which results in crash of the driver. To
resolve this issue (specifically in Fedora Core 3) we have used Semaphores as
IPC mechanism. This might create problems when driver is used in SMP systems.

Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web1, load: 0.94