Expanded Conexant HSF/HCF/DGC Modem Support for Puppy 4x

Post Reply
Message
Author
User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

Expanded Conexant HSF/HCF/DGC Modem Support for Puppy 4x

#1 Post by rerwin »

I have looked into the Conexant modem situation and have created some dotpets to help folks out. I separated the Puppy-specific parts from the Linuxant packages, so that any such package built according to the Linuxant instructions can be used in Puppy. I built dotpets of these for kernel 2.6.25.16. The Puppy part should also work with Barry's older-but-free HSF driver, if it gets created per the technique I used. I have sent Barry the details for his comment.

The Puppy part is in the attached dotpet: linuxantif-1.pet. It contains the "firmware" tarballs of the initialization scripts, as well as updated versions of scripts to probe and erase the dialup settings to include these modems. This dotpet should be used instead of Barry's hsfmodem...-3 dotpet.

You probably need only one of the "*modem" dotpets, depending on which type you have: HSF, HCF or DGC (USB). The HSF is a new version of the oem driver, which appears to support all of the modems supported by the "full" version. The HCF is the "full" version of the driver, which allows you to add a purchased license key to upgrade from 14.4 kbs max to the full capability of the driver (56 kbs and fax), using the Linuxant instructions. The DGC driver appears to be unrestricted.

Things to note:

1. I have verified that the HSF package works, in that I can use it to make dialup connections. I find that it requires a second reboot after installation before the modem is recognized. So don't be discouraged when the first reboot shows "No modem detected".

2. The HCF driver I have gotten to be detected/recognized, but Puppy cannot communicate with it. As my HCF modem is part of a Riptide sound card, I suspect that a Linuxant-patched version of the alsa driver is needed. I have not attempted to build that, in hopes that an expert can do that easily. The patch is version dependent and I do not know where puppy stands with its alsa version. Therefore, anyone who has an HCF modem not associated with the Riptide audio: please try this HCF dotpet and tell us of your experiences.

3. I cannot test the DGC driver because I do not have that hardware. So I depend on any of you with a DGC USB modem to report back your experience with the driver.

4. While working with my HSF modem, I found that if I also had a USB (slusb) modem plugged in, that modem would not function if I erased and rebooted with it plugged in. My goal has been to have USB modems take precedence over PCI modems in the same PC, but the HSF driver apparently won't let that happen. However, the HSF modem still works even with the USB modem plugged in. The cause may be that they share the same node number, which I plan to correct shortly.
ached one appears to handle a (very) few more modem IDs.

I hope this effort will resolve all the issues we can with the Conexant modems.
Richard

Updated 7/7/09 to substitute an up-to-date free version of the HSF driver.
Attachments
linuxantif-1.pet
For all Conexant modems. These are the initialization scripts that detect
the modems. This is kernel-independent.
(6.32 KiB) Downloaded 908 times
dgcmodem-1.10.pet
For DGC (USB) Conexant modems and kernel 2.6.25.16.
(32.78 KiB) Downloaded 811 times

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

Conexant/Linuxant Modem Support - Take 2

#2 Post by rerwin »

The attached package contains consolidated support for the DGC, HCF, and HSF Conexant dialup modems. The versions are the same as in the previous posting. The modems are detected quickly and appear as any other puppy-supported modem. The HSF and DGC (USB) types will run at their maximum speeds. But the HCF types max at 14.4 kbs, as implemented; a payment to Linuxant will activate the full HCF capability, although the low rate should handle minimal activity.

My implementation does not duplicate the drivers' function, but uses the Linuxant configuration script to start the modems. The script gets edited and then run during firmware extraction, to tailor its function to the needs of puppy. A structure is added to manage the initialization for the various modem types; it is controlled by the pupdial "erase" script, to accommodate changes in hardware configuration.

I have tested the newest HSF driver thoroughly. But testing is not totally complete, as I do not have a DGC modem or a standalone HCF modem. Mine is combined with the Riptide sound card; its driver apparently needs a patch, which I have not yet attempted to apply. So, although seen by the connect wizard, my HCF modem is not detected by pupdial when you click on the connect-wizard's "internet by dialup modem" button. I hope someone with either of those modem types can try this out and report your experience.

NOTE: Before you install this on Puppy 4.1.6 or later, be sure to delete the directory: /lib/modules/2.6.25.16/hsfmodem. The modules now go into /lib/modules/2.6.25.16/extra, so the duplication would confuse things. Also delete directory /etc/hsfmodem/, so the newer version can be installed cleanly.

How to maintain the linuxant package:
1. For new versions of the DGC, HCF or HSF (xxx) linuxant packages, download and expand the tarball, then inside the generated directory execute the commands: "make install" and "xxxconfig --kernel".

2. Create a directory for a new package tarball or dotpet, and subdirectories /lib/modules/(kernel)/extra. Copy the xxx... modules in the real /lib/modules/(kernel)/extra directory into the new-package counterpart directory. If the /usr/sbin xxx... scripts and /etc/xxxmodem/nvm directory have not changed nothing else is needed for the new package. Build the tarball/dotpet.

3. The scripts and nvm directory go into an existing firmware tarball, xxxmodem.tar.gz. Although the scripts are to be copied into the tarball's /usr/sbin folder, the /etc/xxxmodem/nvm directories require special treatment. To retain minimum size and maximum setup speed, do not copy that directory, but place it in its own nvm.tar.gz tarball. In the new-package directory, create a /tmp directory and copy the nvm.tar.gz tarball into it. The firmware pinstall script will extract the nvm directory directly into /etc/xxxmodem/, much faster than the normal copy of the directory -- copying seems to increase the destination directory size and would take many seconds (sometimes impacting modem initialization), so this method is most efficient.

I hope this will get added to the next puppy alpha/beta test release. But anyone can install this dotpet to try it for themselves.

Follow-on tasks:
1. Create a linuxant-patched riptide alsa driver for testing my HCF-Riptide PCI modems.

2. Obtain the new (June 2009) version of slmodem, and redesign its implementation in puppy, to blend with the new structure added for linuxant. All of these modems use dynamically assigned device "major numbers" (240-250), which the new structure addresses. The new slmodem release may support dynamic assignment. Currently the numbers are fixed and can disable other modems in this group (SL + Linuxant), if two take the same number.

3. Ensure the HCF option to upgrade the license to get full functionality is working.

4. Explore handling of "regions", which currently are ignored, as far as I can tell. I assume some parts of the world require this feature.

5. Determine whether any other modems should use the new structure for managing their modprobe.conf file updates, to prevent conflicts. (The structure uses "include" files for the linuxant modems.)

Any and all feedback on this package are welcomed, and TIA.
Richard

Post Reply