Agere Modem supported by Martian Driver on Slax Linux Live 6.0.0rc3
First Download scanModem.gz from LinModem Resource Page
Get scanModem from here
http://linmodems.technion.ac.il/packages/scanModem.gz
Then extract it with
# gunzip scanModem.gz
# chmod +x scanModem
# ./scanModem
it will generate some output and a Modem/ folder. There you will find ModemData.txt
run scanModem and look to see for the line
Support type needed or chipset: Agere.DSP
The modem has a supported Lucent/Agere Mars or Apollo DSP (digital
signal
processing) chipset. Support packages for 2.6.n kernels are at:
http://phep2.technion.ac.il/linmodems/packages/ltmodem/kernel-2.6/martian/
See AgereDSP.txt for Details.
DSP=1
ModemData.txt generated from scanModem
=========================================================================
Only plain text email is forwarded by the [email protected] List
Server.
Do use the following as the email Subject Line:
SomeName, YourCountry ===================================
Welcome to SLAX
The system is up and running now
Login as root, password is toor
=================================== kernel 2.6.21.1
This will alert cogent experts, and distinguish cases in the
Archives.
YourCountry will enable Country Code guidance.
Occassionally responses are blocked by an Internet Provider mail
filters.
So in a day, also check the Archived responses at
http://www.linmodems.org .
Local Linux experts can be found through:
http://www.linux.org/groups/index.html
-------------------------- System information
----------------------------
CPU=i686, ===================================
Welcome to SLAX
The system is up and running now
Login as root, password is toor
===================================
Linux version 2.6.21.1 (root@slax) (gcc version 4.1.2) #1 SMP Wed May 2
16:49:45 GMT 2007
scanModem update of: 2007_June_06
ALSAversion 1.0.14rc2
USB modem not detected by lsusb
Modem or host audio card candidates have firmware information:
PCI slot PCI ID SubsystemID Name
---------- --------- --------- --------------
00:0a.0 11c1:044e 11c1:044c Communication controller: Agere Systems LT
WinModem
Modem interrupt assignment and sharing:
15: 2303 IO-APIC-edge ide1
--- Bootup diagnositcs for card in PCI slot 00:0a.0 ----
=== Finished modem firmware and bootup diagnostics section. ===
=== Next deducing cogent software ===
For candidate modem in PCI bus: 00:0a.0
Class 0780: 11c1:044e Communication controller: Agere Systems LT
WinModem
Primary PCI_id 11c1:044e
Support type needed or chipset: Agere.DSP
The modem has a supported Lucent/Agere Mars or Apollo DSP (digital
signal
processing) chipset. Support packages for 2.6.n kernels are at:
http://phep2.technion.ac.il/linmodems/packages/ltmodem/kernel-2.6/martian/
See AgereDSP.txt for Details.
DSP=1
Vendor 11c1 is Lucent Technologies with modem technology now under LSI
Inc.
Their Linux code developer/maintainer is Soumyendu Sarkar. Support for
a chipset and its
continued maintenance is only initiated at the request of a major
chipset buyer,
or comparable sponsor. Several different modem chipset types are
produced:
with varying support under Linux.
Device ID Support Name Comment
--------- ------------- ----------- -----------------------------
0480 serial drivers Venus controller chipset 1673JV7
0440-045d martian Mars/Apollo DSP (digital signal
processing) chipsets
0462 none 56K.V90/ADSL Wildwire
048d none SV2P soft modem
048(c or f) AGRSM SV2P soft modem
0600 none soft modem, very few in the field.
0620 AGRSM Pinball soft modem, in some HP desktop PCs
062(1-3) none SV92PP,Pinball soft modem, in some HP
desktop PCs
martian - At
http://phep2.technion.ac.il/linmodems/packages/ltmodem/kernel-2.6/martian/
AGRSM - At
http://phep2.technion.ac.il/linmodems/packages/ltmodem/kernel-2.6/
agrsm-alpha.tar.bz2 potentially provides support for PCI_id chipsets
11c1:048c, 11c1:048f and 11c1:0620
in addition to prior support of Subsystems under Intel 8086:???? below
11C1:048C
11C1:048F
11C1:0620
8086:(2416 2426 7196 2486 24C6 24CD6 266D) are soft modem controllers,
better
supported through ALSA modem drivers and the Smartlink slmodemd
helper.
There has only been one reported success for 11c1:048c, 11c1:048f and
11c1:0620. See:
http://linmodems.technion.ac.il/bigarch/archive-seventh/msg00849.html
http://linmodems.technion.ac.il/bigarch/archive-seventh/msg00970.html
Interaction with experts will likely be necessary to get any of these
modems working.
0x044e -- Mars 3 Mercury data fax only
-------------- end Agere Systems section -------------------
Completed candidate modem analyses.
The base of the UDEV device file system is: /dev/.udev
Versions adequately match for the compiler installed: 4.1.2
and the compiler used in kernel assembly: 4.1.2
Kernel-header resources needed for compiling are not manifestly ready!
If compiling is necessary packages must be installed, providing:
kernel-source-2.6.21.1
Checking pppd properties:
-rwxr-xr-x 1 root root 366440 Jun 29 2006 /usr/sbin/pppd
In case of an "error 17" "serial loopback" problem, see:
http://phep2.technion.ac.il/linmodems/archive-sixth/msg02637.html
To enable dialout without Root permission do:
$ su - root (not for Ubuntu)
chmod a+x /usr/sbin/pppd
or under Ubuntu related Linuxes
chmod a+x /usr/sbin/pppd
Checking settings of: /etc/ppp/options
asyncmap 0
crtscts
lock
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
In case of a message like:
Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
see http://linmodems.technion.ac.il/bigarch/archive-sixth/msg04656.html
Don't worry about the following, it is for the experts
should trouble shooting be necessary.
==========================================================
Checking for modem support lines:
--------------------------------------
/device/modem symbolic link:
slmodemd created symbolic link /dev/ttySL0:
Within /etc/udev/ files:
Within /etc/modprobe.conf files:
/etc/modprobe.d/blacklist:# ALSA modules to support sound modems.
These should be loaded manually
/etc/modprobe.d/blacklist:blacklist snd-atiixp-modem
/etc/modprobe.d/blacklist:blacklist snd-via82xx-modem
Within any ancient /etc/devfs files:
Within ancient kernel 2.4.n /etc/module.conf files:
--------- end modem support lines --------
==========================================
Instructions for martian driver
Installation
Build and install the kernel module and martian_modem
issuing
$ make all
# make install
You have to run second command as root.
Remove files left from previous installation:
# scripts/remove_outdated.sh
Usage
Load kernel module and launch user space driver
# modprobe martian_dev
# martian_modem
Leave it running and you can access the modem by
/dev/ttySM0 file.
==========================================
here's how extraction and building of martian drivers
root@slax:~# tar -zxvf martian-full-20061203.tar.gz
martian/
martian/kmodule/
martian/kmodule/Makefile
martian/kmodule/kmartian.h
martian/kmodule/marsio.h
martian/kmodule/mfifo.c
martian/kmodule/mfifo.h
martian/kmodule/fifo.h
martian/kmodule/mixspinlock.h
martian/kmodule/marsio.c
martian/kmodule/martian_ids.c
martian/kmodule/martian.c
martian/modem/
martian/modem/core_if.c
martian/modem/mport.c
martian/modem/smp.c
martian/modem/mixspinlock.h
martian/modem/profile.c
martian/modem/coreadd.c
martian/modem/Makefile
martian/modem/coresubst.c
martian/modem/mport.h
martian/modem/sysdep.c
martian/modem/tweakcore.sh
martian/modem/watch.h
martian/modem/README
martian/modem/elf386tweakrelocs.c
martian/modem/pty.c
martian/modem/sysdep.h
martian/modem/ltmdmobj.o
martian/modem/dumpers.c
martian/modem/log.c
martian/modem/session.c
martian/modem/main.c
martian/modem/ASWMLICENSE
martian/modem/log.h
martian/modem/main.h
martian/modem/debug_script.in
martian/modem/tweakrelocsdynamic.c
martian/modem/link.c
martian/modem/isr.c
martian/modem/common.h
martian/modem/watch2.gdb
martian/modem/watch3.gdb
martian/modem/watch4.gdb
martian/modem/watch.gdb
martian/ChangeLog
martian/martian.h
martian/scripts/
martian/scripts/remove_outdated.sh
martian/scripts/automate.sh
martian/scripts/martian
martian/scripts/martian.in
martian/scripts/wv.conf
martian/INSTALL
martian/Concept
martian/Makefile
martian/README
root@slax:~# cd ma
martian/
martian-full-20061203.tar.gz
martian-20061203.tar.bz2
root@slax:~# cd martian
root@slax:~/martian# make
make -C kmodule/ modules
make[1]: Entering directory `/root/martian/kmodule'
make -C /lib/modules/2.6.21.1/build
M="/root/martian/kmodule" modules
make[2]: Entering directory `/usr/src/linux-2.6.21.1'
WARNING: Symbol version dump
/usr/src/linux-2.6.21.1/Module.symvers
is missing; modules will have no
dependencies and modversions.
CC [M] /root/martian/kmodule/martian.o
/root/martian/kmodule/martian.c: In function
'martian_isr':
/root/martian/kmodule/martian.c:160: warning: value
computed is not used
/root/martian/kmodule/martian.c: In function
'martian_add':
/root/martian/kmodule/martian.c:662: warning: passing
argument 2 of 'request_irq' from incompatible pointer
type
CC [M] /root/martian/kmodule/marsio.o
CC [M] /root/martian/kmodule/mfifo.o
LD [M] /root/martian/kmodule/martian_dev.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/martian/kmodule/martian_dev.mod.o
LD [M] /root/martian/kmodule/martian_dev.ko
make[2]: Leaving directory `/usr/src/linux-2.6.21.1'
make[1]: Leaving directory `/root/martian/kmodule'
make -C modem/ all
make[1]: Entering directory `/root/martian/modem'
CC main.o
CC dumpers.o
CC log.o
CC session.o
CC mport.o
CC pty.o
CC sysdep.o
CC isr.o
CC smp.o
CC core_if.o
CC coresubst.o
CC link.o
CC tweakrelocsdynamic.o
CC coreadd.o
CC elf386tweakrelocs
LD marscore.o
TWEAK marscore.o
LD martian_modem
make[1]: Leaving directory `/root/martian/modem'
root@slax:~/martian# make install
make -C kmodule/ install
make[1]: Entering directory `/root/martian/kmodule'
make -C /lib/modules/2.6.21.1/build
M="/root/martian/kmodule" modules_install
make[2]: Entering directory `/usr/src/linux-2.6.21.1'
INSTALL /root/martian/kmodule/martian_dev.ko
DEPMOD 2.6.21.1
make[2]: Leaving directory `/usr/src/linux-2.6.21.1'
if ! /sbin/modprobe -nq martian_dev ; then
/sbin/depmod -a; fi
make[1]: Leaving directory `/root/martian/kmodule'
make -C modem/ install
make[1]: Entering directory `/root/martian/modem'
LD martian_modem.debug
STRIP martian_modem.debug
STRIP martian_modem.stripped
INSTALL /usr/sbin/martian_modem
INSTALL
/usr/lib/debug/usr/sbin/martian_modem.debug
make[1]: Leaving directory `/root/martian/modem'
root@slax:~/martian#
Copy the file martian in the directory /martian/scripts to rc.martian
root@slax:~/martian# cd scripts
root@slax:~/scripts# cp martian rc.martian
Modify the rc.martian script by changing the device /dev/ttySM0 to /dev/modem
Why? Slax does not have wvdial, and wvdial and wvstreams failed to install on Slax. We need to use KPPP to achieve a connection. Also add a line
modprobe martian_drv to the file
From
# edit to set other name
DEVICE="/dev/ttySM0"
to
# edit to set other name
DEVICE="/dev/modem"
and before this "if" statement in rc.martian add
if [ `/sbin/lsmod | grep -c ${MARTIANMOD}` -lt "1" ]; then
echo "kernel module is not loaded!"
exit 0
fi
modprobe martian_dev <---- add this here
if [ `/sbin/lsmod | grep -c ${MARTIANMOD}` -lt "1" ]; then
echo "kernel module is not loaded!"
exit 0
fi
Save the modified file rc.martian and copy it to /etc/rc.d/ directory
root@slax:~/martian/scripts# cp rc.martian /etc/rc.d/
root@slax:~/martain/scripts# cd /etc/rc.d/
root@slax:/etc/rc.d# chmod +x rc.martian
with these adjustments now you can start/stop/restart martian modem by doing
root@slax:/etc/rc.d# /etc/rc.d/rc.martian
Usage: /etc/rc.d/rc.martian {start|stop|restart|reload|status}
root@slax:/etc/rc.d#
Hope this helps users of slax. Full copy of rc.martian follows so you can compare.
/etc/rc.martian
root@slax:/etc/rc.d# cat rc.martian
#!/bin/bash
#
# Init file for martian_modem
#
# chkconfig: 2345 45 60
# description: martian_modem
#
# processname: martian_modem
#
### BEGIN INIT INFO
# Provides: martian_modem
# Default-Start: 2 3 4 5
# Short-Description: martian_modem
# Description: martian_modem
# Author: Stefan Puch
# Adjustments for 2006/11 release A. Chentsov
### END INIT INFO
#VPNCLIENT="/opt/cisco-vpnclient/bin/vpnclient"
NAME="martian_modem"
MARTIANMOD="martian_dev"
USER_DRIVER="/usr/sbin/martian_modem"
# edit to set other name
DEVICE="/dev/modem"
modprobe martian_dev
if [ `/sbin/lsmod | grep -c ${MARTIANMOD}` -lt "1" ]; then
echo "kernel module is not loaded!"
exit 0
fi
# See how we were called.
case "$1" in
start)
echo -n "Starting ${NAME}: "
if [ `ps -A | grep -c ${NAME}` -gt "0" ]; then
echo "${NAME} is already running. Use restart instead."
exit 1
fi
if [ ${DEVICE} != "/dev/ttySM0" ]; then
ARGDEV=${DEVICE}
else
ARGDEV=
fi
/usr/sbin/martian_modem --daemon ${ARGDEV}
echo "Done"
;;
stop)
echo -n "Shutting down ${NAME}: "
if [ `ps -A | grep -c "martian_modem"` -lt "1" ]; then
echo "${NAME} is not running."
exit 1
fi
PID=`/sbin/pidof ${NAME}`
# cease now
/bin/kill ${PID}
if [ -L ${DEVICE} ]; then
rm -f ${DEVICE}
fi
echo "Done"
;;
status)
PID=`/sbin/pidof ${NAME}`
if [ -n "${PID}" ] ; then
echo ${NAME} "(PID ${PID}) is running..."
else
echo ${NAME} "is stopped"
fi
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
Now remains to configure KPPP to your ISP and get connected with SLAX Linux Live and your Agere winmodem supported by Martian drivers.
File edited by Antonio A. Olivares
root@slax:~# echo $(date +%Y%m%d~%H:%M:%S)
20070731~15:12:24
root@slax:~# uname -ipr
2.6.21.1 pentium3 i386
root@slax:~#