Returnees
------------------------------------------------------
If your kernel-headers are installed,
	./build_module
will launch Christoph Hebeisens' new automagic, working
through Chris's and Mark Spieth's cleanup of the code,
culminating in a driver pair which will be installed by
        ./ltinst2
While
	./autoload
places within in 
	/etc/modules.conf
# lt_drivers: autoloading and insertion parameter usage
alias char-major-62 lt_serial
# options lt_modem vendor_id=0x115d device_id=0x0420
# options lt_modem Forced=3,0x130
# options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8
# section for lt_drivers ends

enabling loading of drivers and dependent modules with:
$	modprobe lt_serial
as displayed by
$	lsmod
Module                  Size  Used by
lt_serial              28480   0  (unused)
lt_modem              316032   0  [lt_serial]
   and if your System has modular isa-pnp
isa-pnp                28240   0  [lt_serial] *

and removed with:
$	modprobe -r lt_serial

Alternatively, verify that your DialOut script specifies
the port /dev/ttyLT0 (formerly some had /dev/ttyS14).
When your PPP session is next initiated, your
 /var/log/messages will report something like: 
------------
kernel: PPP generic driver version 2.4.1
pppd[20973]: pppd 2.4.0 started by root, uid 0   
kernel: isapnp: Scanning for Pnp cards...
kernel: Loading Lucent Modem Controller driver version 5.99
kernel: Detected Parameters Irq=3 BaseAddress=0x260
kernel: Lucent Modem Interface driver version 5.99
    (2001-01-26) with SERIAL_PCI ISAPNP enabled
kernel: ttyLT00 at 0x0260 (irq = 3) is a Lucent Modem

with modules concurrently loaded autoclean:
Module                    Size  Used by
lt_serial                28480   2  (autoclean)
lt_modem                316032   0  (autoclean) [lt_serial]              
isa-pnp                  28240   0  (autoclean) [lt_serial]
ppp_generic              12960   1  (autoclean) 

and onward to the Internet through which you can:
Report         through: discuss@linmodems.org
Help Newbies   through: discuss@linmodems.org
Gratitude too, through: discuss@linmodems.org
and otherwise more broadly Enjoy!

More advanced usage:
1)   ./build_deb  puts drivers in a Debian installer package.
2) If full kernel-sources are installed and configured,
     ./build_rpm  puts drivers in a Red Hat installer package.
3) Read the top of build_module and DOCs for instructions, 
to force compilation of drivers not version matched with your kernel.

for Newcomers
--------------------------------------------------------
This kit will provide support for many modems with 
Lucent chipsets, now including PCMCIA modems.
They are sold under a variety of modem brand names. 

Much general information on WinModems is at:
http://walbran.org/sean/linux/linmodem-howto-all.html
http://www.linmodems.org wherefrom there can be 
accessed the archives of the List: discuss@linmodems.org

If this kit was opened under Microsoft, please reboot 
under Linux, and copy/move the original linmodem-5.95a.tar.gz
onto a Linux filesystem.  Scripts (action files) herein are
corrupted by DOSsy hard stops. Thus continuing with a kit
first opened under DOS/MS_Windows would be:

HopeLess
--------------------------------------------------------
This kit will FAIL to support currently known winmodems 
with chipsets produced by: 
  Conexant ( with former Rockwell technology)
  Motorola ( is still developing a driver for Linux)
  US Robotics ( has not as yet announced intentions)
  IBM, PCTel and Intel
The Lucent AMR Soft modem is not supported.  
Some but NOT all PCI modems with a
Among  Xircom modems some are supported, and will be recognized
by doing a hardware scan with Root command:  ./scanPCI
Do it now!

Software sources and responsibilities.
--------------------------------------------------------------
Agere Systems, Inc, (AS herein is a branch of Lucent Technologies, Inc.)
AS provides the core Digital Signal Processor (DSP) code supporting
the  Mars/Apollo chipset used in the compatible modems. 
Diverse manufacturers incorporate the chips onto diverse modem 
cards, generally optimizing them for use under MS Windows.  
AS has NO responsibility for downstream modem functionality under 
Linux.    !! Please do not annoy AS with support queries !!

The List discuss@linmodems.org is the only medium for the 
current support of these modems under Linux.  

Origins of the ltmodem-5.nn series kits enhancing upon 
the AS base are described in DOCs/CREDITS. These resources
are used at your own risk.

Contents
-------------------------------------------------------
With respect to core code, this kit is an expansion of an
AS linux599.zip release. It has propriatory components
represented by the AS ltmodem.o driver, or the lt_modem.o
of this kit which is provided with an insertion parameter.
The complementary lt_serial.o is compiled from Open Source
code, and benefits from the several contributions listed in
DOCs/CREDITS.

This kits  resources and actions are:
  Documentation for pre and post installation issues;
  Scan of your PCI hardware for a compatible modem;
  Automated resource checks (separately imported or compiled
     kernel-header files are needed);
  Complilation of a driver pair  lt_modem.o AND lt_serial.o ;
  Installation of the drivers in the kernel_modules PATH;  
  Enabling driver autoloading through the line in
    /etc/modules.conf:  "alias char-major-62 lt_serial"
  Making a necessary /dev/ttyLT0 node and symbolic link 
    /dev/modem to it.
  Setting a permission in /etc/group for dialout by Users.
  Generation of Red Hat and Debian style installers, 
    to support additional registration of the software.

With transition from 5.78 --> 5.9n code, two problems
already reported alleviated are an "error 16" termination
and a Hang Up during initiation of the ppp protocol. While
the reports are anecdoctal rather than quantitative, there 
seem to be improvements in stability when the modem and other
drivers share a single IRQ.

The DOCs included herein will be pedantic for 
the Experienced. But there is a continuing stream of
Linux Newbies, which warrants some detail.  
Many SKIPs are recommended to the more knowledgeable.

If the reading should become opaque in places,
pause to read DOCs/ForNewbies.

Checks for modem identity
--------------------------------------------------------
If you modem is on a  ISA and PCMCIA card an identifying
scan for its chip type cannot be achieved. The copy of 
the Linmodem_HowTo in DOCs provides guidance for seeking 
identifying information.  There is a check for compatible 
PCI modem hardware.  As Root enter:
$	./scanPCI
Try it now if not done already. 
If yours is thus identified as ltmodem compatible, 
SKIP to Utilities versions. Otherwise read on.

Utilities versions.
---------------------------------------------------------
If your kernel is in the 2.2.nn series, SKIP to:
  REQUIRED kernel-headers 
But read and check carefully if you encounter problems, 
or will use a 2.4.nn series kernel.
But read carefully if you are using a 2.4 version kernel.
Kernels commonly have names like 
  /boot/vmlinuz-2.2.nm-subVersionSometimes
For the 2.2 series kernels, the version specs of the
table below should suffice:

Utility    lowest Version suggested    version test
+++++++++++++++++++++++++++++++++++++++++++++++++
Kernel modutils        2.1.121    ; insmod -V
Gnu C                  2.7.2.3    ; gcc --version
Gnu make               3.79.1     ; make --version
Binutils               2.8.1.0.23 ; ld -v
patch                  2.54       ; patch --version
Linux libc6 C Library  2.0.7pre6  ; ls -l /lib/libc*
Dynamic Linker (ld.so) 1.9.9      ; ldd --version
Linux C++ Library      2.7.2.8    ; ls -l /usr/lib/libg++.so.*
Procps                 2.0.3      ; ps --version
Psmisc                 17         ; pstree -V
Net-tools              1.52       ; hostname -Vld
Sh-utils               1.16       ; basename --v
Bash                   1.14.7     ; bash -version
PPP                    2.3.10     ; pppd --version
Util-linux             2.9z       ; mkfs --version
Pcmcia-cs              3.0.14     ; cardmgr -V
    The last is needed only for pcmcia card modems.

To compile under kernel 2.4.nn version resources,
the following additional requirements are recommended:
Gnu C                  2.91.66    # gcc --version
Gnu make               3.77       # make --version
binutils               2.9.1.0.25 # ld -v
patch                  2.5        # patch --version
util-linux             2.10o      # mkfs --version
modutils               2.4.0      # insmod -V
e2fsprogs              1.19       # tune2fs --version
pcmcia-cs              3.1.21     # cardmgr -V
PPP                    2.4.0      # pppd --version

REQUIRED kernel-headers or kernel-sources
----------------------------------------------------
The easiest and smallest satisfactory resource is a
kernel-header package with download size of about 1.5 Mb.
Its version must match that of the your current kernel 
as displayed by:
#	uname -r
if you choose this route, get the package from your install CD 
or download from your distributions Linux repository. 
Install it with whatever tools your distribution provides.  
The common installation folder is:
   /usr/src/kernel-headers-version#/
If they are therein seated, Chris's search engine 
will fine then automatically.

Alternatively, a symbolic link is necessary, made with:
  ln -s /usr/src/kernel-headers-version /usr/src/linux
Test with:
#	 cat /usr/src/linux/include/linux/version.h
for which the 2.4.1 below is the version of the headers:
#define UTS_RELEASE "2.4.1"
#define LINUX_VERSION_CODE 132097
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

To display all the headers:
#       ls /usr/src/linux/include/linux
802_11.h           fd1772.h                loop.h
a.out.h            fddidevice.h            lp.h  
ac97_codec.h       fdreg.h                 lvm.h 
acct.h             file.h                  major.h
acpi.h             filter.h                malloc.h
adb.h              fs.h                    matroxfb.h
adb_mouse.h        fs_struct.h             mc146818rtc.h
and MANY more.  
Some will compiled with the modem specific codes in this packages
SKIP to FINALLY

Using kernel-sources:
--------------------------------------------------------
For the More Experienced planning to compile kernels, the
sources download size will be some 15 Mb, and some 75 Mb may
be needed during the compile processes:

Disk space information is returned by:
$  df -h
Filesystem            Size  Used Avail Use% Mounted on                 
/dev/hda4		372M  233M  120M  66% /      
/dev/hda6		974M  736M  188M  80% /usr   
/dev/hda5		900M  666M  235M  74% /Data

Be sure that your Linux PC installation includes files needed
for Intel and compatible CPU architechtures: 	
	/usr/bin/nm86
	/usr/bin/size86
	/usr/bin/objdump86
which are commonly part of bin86 package of Linux distibutions.
The utility bzip2 is necessary for unpacking.

If necessary, preferable download kernel-sources from your installation
CDs, or your Linux's distro online repository.  
Thereat, some tailoring specific to your distro may have
already been done. 

If not available there, the general site is http://www.kernel.org/
or its mirrors.  Browse to /pub/linux/kernels/2.?/ . Therein,
you need the linux-version.tar.bz2 with "version"
matching your current(or planned kernel) as closely as possible.
$	uname -r
is the command which outputs your current kernel version. 

It is OK to download to a Microsoft partition. Then CD to the
your chosen unpacking space, wherein:
$	tar Ixvf PATHto/linux-SomeVersion.tar.bz2
will unpack your source in 5-10 minutes. 
Record the output of any existing symbolic link:
$ 	ls -l /usr/src/linux
as you may wish to later reset it.

Set the following MANDATORY symbolic link as Root, and with the
text on one line:
#	ln -sf /PATHtoFolderWith/kernel-sources-version/
		/usr/src/linux
This linkage is generally necessary when working with kernel-source/

Verify with:
$ ls -l /usr/src/linux (which for my system)
lrwxrwxrwx 1 root  src DateTime /usr/src/linux -> linux-2.4.3
Move into it
$ cd /usr/src/linux
Look around:
$ ls  (will show files/folders like)
COPYING		Makefile		arch	include  lib
CREDITS		README		debian   init	 mm
Documentation  REPORTING-BUGS  drivers  ipc	 net
MAINTAINERS	Rules.make	fs	kernel   scripts
-----

It is necessary to clean possible old debris with:
$ make mrproper

This next step is CRITICAL. You must identify on your own System, a
config file specifying the contents of your kernel, identified by:
$	uname -r

For some Linux Distros, it will be at:
  /boot/config-version
For Red Hat there is a /usr/src/linux/configs directory.
The start of the file is like:
===============
#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
CONFIG_ISA=y
# CONFIG_SBUS is not set
CONFIG_UID16=y
================

Within /usr/src/linux/ input this config-version into the
configuration process:
$ 	make menuconfig  OR make Xconfig
Near the bottom of the menus generated, there will be a choice to:
" Load an Alternate Configuration File "
Use /boot/config-version or the equivalent for your Distro.
$ 	Exit
$ 	Exit with Save configuration
Now , the kernel-source system has the necessary information about your
running kernel, which you will want to compile and use ltmodem (and all
other drivers) under.  This config information is stored in the file 
quasi hidden file /usr/src/linux/.config, which can be displayed by:
$	ls -a   

This .config is used to compile the NEEDED kernel headers specific to your
system, concurrently blending in the dependencies during actions of :
$ 	make dep
This will take some 5-15 minutes. 
Get some lunch, walk your dog, or take a nap. 
Afterward, a hugh output of filenames.h should be displayed by:
$ ls /usr/src/linux/include/linux
Your kernel-version should be in the output of:
$ cat /usr/src/linux/include/linux/version.h | grep UTS
#define UTS_RELEASE "2.4.3"
-----------
For my system, it is the:  "2.4.3" 

If all this checks, you are ready to make ltmodem drivers Finally!!!

FINALLY
----------------------------------------------------
Change to the  ltmodem-SomeVersion/ folder. A recording can be
started with:
$	script ltrecord
To  start compiling driver modules, enter:
$     ./build_module
which will compile drivers  matching your CURRENT  kernel.
REMEMBER, !! A new compile is neccessay with new kernel-header resources
   for every change of kernel!!

The command:
     ./ltinst2
will place the driver pair in the modules search PATH.
     ./autoload
will make the port /dev/ttyLT0, enable demand loading of the drivers,
and set permissions for usage to the dailout group.

Use your  Linux distros favored utility for establishing
Dialup scripts, but see the comment on wvdial below. 

When on line you can: 
Report          through: discuss@linmodems.org
Send bug fixes  through: discuss@linmodems.org
Gratitude too,  through: discuss@linmodems.org   


Example
----------------------------------------------------------------
$	./build_module
 ------------------------------------
This is ltmodem- compiler and installer

Drivers to be compiled are:
 lt_modem.o and lt_serial.o

Checking for necessary supporting software and compile resources

creating cache ./config.cache
Checking OS
-- some 20 checks are done --
creating Makefile
creating autoload
creating cleanup

Starting compilation of lt_modem.o and lt_serial.o

gcc -D__KERNEL__ -I/usr/src/linux-2.4.3/include -Wall -Wstrict-prototypes
-O3 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce
-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE
-DLT_VERSION=5.95a -DLINUX -DNO_EEPROM -DLT_SERIAL_MODULE=lt_serial -c -o
ltmodem.a ltmodem.c
ld -r -o lt_modem.o ltmodem.a ltmdmobj.o
gcc -D__KERNEL__ -I/usr/src/linux-2.4.3/include -Wall -Wstrict-prototypes
-O3 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce
-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE
-DLT_VERSION=5.95a -DLINUX -DNO_EEPROM -DLT_SERIAL_MODULE=lt_serial -c -o
serial-lt-2.4.a serial-lt-2.4.c
ld -r -o lt_serial.o serial-lt-2.4.a

Compiling completed, looking for drivers:
-rw-r--r--    1 root     marv       417472 Apr 27 17:00 lt_modem.o
-rw-r--r--    1 root     marv        38146 Apr 27 17:00 lt_serial.o

Preparing for drivers dependency tests:
  Modular isa-pnp.o is present, and needed for the dependency test.

Running test:
  depmod -e lt_modem.o  lt_serial.o
/lib/modules/2.4.3/kernel/drivers/pnp/isa-pnp.o

Test Ended
If an output above includes:	*** Unresolved symbols
Please copy the output to the List discuss@linmodems.org

============= ending compiler =================

To install the modem drivers, run:
   ./autoload

This command will copy the drivers into the /lib/modules/ tree,
and put the followin section in:
	 /etc/modules.conf
# lt_drivers: autoloading and insertion parameter usage
alias char-major-62 lt_serial
# options lt_modem vendor_id=0x115d device_id=0x0420
# options lt_serial Forced=3,0x130
# options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8
# section for lt_drivers ends
The options lines should Very Rarely be needed.
See DOCs/Insert-param.html for instructions.


Further usage 
-----------------------------------------------------------------
At this point, do a test:
$ 	 modprobe lt_serial

Inserts modem with dependent modules, as displayed by:
$	lsmod
Module                  Size  Used by
lt_serial              28480   0  (unused)
lt_modem              316032   0  [lt_serial]
isa-pnp                28240   0  [lt_serial]

The isa-pnp will be there only if your System has Modular ISA-PNP support.
These modules are simple removed from the kernel with:

$	rmmod lt_serial lt_modem isa-pnp
or by
$	modprobe -r lt_serial

The "alias char-major-62 lt_serial" enables insertion of
the modem drivers on demand. 

If your DialOut utility (chatscripts, KPPP, wvdial, etc) has /dev/ttyLT0
specified as the port, just start a DialOut. 

The utility wvdial/wvdialconf tests for modems among devices: /dev/ttyS*
The real device node used by the modem is /dev/ttyLT0 and will not be found.
However you can seat a prototype file: /etc/wvdial.conf


Without any modules initially loaded,
here is the report of /var/log/messages as a ppp session is initiated:
$	tail -f /var/log/messages &
$	pon  (starting dialup with pppd)

koala:~# Apr 27 17:31:58 koala kernel: PPP generic driver version 2.4.1
Apr 27 17:31:58 koala pppd[20973]: pppd 2.4.0 started by root, uid 0
Apr 27 17:31:58 koala kernel: isapnp: Scanning for Pnp cards...
Apr 27 17:31:58 koala kernel: isapnp: No Plug & Play device found
Apr 27 17:31:58 koala kernel: Loading Lucent Modem Controller driver version 5.99
Apr 27 17:31:59 koala kernel: Detected Parameters Irq=3 BaseAddress=0x260
Apr 27 17:31:59 koala kernel: Lucent Modem Interface driver version 5.99
(2001-01-26) with SERIAL_PCI ISAPNP enabled
Apr 27 17:31:59 koala kernel: ttyLT00 at 0x0260 (irq = 3) is a Lucent Modem
Apr 27 17:32:00 koala chat[20975]: abort on (BUSY)
Apr 27 17:32:00 koala chat[20975]: abort on (NO CARRIER)
Apr 27 17:32:00 koala chat[20975]: abort on (VOICE)
Apr 27 17:32:00 koala chat[20975]: abort on (NO DIALTONE)
Apr 27 17:32:00 koala chat[20975]: abort on (NO DIAL TONE)
Apr 27 17:32:00 koala chat[20975]: abort on (NO ANSWER)
Apr 27 17:32:00 koala chat[20975]: send (ATZ^M)
Apr 27 17:32:00 koala chat[20975]: expect (OK)
Apr 27 17:32:00 koala chat[20975]: ATZ^M^M
Apr 27 17:32:00 koala chat[20975]: OK
Apr 27 17:32:00 koala chat[20975]:  -- got it 
Apr 27 17:32:00 koala chat[20975]: send (ATQ0V1E1S0=0&C1&D2S11=55+FCLASS=0^M)
Apr 27 17:32:01 koala chat[20975]: expect (OK)
Apr 27 17:32:01 koala chat[20975]: ^M
Apr 27 17:32:01 koala chat[20975]: ATQ0V1E1S0=0&C1&D2S11=55+FCLASS=0^M^M
Apr 27 17:32:01 koala chat[20975]: OK
Apr 27 17:32:01 koala chat[20975]:  -- got it 
Apr 27 17:32:01 koala chat[20975]: send (ATDT3019178111^M)
Apr 27 17:32:01 koala chat[20975]: expect (CONNECT)
Apr 27 17:32:01 koala chat[20975]: ^M
Apr 27 17:32:11 koala chat[20975]: ATDT3019178111^M^M
---- and so forth
$	lsmod
Module     		  Size  Used by
lt_serial  		 28480   2  (autoclean)
lt_modem   		316032   0  (autoclean) [lt_serial]
isa-pnp    		 28240   0  (autoclean) [lt_serial]
ppp_generic		 12960   1  (autoclean)
with more ppp modules loaded after login is completed.

Note that modules loaded (autoclean) are can removed by two:
$	rmmod -a
$       rmmod -a
and on some Systems, unused modules are thus removed periodically 
if specified in the /etc/cron.d file. However (for reasons still 
obscure) a small minority of Systems have suffered ppp disconnects
tentatively attributable to such cron actions

Much useful information is in:
http://phep2.technion.ac.il/goldberg/post-install.html

Failure signature
------------------------------------------------------------------------
The most common cause of ./build_module failure is lack of 
proper header resources.  Chris Hebeisen's search scripts
expects to find then in /usr/src/ or follows symbolic links
there from.  A failure will look like:

# ./build_module

This is ltmodem-5.95a1 compiler and installer.

To make a record for trouble shooting purposes,
Start again with:
	script ltrecord.txt
	./build_module
Abort with Ctrl-C to terminate now.
 or wait a few seconds

Drivers to be compiled are:
 lt_modem.o and lt_serial.o

Checking for necessary supporting software and compile resources

creating cache ./config.cache
Checking OS
Checking machine type
Scanning PCI bus for modem
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for make... yes
checking for ld... yes
Checking for kernel headers
  ... in /usr/src/linux: Kernel headers found in /usr/src/linux
  ... in /usr/src/linux-2.4.3: nope

Starting compilation of lt_modem.o and lt_serial.o

make: *** No targets specified and no makefile found.  Stop.

Compiling completed, looking for drivers:
Compilation of lt_modem.o failed!

--------------------------
Another failure signature is a message like:

#error Modules should never use kernel-headers system
headers,
#error but headers from an appropriate kernel-source
 
This indicates that your kernel-headers are not adequate.
You may have to work with kernel-sources instead. 
Within DOCs, read /home/marv/ltmodem/DOCs/Compile_failure

---------------------------
If the compilation is successful, but during the subsequent test:
  depmod -e lt_modem.o lt_serial.o  etc.
there is an output like:  

depmod: *** Unresolved symbols 
depmod: 	inter_module_get_Rf6a0ce24
depmod: 	inter_module_put_R6b99f7d8
depmod: 	add_timer_Ra19eacf8
depmod: 	pci_find_device_Rbfbfc466
Test Ended
If an output above includes:	*** Unresolved symbols"
Please copy the whole output to the List discuss@linmodems.org

this may only be a MINOR issue. There may be Small Enough differences 
between the kernel-headers used in compiling your running kernel
and the kernel-headers used in compiling the modem drivers, 
that they can be cosmetically masked. Proceed as follows:
1) Read DOCs/fixscript.txt. 
2) Copy utils/fixscript into Root's command PATH, perhaps /usr/local/bin.
3) cd source/
4) mv lt_modem.o lt_modem.orig
5) fixscript lt_modem.orig lt_modem.o  
6) mv lt_serial.o lt_serial.orig
7) fixscript lt_serial.orig lt_serial.o
Hopefully, both fixscript actions will have gone to completion.
Check with:
$	ls lt_*.o
If lt_modem.o and lt_serial.o are displayed fine!
$ 	cd ..  (backup one folder)
$	./ltinst2
$	./autoload
and proceed to further usage.

If either of the fixscript actions didn't complete,
its not lethal yet. Restore the original name(s) as necessary, for example:
1) mv lt_modem.orig lt_modem.o
If necessary also:
2) mv lt_serial.orig lt_serial.o
Do test insertions:
$  	insmod isa-pnp  (assuming your System has modular isa-pnp.o
$  	insmod -f ./lt_modem.o
$  	insmod -f ./lt_serial.o
with -f meaning "forcing"
$	lsmod
If lt_modem and lt_serial are displayed, fine!
$ 	cd ..
$	./ltinst2
$	./autoload
There will be complaints about mis-matched versions. Ignore them.

However the autoload in this case has to be further enabled.
Within /etc/modutils/aliases if your System has it
or /etc/modules.conf as the alternate, find the block:

# lt_drivers: autoloading and insertion parameter usage
alias char-major-62 lt_serial
# options lt_modem vendor_id=0x115d device_id=0x0420
# options lt_modem Forced=3,0x130
# options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8
# section for lt_drivers ends

edit in

# lt_drivers: autoloading and insertion parameter usage
alias lt_modem   -f lt_modem
alias lt_serial  -f lt_serial
alias char-major-62 lt_serial
# options lt_modem vendor_id=0x115d device_id=0x0420
# options lt_modem Forced=3,0x130
# options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8
# section for lt_drivers ends

If you edited /etc/modutils/aliases, rename any backup file:
	/etc/modutils/aliases~
Then command:
$	update-modules
which will update /etc/modules.conf.
There will be complaints about mis-matched versions. 
Ignore them, and proceed to further usage.

If driver insertions failed, it is necessary to achieve
a better version match between the kernel-headers
and your running kernel, before again attempting 
$	./build_module


