V2.01 SmartLink PCI support incomplete - how to fix it

Please post any bugs you have found
Post Reply
Message
Author
User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

V2.01 SmartLink PCI support incomplete - how to fix it

#1 Post by rerwin »

V2.01 contains two of the three main factors I found necessary to restore the function of SL PCI modems. The third is explained in a follow-up post on the Puppy2 forum: http://www.puppyos.com/nfphpbb/viewtopi ... =1533#1533. To avoid repetition, I will present here just my updates to the v2.01 versions of three components of the slmodem package, to get it working well. I have tested with both PCI and USB modems.

1. pinstall.sh: Insert the following statement between the two "echo alias" lines (since it applies to the first alias only):
echo "install slamr modprobe --ignore-install ungrab-winmodem ; modprobe --ignore-install slamr" >> /etc/modprobe.conf
This will cause slamr to always be loaded correctly during boot-up, unless modprobe.conf gets damaged.

2. /etc/rc.d/rc.network:
a. Insert the following statement between the two "echo alias" lines:
echo "install slamr modprobe --ignore-install ungrab-winmodem ; modprobe --ignore-install slamr" >> /etc/modprobe.conf
b. Move the "fi" preceding the "#v2.01 bug" line to immediately follow the "sleep 1" line. Then indent the modprobe and sleep lines, to reflect their inclusion under the "if". This will reload the modules only if modprobe.conf got changed to leave out the SL-specific lines; if the lines are there, the driver will always load correctly at boot-up.
c. Insert the following line before the the modprobe of ungrab-winmodem:
rmmod slamr #unload for ungrab, in case slamr misloaded as serial driver.
3. /usr/sbin/modem-wizard (case 21):
a. Delete the first two lines (lsmod & if) and the corresponding "fi" line. The test is no longer valid, since slamr would not be loaded if using a USB modem or might be mis-loaded as a serial driver.
b. Move the remaining lines up to but EXcluding "#need to choose country..." to follow the "else" that precedes "#start slmodemd...". This ensures that nothing is changed until the country and modem type are selected, so the user can reconsider before any change is made.
c. Insert the following line before the the modprobe of ungrab-winmodem:
rmmod slamr #unload for ungrab, in case slamr misloaded as serial driver.
d. (Unrelated) Reconcile a coding inconsistency in generating the slmodemd script. Although the code implies that the script is to contain two lines, the second line actually replaces the first. However, the script seems to work without the first line.

The remaining issue, for which I have only a workaround, is that if the PCI SL modem is actually used in a dialup call, a subsequent software reboot will hang while initializing the modem. EDIT: Actually, it hangs even without using a dialer. (End edit) The workaround is to instead select "Power-off computer" and then hardware-restart with either the power or reset button.

A note to those needing to fix v2.01 themselves: (edit)Entering the new line given for pinstal.sh, at the command line, once, (/edit) alone, should be enough to have the PCI modem work correctly after a reboot.

Performance note: With the complete fix, the SL driver can be installed, the modem wizard run to set up ttySL0, and then gkdial will connect successfully, all without a reboot!

Thanks again, Barry, for using my research efforts to get these PCI winmodems working in Puppy2. (BTW, the USB version does work in v2.01.)

Richard
Last edited by rerwin on Sun 02 Jul 2006, 20:54, edited 2 times in total.

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#2 Post by BarryK »

Thanks for that info.
Sorry I didn't get it quite right last time!

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

Solved in 2.01r1, but...

#3 Post by rerwin »

Barry,
I checked out the BareBones 2.01r1 version of SmartLink support of my PCI modem and found that it does work as expected, right from the CD. But I also checked the changes to rc.network and modem-wizard and found a comment issue and a code issue.

1. rc.network is perfect, except that your comment about moving the "if" is misleading. It is the "fi", the end of the if-group, that got moved down.

2. In modem-wizard, the code block that got moved to after an "else" should have been moved to follow the last "else". That way the user can also bail out from the PCI/USB choice (as well as the country choice) without causing any changes to be made.

I could not verify that the setup survived a reboot because after saving to a file, the saved-to partition was empty! (It had contained puppy 2.01.)

Richard
Enthusiastic Puppy fan
- Toshiba Equium 7100S, 400MHz, 256MB, 4GB, Puppy+Vector-std
- IBM Aptiva, 400MHz, 160MB, 4GB, Puppy (test lab)
- Toshiba Satellite 2535CDS, 300MHz, 64MB, 4GB, Puppy
- 1.8 GHz, 512MB, 40GB+100GB+320GB, WinXP+Puppy (DVD)

Post Reply