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:~#