Aaron's PCI Modem comments

From FreekiWiki
Revision as of 07:47, 3 September 2005 by MichaelWestwind (talk | contribs)
Jump to navigation Jump to search

Summary: After my LPI exam, I wandered into Build and found a box o' mixed PCI modems. Sorted them into yes/no/maybe piles and then looked up the maybes at http://start.at/modem and finally put 'em all back where I found 'em. I've got my numbers, I don't care what ya do with 'em.

The gory details:

My sorting procedure was:

  • Conexant, NEC or Rockwell chips: No-pile (~30 modems)
  • PCTel chip: Yes-pile (14 modems)
  • Lucent 1646T00 chip: Yes-pile (17 modems)
  • Everything else: Maybe-pile (17 modems)

The maybe-pile had several types of chips. Further sorting netted:

2 USRobotics Model 0778 hardware modems
1 Actiontec Lucent-based hardware modem
3 Lucent HV90P-T-based winmodem (uses LTModem drivers)
1 Agere 1648C-based winmodem (uses LTModem drivers)
1 Ambient MD5628-based winmodem (old drivers available)
1 ESS-based winmodem (might work on Linux)
5 weird old Intel Lucent/AT&T-based 28.8k winmodems
2 3Com AD1806-based winmodems
1 Intel HomePNA 1Mbps network adapter

OK, so what do we do with these buggers?

The hardware modems are nice, I hear you just use setserial to configure them. But there's precious few coming in. Some day, when there's free internet everywhere (for instance, HUD is sponsoring free wired and wireless 'net in public housing projects) we'll be able to use external and PCI hardware modems to take care of the rare few who still need dialup. But 3 per ~70 won't be enough for now.

Well, supporting the Lucent chips is easy. There's recent packages for Debian Sarge at http://www.heby.de/ltmodem and you can just add

deb http://www.physcip.uni-stuttgart.de/heby/ltmodem/dists/debian/ ./

to your /etc/apt/sources.list to get 'em. I used the LTModem drivers a few years ago and they worked OK.

PCTel modems are plentiful and really easy to sort out. They always have just one chip, and it says "PCTel" in big letters. And there are drivers at http://linmodems.technion.ac.il/pctel-linux/welcome.html But I don't know how well the driver works on current Linux kernels, and we'd have to package them ourselves. Actually, we'd want to get someone outside of the US to package them, since there may be copyright issues.

The Ambient and ESS modems have the same driver issues as the PCTel, and there were only one of each, which makes 'em not worth the effort.

The rest were not usable on Linux.

So what I've done for now is put the LTModems, HW modems and PCTel modems in a shallow box on top of the box of unusable modems in the Build area. I'm not claiming 'dibs' on them, so whoever put them in Build is welcome to do whatever they were gonna do. I just wanted to survey the population.

If we decided to start using internal PCI modems, I'd propose a sorting procedure of picking through PCI modems and looking for Lucent 1646T00 or HV90P chips and some specific 3Com/USRobotics model numbers and sending the rest to the store or to recycling. Yes, we'd miss some usable stuff, but I think we'd get enough. Sorting thoroughly would take a *lot* more time with very little gain.

Some follow-up by Jeff Trull

At Dave's suggestion I did some further investigation of SW support for these modems.

Lucent follow-up

Moving on to the ltmodem package, it looks like pre-compiled versions only exist for 2.4 kernels, with the exception of ltmodem-2.6.8-1-686, which doesn't match ours (2.6.8-2-386). Instead I built a new debian package using their source tarball, available here:

http://www.sfu.ca/~cth/ltmodem/ltmodem-8.31a10.tar.gz

with the following steps:

rm /dev/modem    (this bit me because I was on the same system I tested the Conexant modem on)
apt-get install kernel-headers-2.6.8-2-386
tar xvzf ltmodem-8.31a10.tar.gz
cd ltmodem-8.31a10
./build_deb
dpkg -i ltmodem-2.6.8-2-386_8.31a10_i386.deb

I tested with kppp and it was happy.

Being able to build a .deb file out of this is nice. Seems like we could just build this package once and make it part of the distro.

PCTel follow-up

I found some source packages, but the stable version was most recently updated in November 2003 and gives a fatal error if you're not using a 2.4 kernel. In addition, there's this discouraging comment on ubuntuforums.org:

The pctel chipsets work with the 2.4 linux kernel, but not the newer 2.6 (Ubuntu) kernel. Pctel sold themselves to conexant and probably will not release any new drivers for linux.

Nevertheless I tried building the package by defeating the kernel version checks and fixing some other problems (location of modversions.h, which field to look at in the "lspci -n" output). It died during compile with some module management-related errors, which I suspect is related to changes in how kernel modules are defined and loaded between 2.4 and 2.6). I'm giving up for the time being but it seems like people who know about device drivers could possibly make the updates in the future.

Update: I worked with a few other people on the web who were interested in the 2.6 port and there's now a working driver for PCT789-based softmodems. Download here: http://linmodems.technion.ac.il/pctel-linux/pctel-0.9.7-9-rht-4.tar.gz

My plan is to make a .deb for this package so it can be distributed at FreeGeek.

Conexant follow-up

It does seem like the Conexant modems are supported, but the free (as in beer) method is restricted to 14.4 speed. Maybe the company doing the support (Linuxant) would be willing to make us a special deal. [Update: Tim the Modem Man says he talked to them and they want money plus some sort of endorsement, so we're unlikely to go for it].

If anyone is interested in following up on this, the following incantations made it work on a Freekbox (at 14.4):

(figure out which driver you need - HCF or HSF.  website has details. mine was HCF.)
(download hcfpcimodem_1.05full_i386.deb from linuxant.com website)
apt-get install kernel-headers-2.6.8-2-386
dpkg -i hcfpcimodem_1.05full_i386.deb
(respond to prompts.  they require an email address, but will give you a license "key" in return)

Here's what it gave me after all that:

License keys can be obtained from http://www.linuxant.com/
Without one, the modem operates in FREE mode (max 14.4Kbps data only, no fax)

The registration ID for modem unit 0 is: 57A8-53C1-2E5C

Please enter license key [FREE]:

Setting license for modem unit 0: "myname@email.com/FREE"

Current parameters: ("hcfpciconfig --info")

Config for modem unit 0: /dev/ttySHCF0
        Device instance: 0-PCI-14f1:1033-1092:0abe
        HW revision    : DP Part '74' Rev 'BA' Asic ID 0x85
        HW profile name: hcfpciv90
        Registration ID: 57A8-53C1-2E5C
        License owner  : myname@email.com
        License key    : FREE
        License status : FREE (max 14.4kbps data only)
        Current region : USA (T.35 code: 00B5)

The /dev/modem alias (symlink) points to /dev/ttySHCF0

To enable full 56K modem and FAX functionality, enter your license information
with "hcfpciconfig --license".

License owner and key data must EXACTLY match the information respectively
provided to and by Linuxant. Otherwise, license status will remain "FREE"!

I tested with kppp using the method we use during builds and it was happy.