thanks Marvin, attachment file ef.txt and other
UPDATE=2008_08_21 Continuing as this update is only 1 weeks old, but the current Update is always at: http://linmodems.technion.ac.il Identifying PCI bus slots with candidate modems. Running PCIbus cases Analysing card in PCI bus 00:1b.0, writing to scanout.00:1b.0 Using scanout.00:1b.0 data, and writing guidance to ModemData.txt Writing DOCs/Intel.txt Writing residual guidance customized to your System. A subfolder Modem/ has been written, containing these files with more detailed Information: ------------------------------------------------------------------------------------------ 1stRead.txt DOCs ModemData.txt scanout.00:1b.0 tmp and in the DOCs subfolder: DriverCompiling.txt InfoGeneral.txt Intel.txt Rational.txt SoftModem.txt Testing.txt UNSUBSCRIBE.txt wvdial.txt YourSystem.txt ------------------------------------------------------------------------------------------- Please read 1stRead.txt first for Guidance.
If you want help from the email group Discuss@xxxxxxxxxxxxx, PLEASE join the List at http://www.linmodems.org . Otherwise your messages will be delayed until the evening, waiting for someone to verify it is not junk mail, before forwarding through the List server. The files in this Modem/ folder have the following roles: ModemData.txt - Diagnostics and accumulated information cogent to your modem and host system. This is the ONLY file which should be sent to the List DISCUSS@xxxxxxxxxxxxx , if further help is needed. Send your email and attachments as plain text as other formats are rejected by the List Server, to avoid virus transmission. Always send the ENTIRE ModemData.txt, as It includes subtle diagnostic ouputs needed to best guide you. Please in the covering email mention your Country, to enable Country specific advice. Always use the most recent update of scanModem accessed ONLY at http://linmodems.technion.ac.il/packages/scanModem.gz to produce ModemData.txt URLs to cogent advice are regularly updated, so your problem may be solved therein. Please Do NOT send Do NOT send other files in this folder Modem/ Several informative files without diagnostics are in the DOCs subfolder. A file(s) specific to your modem chipset will be written, such as: Smartlink.txt, Conexant.txt, Intel.txt , etc YourModem.txt - Guidance about operating your particular System, for your benefit It should NOT be sent to Discuss@xxxxxxxxxxxxx Rational.txt - Motivations of this scanModem package. DriverCompiling.txt - Explains the roles of additional files which may have to be installed to support compiling of modem drivers, and the steps to take. SoftModem.txt - Information and instructions about "soft modems". For these modems, additional steps may be necessary for choice of supporting software. The primary PCI ID is that of the host audio or modem controller, which can support diverse Subsystems. It is the chipset of the Subsystem which determines the software needed. ModemTesting.txt SHOULD be read, but after drivers have been installed. InfoGeneral.txt has general information about the status of winmodem support under Linux, Do read it if ModemData.txt reports that your current modem is not supported under Linux. Unsubscribe.txt - Howto terminate email tranmissions from the List. If you are Linux newcomer, please do locate your local Linux group through: http://www.linux.org/groups/index.html . If you are not comfortable with English, a local Linux user can often be of substantial assistance in getting you on to the Internet.
Only plain text email is forwarded by the Discuss@xxxxxxxxxxxxx List Server, as HTML can contain viruses. Use as the email Subject Line: YourName, YourCountry kernel 2.6.24-19-generic With this Subject Line cogent experts will be alerted, and useful case names left in the Archive. YourCountry will enable Country specific guidance. Linux experts in YourCountry can be found through: http://www.linux.org/groups/index.html. They will know your Country's modem code, which may be essential for dialup service. Responses from Discuss@xxxxxxxxxxxxx are sometimes blocked by an Internet Provider mail filters. So in a day, also check the Archived responses at http://www.linmodems.org -------------------------- System information ---------------------------- CPU=i686, Linux version 2.6.24-19-generic (buildd@terranova) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Fri Jul 11 23:41:49 UTC 2008 scanModem update of: 2008_08_21 There are no blacklisted modem drivers in /etc/modprobe* files Attached USB devices are: ID 046d:c001 Logitech, Inc. N48/M-BB48 [FirstMouse Plus] USB modems not recognized For candidate card in slot 00:1b.0, firmware information and bootup diagnostics are: PCI slot PCI ID SubsystemID Name ---------- --------- --------- -------------- 00:1b.0 8086:284b 1179:ff00 Audio device: Intel Corporation 82801H Modem interrupt assignment and sharing: 22: 48658 49035 IO-APIC-fasteoi HDA Intel --- Bootup diagnostics for card in PCI slot 00:1b.0 ---- [ 31.403782] ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 22 [ 31.403810] PCI: Setting latency timer of device 0000:00:1b.0 to 64 ===== Advanced Linux Sound Architecture (ALSA) diagnostics ===== The ALSA packages provide audio support and also drivers for some modems. ALSA diagnostics are written during bootup to /proc/asound/ folders. The ALSA verion is 1.0.16 The modem cards detected by "aplay -l" are: None The /proc/asound/pcm file reports: ----------------------- 00-04: ALC268 Analog : ALC268 Analog : capture 1 00-00: ALC268 Analog : ALC268 Analog : playback 1 : capture 1 about /proc/asound/cards: ------------------------ 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xfc500000 irq 22 PCI slot 00:1b.0 has a High Definition Audio Card The drivers are in the kernel modules tree at: /lib/modules/2.6.24-16-generic/ubuntu/sound/alsa-driver/pci/hda/snd-hda-intel.ko /lib/modules/2.6.24-19-generic/ubuntu/sound/alsa-driver/pci/hda/snd-hda-intel.ko The modem codec file for the HDA card is: /proc/asound/card0/codec#1 -------------------------------------------------------- Codec: Generic 11c1 ID 1040 Address: 1 Vendor Id: 0x11c11040 Subsystem Id: 0x11790001 Revision Id: 0x100200 Modem Function Group: 0x1 The audio card hosts a softmodem chip: 0x11c11040 If not a Conexant modem, the driver agrmodem+agrserial+patched_snd-hda-intel with its dependent drivers: ---------- provide audio + modem support with the modem chip residing on the subsystem. Any particular card can host any one of several soft modem chips. === Finished firmware and bootup diagnostics, next deducing cogent software. === Predictive diagnostics for card in bus 00:1b.0: Modem chipset detected on NAME="Audio device: Intel Corporation 82801H " CLASS=0403 PCIDEV=8086:284b SUBSYS=1179:ff00 IRQ=22 HDA=8086:284b SOFT=8086:284b.HDA CHIP=0x11c11040 IDENT=11c11040 Driver=agrmodem+agrserial+patched_snd-hda-intel For candidate modem in: 00:1b.0 0403 Audio device: Intel Corporation 82801H Primary device ID: 8086:284b Subsystem PCI_id 1179:ff00 Softmodem codec or chipset from diagnostics: 0x11c11040 from Archives: The HDA card softmodem chip is 0x11c11040 Support type needed or chipset: 11c11040 ----------------end Softmodem section -------------- Writing DOCs/Intel.txt 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 011c11040 AGRSM hosted on High Definition Audio cards 062(1-3) none SV92PP,Pinball soft modem, in some HP desktop PCs martian - At http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/martian/ AGRSM - At http://linmodems.technion.ac.il/packages/ltmodem/11c11040/ Compiling resources for a driver module pair: agrmodem.ko + agrserial.ko Use the agrsm-HDA-20080721-ALSA15.tar.bz2 or agrsm-HDA-20080721.tar.bz2 Read the agrsm_howto.txt. For 11c11040 chips, also the HOWTO-Agere-11c11040-HDA.html -------------- 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.2.3 and the compiler used in kernel assembly: 4.2.3 Minimal compiling resources appear complete: make utility - /usr/bin/make Compiler version 4.2 linuc_headers base folder /lib/modules/2.6.24-19-generic/build However some compilations and executable functions may need additional files, in the FileNames.h (so called kernel "h"eaders) collection installed in /usr/include/ . For martian_modem, additional required packages are needed. The also required headers of package libc6 are commonly installed by default. Compiling hsfmodem drivers does require linux-libc-dev and libc6-dev packages, for kernels 2.6.24 and later versions. In not included on your install CD, search for them at http://packages.ubuntu.com or comparable Repository for other Linux distros. When compiling ALSA drivers, the utility "patch" will also be needed. If a driver compilation fails, with message including some lack of some FileName.h (stdio.h for example), then Some additional kernel-header files need installation to /usr/include. The minimal additional packages are libc6-dev and any of its dependents, under Ubuntu linux-libc-dev If an alternate ethernet connection is available, $ apt-get update $ apt-get -s install linux-kernel-devel will install needed packages. For Debian/Ubuntu related distributions, run the following command to display the needed package list: Otherwise packages have to be found through http://packages.ubuntu.com Once downloaded and transferred into a Linux partition, they can be installed alltogether with: $ sudo dpkg -i *.deb Checking pppd properties: -rwsr-xr-- 1 root dip 269256 2007-10-04 15:57 /usr/sbin/pppd In case of an "error 17" "serial loopback" problem, see: http://linmodems.technion.ac.il/linmodems/archive-sixth/msg02637.html To enable dialout without Root permission do: $ su - root (not for Ubuntu) sudo chmod a+x /usr/sbin/pppd or under Ubuntu related Linuxes sudo chmod a+x /usr/sbin/pppd Checking settings of: /etc/ppp/options asyncmap 0 noauth crtscts lock hide-password modem proxyarp lcp-echo-interval 30 lcp-echo-failure 4 noipx 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 Read Modem/DOCs/YourSystem.txt concerning other COMM channels: eth0 Which can interfere with Browser naviagation. Don't worry about the following, it is for 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-modem:# Uncomment these entries in order to blacklist unwanted modem drivers /etc/modprobe.d/blacklist-modem:# blacklist snd-atiixp-modem /etc/modprobe.d/blacklist-modem:# blacklist snd-via82xx-modem /etc/modprobe.d/alsa-base:options snd-atiixp-modem index=-2 /etc/modprobe.d/alsa-base:options snd-via82xx-modem index=-2 Within any ancient /etc/devfs files: Within ancient kernel 2.4.n /etc/module.conf files: --------- end modem support lines --------
CLASS=0403 NAME="Audio device: Intel Corporation 82801H " PCIDEV=8086:284b SUBSYS=1179:ff00 IRQ=22 HDA=8086:284b SOFT=8086:284b.HDA CodecDiagnosed= slamrTest= CHIP=0x11c11040 CodecClass= IDENT=11c11040 SLMODEMD_DEVICE= OPTS= Driver=agrmodem+agrserial+patched_snd-hda-intel DRIVER=agrmodem+agrserial+patched_snd_hda_intel
======================================================= COMPILING DRIVERS, for Linux Newbies Within the workshop there is an instruction set, the Makefile, and a few tools. You command: make clean An elf named "make" comes in, reads Makefile and then cleans up any debris of previous efforts. Do ALWAYS command "make clean" as a first step before new driver compilations. The major work of compiling drivers and any associated tools is commanded with: make or perhaps make DriverName There only remains to command installation of the modem driver(s) and tools with: make install Configuration of a dialout utility is done elsewhere, and you can access the Internet. It is really that simple, once the workshop with tools has been prepared. But new drivers have to be compiled with every operaing system update. The remainder of this text is thus aids you in the preparations, dealing with a variety of special cases. Most points are covered in much more detail in the Linux Kernel-HOWTO, likely included among the HOWTO documentation set installed within /usr/share/doc/ folders. The core operating system of a PC is comprised of a motherboard, the software kernel, and its auxilliary code modules. The kernel is the file /boot/vmlinuz-2.6.24-19-generic. Modules located in subfolders of /lib/modules/2.6.24-19-generic/ . They can be inserted into or removed from the acting kernel upon demand. This provides adaptablity to the diverse hardware components of PCs and changing requirments. Modem drivers are one type of module. As contrasted to most Linux software, modem driver codes have some non-public code components. That is the drivers are not fully Open Source, to protect Intellectual Property of the providing companies. This has a consequence that many Linux distributions will not or cannot legally supply proprietary modem drivers. Rather the Users must get the modem code package and direct compiling of the code and driver installation. A complementary resource for compiling is a family of FileNames.h, collectively called kernel-headers. They are both code bits themselves and also call for other code bits their functioning depends on. Depending on the Linux distribution, kernel-headers may not be automatically installed. If not they will always be made available on installation media or some Linux repository. They can be searched for by package names including: kernel-source, linux-source, kernel-headers and 44 There are always some kernel-headers in afolder /usr/include/. But these are an INCOMPLETE, too small collection and DO NOT suffice for compiling processes. In addition some software utilities may have to be installed. The instructions for compiling are read by make. A set of compiler tools are installed as a gcc-SomeVersion package. After compiling, the various pieces and linked dynamically together with "ld". Together wiith some simpler software tools, the ld will already be installed on Linux systems. Systems using the Debian style maintanence system additionally require a package "kernel-kbuild-3.n" to properly utilize kernel-headers or 2.6.n kernels. The "kernel-headers" are matched with an installed kernel, or must be generated from a kernel-source package. These are provided in different ways by the various Linux distributions, under 2.6.n kernels: Redhat and Fedora - installation is coincident with kernel installation, with placement of the kernel-header base folder in /lib/modules/2.6.24-19-generic/build/ Mandrake and SuSE/Novell - installation as part of a kernel-source or linux-source packages, with location at /usr/src/kernel-headers-2.6.24-19-generic or /usr/src/linux-2.6.24-19-generic Debian and distros using its Package.deb format have names: kernel-headers-2.6.24-19-generic linux-headers-2.6.24-19-generic for Ubuntu and installation is into /usr/src/ for Xandros, there is a xandros-kernel-source-version.deb which has to be installed Unpack if necessary with # cd /usr/src/ # ls # tar jxf xandros-kernel-source-version.tar.bz2 see http://support.xandros.com/kb-view.php?topic=64 for details but for 2.6.n kernels, the step after: # make EXTRAVERSION=-x1 oldconfig should be # make EXTRAVERSION=-x1 bzImage Others - ??? For the prior generation of 2.4.n kernels, there are special cases. Skip this if your kernel is a 2.6.n or a Debian type. For RPM using distros, the kernel-source-2.6.24-19-generic or linux-source-2.6.24-19-generic packages must be installed and configured as described below: 1) SuSE with KernelVersion 2.4.21-144-* or later - install the matching kernel-source package, which does also contain the kernel-headers; 2) for Fedora II or later, kernel-headers are/were coinstalled with the kernel package; 3) for all other cases of 2.4.n kernels, the kernel-headers must be prepared from kernel-source. The preparation can be summarised in a few steps/actions: Install a kernel-source package representing your kernel. Change directory (cd) into its base folder. The kernel-source in general will match only one of several kernels that could have been installed and NOT necessarily yours. Thus clean out any remnants of earlier usages with: make mrproper Copy in your kernel configuration file and have it read with: make oldconfig If necessary edit ONLY the fourth line of the Makefile, which completes the specification of where drivers will be installed to (details below). The kernel-headers are then assembelled by either: a) for 2.4.nn kernels by make dep b) for 2.6.n kernels, make bzImage which includes an integral "make dep" step. Modem related resources may or may not have been installed during the primary Linux installation, as WinModem hardware is often NOT recognized. Search your Distro's package descriptions for "modem" to reveal the status of related resources. Read the package description to determine whether pre-compiled modem drivers were provided. RESOURCES of a few types are needed to get on line. Do PREFERABLE use your System's package maintenance system for the installation. This should guarantee that any DEPENDENT packages will be called into the installation process. As a preliminary 1) Install your distributions package providing the KPPP, WVDIAL and MINICOM dialer utilities. Dependencies within such packages will also drive the unpacking of ppp related modules from compressed to a functional form : module.o.gz --> modules.o or for 2.6.n kernels module.ko.gz --> module.ko In addition these dialers will later aid testing and configuration, which is to be performed only AFTER, the modem's drivers are installed. 2) Download if necessary and modem driver package specific to your modem hardware. 3a) Install if necessary your distrbution's kernel-source package, necessary for preparing kernel-headers under 2.4.n kernels Or for Debian style distributions, 3b) install the kernel-header-2.6.24-19-generic.deb package matching your kernel version 2.6.24-19-generic. A KERNEL-SOURCE package must be installed, if a full kernel-header set is not otherwise provided. Kernel-source packages are now some 30-40 MB now even in compressed form. The package provided by your Linux Distro SHOULD preferentially be used. It will usually have some differences from that initially released at http://www.kernel.org . Typically the installation process will set two symbolic links: /lib/modules/2.6.24-19-generic/build --> PATH_to/kernel-source-version/ /usr/src/linux --> PATH_to/kernel-source-version/ These later enable access to the kernel-headers needed during the modem driver compiling. Check with: ls -l /lib/modules/2.6.24-19-generic/build ls -l /usr/src/linux The former link is more usefull for Systems with alternative boot kernels, and is mandatory for some modem compiler packages. HIGHLY IMPORTANT: the kernel-source as installed in generally does NOT represent your current kernel version, EVEN if the kernel-version is the same. Only one of several possible kernels was installed on your System, and the unpacked kernel-source need NOT represent it exactly!!! For example, in the RedHat Distro there is a set of kernel-configuration files within /usr/src/linux/configs/ Each is specialized for a different CPU (i586, i686, K6, etc), Yet each will be represented by the VERY SAME version name: "uname -r" . !!!! Thus a PROPER CONFIGURATION MUST BE DONE by You, before compiling drivers !!!! Examples provided below are partially customized from your System settings. CONFIGURATION is started by moving into the kernel-source folder with one of: cd /lib/modules/2.6.24-19-generic/build cd /usr/src/linux There is a Makefile on your System at: /lib/modules/2.6.24-19-generic/build/Makefile with first few lines: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 24 EXTRAVERSION = .3 NAME = Err Metey! A Heury Beelge-a Ret! # *DOCUMENTATION* For your current kernel, the fourth line should be EXTRAVERSION = where has been read from your current kernel version: 2.6.24-19-generic. But it this does not match what is Actually in the Makefile, then it represents a Different kernel-header set then that of your kernel!!! For Mandrake Linux their will generally be an included "mdk", such as: EXTRAVERSION = -3.1mdk SuSE 9.0 had: EXTRAVERSION = -99-default The first four makefile lines specify that: a) the compiled kernel modules/drivers will have encoded version labels such as: 2.4.21-3.1mkd OR 2.4.21-99-default b) such modules including modem drivers are installed into sub-folders of /lib/modules/2.4.21-3.1mkd/ /lib/modules/2.4.21-99-default/ The major points are that compiled drivers must be both kernel-release (the 2.4.21) AND EXTRAVERSION matched with the installed kernel. Otherwise they may be installed uselessly and not be detected by the kernel OR there will be a failure upon attempted insertion, with message including: a list of "unresolved symbols ". Kernel-headers may be resident from a prior usage of the kernel-source/. Check with: ls include/linux/ which may display abundant FileNames.h The version of these headers will be in the UTS line displayed by cat include/linux/version.h #define UTS_RELEASE "2.4.21-3.1mdk" (as an example) Next, list completely the contents of the kernel-source with: ls -a Where the " -a " additionally reveals ".dot-prefixed-confguration-files" such as .config .hdepend .depends which may be left over from the prior usage of the kernel-source. Below is an example: ------------------- .config .hdepend .depends COPYING Makefile Rules.make init mm CREDITS README arch drivers ipc net Documentation conf.vars fs kernel scripts MAINTAINERS REPORTING-BUGS crypto include lib Configuration of the kernel-source is where almost all the Mistakes occur!!! Here is a way to do it correctly (but read through EXCEPTIONAL CASES below). 1)Within kernel-source/ folder, browse the README file for general guidance. It will relate that the command: # make mrproper cleans up leftovers from any previous usage .dot-files and the include/linux/ folder. Additionally you may need to do an edit within Makefile, but ONLY that 4th line. 2) If necessary to edit, FIRST make a backup: cp Makefile Makefile.backup then edit ONLY the 4th line of Makefile to match the EXTRAVERSION of 2.6.24-19-generic EXTRAVERSION = - NEVER change anything else within the Makefile. 3) Set the dependencies of the current kernel. For SuSE 9.0 and later, there is a command which does the following steps # make cloneconfig && make dep Also browse the excellent README.SuSE in the kernel-source/ folder For other Distros, the following steps are necessary, within the kernel-source/ folder copy the kernel-config file to .config and DO SPECIFY that " . " But where is it? For many Distros, it will be the file like /boot/config-2.6.24-19-generic matching the output of: uname -r Or it may be the target of a symbolic link: /boot/config --> So cp /boot/config-2.6.24-19-generic .config For SuSE 8.0 and earlier versions it is: cp /boot/vmlinuz.config .config PLEASE do not omit that "." in .config as it is crucially necessary. View .config with a text browser. It is simply a listing of the code components used in the kernel and its modules: # # Automatically generated make config: don't edit # CONFIG_X86=y # CONFIG_SBUS is not set CONFIG_UID16=y etc. 4) The .config file will be read during # make oldconfig which feeds its specifications through a process specifying the SAME inter-dependencies previously used in compiling your kernel, and may generate additional .dot-config files . They can be displayed with: # ls -al 5) Though it may be redundant after "make mrproper", it will do no harm to: make clean 5a) For the SuSe Linux versions 8.0 and previous , there will exist files: /boot/vmlinuz.autoconf.h /boot/vmlinuz.version.h They MUST be copied as: cp /boot/vmlinuz.autoconf.h /usr/src/linux/include/linux/autoconf.h cp /boot/vmlinuz.version.h /usr/src/linux/include/linux/version.h 6) Now build kernel-headers with: make dep for 2.4.n kernels or for 2.6.n kernels make bzImage during which you can walk your dog, take a shower, have tea, etc. 7) Check for resultant FileNames.h with: ls include/linux/ and cat include/linux/version.h to verify the version. COMPILING the MODEM DRIVERS can now finally be done. Unpack the compiler kit for your modem drivers, cd into its folder, read any README or INSTALL files, make clean FINALLY, your modem drivers will compiled by a command like make OR make ModuleName or perhaps make all During this process, some of the kernel-header code with be joined with the supplied modem specific code, and ModemDrivers.o will be produced. Follow and further instructions in the modem code resource to install the drivers, often with: make install THEORETICAL ISSUES WinModem driver packages commonly include: 1) a readible Open Source component, which can be readily debugged by experts in code. This component provides "wrappers" to common kernel functions for an already complied, or BINARY format, component of the modem code. 2) A Closed Source component compiled into the binary form, in which proprietary information is encrypted. This will include the copyrighted Vn.nn compression algorithms. In 2004, pre-compiled modem drivers are beginning to be included for a few winmodems by some Linux distributions. But the binary format precludes incorporation of the modem drivers in some Linux distributions for legal reasons, practical reasons, and/or reasons of principle. Since almost all the newer PCs are now equipped with WinModems, many users will have to compile their own linux modem drivers. Exceptions are the more expensive modems with Controller chipsets, characteristic of the earliest modems. They are supported by Open Source serial code included in Linux distributions (Distros hereafter). Winmodems are less expensive because of greatly reduced hardware costs. They lack Controller chips of the earliest modems, and may additionally lack Digital Signal Processor (DSP) chips of second generation modems. Functions of Controller based chipsets are replaced by a combination of software code and/or other System hardware. Modems without a controller chip are referred to as "controllerless modems" and modems lacking both a DSP and controller chips are referred to as "soft modems". With faster central processor units (CPU), some processing tasks are performed by the CPU for the controllerless modems. The CPU does nearly all the signal processing for the "soft modems" lacking a DSP. AC97 or MC97 soft modems conform to an ac97_codec, and can host a variety of Subsystems It is the CODEC of the Subsystem which determines which software should be utilized!! and any modem controllers can host one of a variety of soft modem Subsystems. There are additionally soft PCI modems without such controllers, which still utilize the common ac97_modem.o driver. In general it will be YOUR task to identify the Subsystem codec and compile the needed driver. ## end Modem/DOCs/DriverCompiling.txt
Modem Type Readout and Supporting Software Identification. ------------------------------------------------------- Most add on cards to motherboards (including modems) adhere to a PCI standard, for which there is firmware on the card which can be readout, providing setup parameters and specification of the required software. This works under Linux provided that drivers are resident. Herein is the practical problem. During the evolution of modems, some of the complementing software components became Proprietary and Closed Source. A consequence is that for reasons of Legality and/or Principle, many Linux distributions do not distribute such modem drivers with the regular releases, even when the modem chipset designer does provide Linux support code. Without the drivers, additional assistance is needed to identify the modem chipset and its complementing software. The scanModem script includes four routines to determine the software required: 1) Readouts with a lspci tool accessing firmware on PCI cards. 2) A test using modem drivers already on your system as part of the ALSA (Advanced Linux Sound Architecture) software package. See DOCs/Smartlink.txt for details. 3) Comparison of Primary+Subsystem PCI IDs with others historically gathered, and then archived within scanModem. 4) A test requiring the SmartLink slamr.ko driver. See DOCs/Smartlink.txt for details. Should these not be adequate, there are directions below for doing diagnostics during an alernate Microsoft Windows bootup. Stop here on a first reading, and just run ./scanModem Read on later if you are interested in details, OR need instructions for doing modem diagnostics under Microsoft. Using MicroSoft(MS) Windows: ----------------------------- MS installations do generally have adequate diagostic capability. Try the following routine 1), beginning with mouse clicks on: 1) Start > Settings > Control Panel > Classical View (for Window XP) > System > Hardware > Device Manager > Modems > Click on the + > Modem. Double click to expand the graphic. Manufacturer information may be displayed. For example, CXT stands for Conexant. Click the Diagnostics Tab. Record any hardware ID or vendor and device information. Next do the Query Modem and record the ATI specifications displayed such as: ATI3 - Agere SoftModem Version 2.1.22 ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27 Try to identify the modem setup file, with name perhaps MODEM.INF. 2) Open a COMM console. Send ATI commands to the modem (ATI, ATI1, ATI2, etc) which may elicit chipset and driver information. Here is an example: ATI3 - Agere SoftModem Version 2.1.22 ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27 successfully identifying an Agere SoftModem chipset, both by name and through the softmodem SIL ID: AC97 ID:SIL REV:0x27 The IBM mwave modem: This has a DSP chip usually seated on the motherboard. Not carried on a PCI card it cannot be detected by scanModem. However, the mwave driver is included in 2.6.n kernel releases. So try: # modprobe mwave Either the module will load or the absence of the modem will be indicated by: FATAL: Error inserting mwave (/lib/modules/2.6.10-1- 686/kernel/drivers/char/mwave/mwave.ko): Input/output error See http://www.linuxdocs.org/HOWTOs/mini/ACP-Modem/ for details on this modem. Modem evolution: ---------------- Here is a very abbreviated history on how modem evolutionary development. The earliest modems (MOdulate and DEModulate signals for phone lines transmission) managed all signal proceesing on the modem card through actions of expensive Controllers chipsets with DSP (digital signal processing) capability. Copyrighted Vn.nm compression routines were also encoded in the chipset. Under Linux, an Open Source serial driver was the minimal complementing software. This generation of Controller chipset modems placed minimal burden on the early slow central processing unips (CPU) of personal computers, such as the Intel 386. As CPUs became faster, it was feasible to transfer some modem functions to the CPU. A 2nd generation of modems retained a DSP chip, but Controller functions were software driven on the CPU. A benefit was that modem hardware became cheaper. But sadly the supporting software was Proprietary. Worst, some Intellectual Property components were Closed Source to protect large investment in code development. Such Controller free modems include the Conexant HCF, Intel-537EP and Mars chipset modems from Lucent or its later subsidary, Agere Systems Inc. As CPUs became even faster, even DSP functions could be software code driven on the CPU. This third generation of modems are commonly called "softmodems". Their complementing software is comparable in sizeto that of the Linux kernel itself. The residual "modem chip" is very cheap, but the development of the complementing software is a large investment on the part of the chip designer/maker. Modem chipset determination under Linux: --------------------------------------- The chipset of a modem determines which complementing software is required. The Manufacturer and Model of an assembled modem are often inadequate to identify the chipset. But sometimes there is an easy chipset identification. There is a "lspci" utility provided in the Linux pciutils package. It reports the PCI identifiers (IDs hereafter) or the Primary card, its Subsystem, and some setup parameters written in firmware. For example, there is a softmodem in the PCI bus of address 00:11.6 on my laptop. Shown below is firmware information acquired by two lspci commands: $ lspci -s 00:11.6 00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem Controller $ lspci -s 00:11.6 -nv 00:11.6 0780: 1106:3068 (rev 80) Subsystem: 14ff:100b Flags: medium devsel, IRQ 193 I/O ports at e000 [size=256] The translation is: The card inserted into PCI bus slot 00:11.6 is named "Communication controller: VIA Technologies, Inc. AC'97 Modem Controller". The modem was assembled by a Vendor with ID identification code 1106 . Among 1106's products, it has a Device ID of 3068 in its 80th revison. This usually provides adequate information, to get software from the Vendor designated by 1106 (VIA Technologies, Inc. in this case) for their device designation 3068. The parameters Flags: medium devsel, IRQ 193 I/O ports at e000 [size=256] are determining by the environment of the host computer as reading modem firmware. It may change if other hardware is added/removed from the host computer, or under a change or Operating System (OS) kernel. The problem for softmodems is that additional information is needed for the software specification. The Subsystem Vendor_ID identifies only the assembler company. But the modem chip housed in the Subsystem could be of a variety of types, each requiring different support software. In general, a single Subsystem assembler could use a variety of different softmodem chips. The Subsystem firwmare information on the chipset is not accessible to lspci. Rather it requires usage of a modem driver, if one first had some competent modem driver for minimal diagnostics. Fortunately there are the software tools and drivers of the ALSA (Advanced Linux Sound Architecture) suite. This includes modem drivers lacking COMM proficiency by themselves, but enough capability to readout the Subsystem firmware. For the VIA modem above, the encoded modem codec is SIL22, reporting that the softmodem chip was made by SmartLink Inc. It is important to emphasis, that AC'97 Modem Controllers are made by a variety of companies, and each may house many different Subsystem modem chips. There is an Archive within scanModem of those with previously identified codecs. For example, the table for the 1106:3068 AC'97 Controller is: codec SubSystems_with_codec ------------> CXT 104d:8143 104d:80f6 1025:0030 SIL27 1102:0033 1025:0046 1025:0033 1734:1078 1509:2870 1025:0046 SIL22 1743:1032 10cf:118e 1734:1054 1462:309e 1631:e004 1543:4c22 161f:2032 and_more SIL21 10cf:118e 13bd:1022 1543:4c21 1071:8375 1019:0c04 1458:1543 1019:b320 MOT66 1734:109b Because of hardware configuration issues, the ALSA tools may initially fail. Then this Archive is a fall back reporting the codec, and therefrom the needed software. For reasons obscure, a single Subsystem ID may have different codecs under different Primary controllers. Thus the pair Primary+Subsystem IDs must BOTH be retained to record the codec. In addition to the Modem Controllers adhering to the AC'97 specifications, softmodem Subsystems may be hosted by High Definition Audio (HDA) cards such as the: 8086:2668 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller These lack a softmodem codec. Instead the softmodem chip information acquired with ALSA tools is within a folder: /proc/asound/card0/codec*#1/ and includes the Vendor ID of the softmodem chip, such as 14f1 corresponding to Conexant. The software support: --------------------- The CXT designation above is an abbreviation of CXT_some_number, for Conexant HSF softmodem codecs. These now number some 41 (perhaps more) CXT. Fortunately, all these codecs are supported by a single hsfmodem software package provided through http://www.Linuxant.com The trial package is free, but locked to speeds of 14,400 K. A software key must be purchased to enable full speed support, with future software updates free. There is NO freeware alternative for the hsfmodem software. But Linuxant does provide pre-compiled drivers for the more common Linux kernels, and their support services are good. In the Table below, there are currently some 13 other softmodem codecs. Fortunately all are supported by a combination of the ALSA modem drivers, the ALSA audio drivers the modem drivers depend on, and a very smart helper utility from Smartlink Inc., the slmodemd helper. Sasha Kharposky wrote the Linux slmodemd utility and remains its volunteer maintainer. It provides the cleverness to interface between the low level ALSA modem driver and the pppd package communications codes. For details do: $ slmodemd --help and read associated documentation. The slmodemd is provided with some Linux distributions, and can also be downloaded in SLMODEMD packages from: http://linmodems.technion.ac.il/packages/smartlink/ Subsystems of AC'97 Modem Controllers --------------------------------------- Subsystems for softmodems are primarily made by Silicon Labs (SIL) under contract to companies like Intel, Agere Systems, Motorola etc. In the Table below, ChipMadeBy does NOT imply software support directly from that manufacturer. The chart of information below is largely harvested from messages to discuss@xxxxxxxxxxxxxx A codec_indent such as REV:0x27 is reported by diagnostics under Microsoft, as illustrated above. The matching designations such as SIL27 are translations under Linux, which are output by a diagnostic of the slamr.ko driver from the SmartLink slmodem software. SIL is an abbreviation for Silicon Laboratories Inc., which provides Subsystems on order to many modem assemblers. SML is used below as abbreviation for SmartLink Inc. with official driver resources at http://www.smlink.com/main/index1.php?ln=en&main_id=40 . BUT use updated resources at http://linmodems.technion.ac.il/packages/smartlink/. ALSA+SML means use an ALSA modem driver plus the Smartlink slmodemd helper, with the particular driver depending on the AC'97 or HDA host controller. ID was originally a hexadecimal readout from 7c and 7e registers of the SubSystem, but are translated into "english", as done automatically by the slamr driver. ID chip_maker driver/helper sources ---------------- ---------------------- CXTnm Conexant hsfmodem package from http://www.linuxant.com with several hsf* drivers. nm - a number SIL25 Intel ALSA+SML or INTEL-537EP supported AA variant INT65 Intel ALSA+SML or INTEL-537EP supported EA variant SIL26 SML SML, slamr driver plus slmodemd SIL27 AgereSystems ALSA+SML SIL2f " ALSA+SML MOT66 " ALSA+SML AGR01 " ALSA+SML AGR02 " ALSA+SML SIL21 PCTel ALSA+SML SIL23 PCTel ALSA+SML SIL22 SML ALSA+SML SIL24 Broadcom ALSA+SML BCM64 Broadcom ALSA+SML, under Intel ICH family, AC'97 controllers. ---------------------------------------------- Subsystems with the above characteristics could reside under any of the primary softmodem controllers listed below. Ignore the stuff after the > . It serves during parsing of the Table by scan modem Primary PCI_IDs Name Possible support by: --------------- ----------------------------- ------------------------- 8086:2416 82801AA ICHAA AC97 Modem Controller> + A a p c . 8086:2426 82801AB ICHAB AC97 Modem Controller> + A a . 8086:7186 > c . 8086:7196 82440MX Banister AC97 Modem Controller > + A a c . 8086:2446 82801BA/BAM ICH2 AC97 Modem Controller > + A a p c . 8086:2486 82801CA/CAM ICH3 AC97 Modem Controller > + A a p c i . 8086:24c6 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)1DB ICH4 AC97 Modem Controller> + A a c i b . 8086:25a7 6300ESB AC97 Modem Controller NEW > 8086:24d6 82801EB/ER ICH5/ICH5SR AC97 Modem Controller> + A c i . 8086:8280 1EB ICH6 AC97 Modem Controller> + A c . 8086:2668 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller> H c . 8086:266d Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC97 Modem Controller > 8086:2669 631xESB/632xESB AC97 Modem Controller NEW > 8086:27d8 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller HDA > . 8086:27dd (ICH7 Family) AC97 Modem Controller NEW > 8086:xxxx types above are from Intel> 1039:7013 SIS 630 > + a p c i . 1039:7018 SIS 960 > + i . 10de:01c1 Nvidia Corp > + i . 10de:00d9 Nvidia Corp > A c . 1106:3068 VIA > + a p c i . 1022:7446 AMD AC_LINK > + . 10b9:5450 ALI 5450 > 10b9:5451 ALI 5451 > + a c . 10b9:5453 ALI 5453 AC-Link > p c . 1025:5453 ALI 5453 AC-Link > c . 10b9:5457 ALI 5457 AC-Link > + p c i . 1025:5457 ALI 5457 AC-Link > c . . 1002:434d ATI > T a c i . 1002:437b ATI Audio device: ATI Technologies Inc SB450 HDA Audio a . 1002:4378 ATI > c . 1543:3052 SI3052 > Class 0403, High Definition Audio Controllers (HDA) ----------------------------------------------------- 8086:2668 Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) HDA Controller 8086:27d8 Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller 1002:437b Audio device: ATI Technologies Inc SB450 HDA Audio (rev 01) 10de:026c nVidia Corporation MCP51 High Definition Audio ---------------------------------------------------- are the members of this family encountered as of September 2006. >From the file /proc/asound/card0/codec*#1/, there are the following Subsystem chips: Vendor IDs Chip maker Support type ---------- ---------- ------------- 0x14f12bfa Conexant hsfmodem , not slmodemd compatible 0x14f12c06 0x11c13026 AgereSystems snd-hda-intel, slmodemd 0x11c11040 " not supported into 2008 0x163c3055 Smartlink snd-hda-intel, slmodemd 0x163c3155 " " " 0x10573055 Motorola " " 0x10573155 " " "