site  contact  subhomenews

4.1.2: modem and network bugfixes

December 03, 2008 — BarryK
Rerwin has posted this:

1. I found that the delay I contributed to make PupDial wait until a connection was terminated, before setting the connect/disconnect button states, is insufficient for my 2.4 GHZ P4 PC, which is much faster than my 1.8GHz Athlon 2200+ test PC. If I increase the sleep value from 0.3 to 0.5, the buttons get displayed correctly. So, I conclude that the official value should probably be 1 second (sleep 1) to anticipate even faster PCs. Change line 74 of pupdial from:
Code:
[ ! -f /etc/ppp/peers/wvdial ] && sleep 0.3 #v409 allow kill completion
to:
Code:
[ ! -f /etc/ppp/peers/wvdial ] && sleep 1 #v409 allow kill completion


Rerwin has posted this:

2. I found that my test PC with only IDE CF cards as drives would not retain the (eth0) network setting across reboots (also reported in another Bugs thread). My solution is to insert after line 118 of /etc/rc.d/rc.network:
Code:
sleep 1
EDIT 11/22/08: Further investigation shows that if the added "sleep 1" is inserted before line 575 (instead of 118), Puppy boots with the previous network setting. That provides an alternative to delaying for all of the remaining invocations of the "testInterface" function. I am unable to test those other invocations knowledgably.
/EDIT


...Dougal, take note of this. I have applied this, put the extra 'sleep 1' before line 575.

Rerwin has posted this:
EDIT 11/30/08:
5. The problem of undetected mwave, Intel and Agere modems has not yet been addressed in 4.1, but I have now created a compromise solution. Instead of automating detection of these modems, I provide user notification in the modemprobe dialog. If no modem is automatically detected but one of the subject modems is installed and its driver is not already loaded, the probe dialog will explain this in the "Autodetected modems" section. It instructs the user to add the named module in BootManager. I feel this approach is nonintrusive and gives the user the option whether to make the change. A dotpet and difference files are attached.

The /usr/sbin/modemprobe difference file:
Code:
28a29,45
> #v412 Check for any driver of a modem that is not detected automatically.
> MODEM_MAP='Intel536 8086:1040 #v2.17 this info not builtin to module
> Intel537 e159:0001 #v2.17 this info not builtin to module
> mwave 1014:007d #not in modinfo.
> agrserial 11c1:048c #v4.00 nothing in modinfo. Agere chip.
> agrserial 11c1:048f #v4.00 nothing in modinfo. Agere chip.
> '
> VENDEVS="`cat /proc/bus/usb/devices | grep '^P: ' | tr -s ' ' | tr '=' ' ' | cut -f 3,5 -d ' ' | tr ' ' ':'`"
> [ "$VENDEVS" != "" ] && VENDEVS="$VENDEVS
> "
> VENDEVS="$VENDEVS`lspci | cut -f 4 -d ' '`"
> MODULE="`echo "$MODEM_MAP" | grep -E "$VENDEVS" | head -n 1 | cut -f 1 -d ' '`"
> [ "$MODULE" != "" -a "`lsmod | grep -e "^$MODULE "`" != "" ] && MODULE=""
> if [ "$MODULE" != "" ];then
> MSGMDM1="HOWEVER, an undetected modem supported by driver module '$MODULE' appears to be installed (or plugged in). To use it, click on Menu > System > BootManager and add the new module, $MODULE."
> else
> #v412 end
29a47
> fi #v412

Since this fix substitutes for the modem PCI_OVERRIDES entries in /etc/rc.d/MODULESCONFIG, they can be deleted from that file. Also, the entry for yenta_socket can probably be deleted, if the revised PCMCIA/CardBus support loads yenta_socket independently of the general module-loading process. I would like feedback from someone using the "O2 Micro" CardBus controllers, to verify they work with 4.1.1+ -- the entry refers to only one of many such controllers and is not actually used in 4.1, anyway. These removals would leave the PCI_OVERRIDES variable to be set only as:
Code:
PCI_OVERRIDES='dmfe 0x00001282 0x00009102 #r_hughes reports tulip module not work.
'

One more thing: The "/usr/sbin/listdriver" script I contributed as a workaround for 4.1 can be removed, since this fix replaces it and is much simpler. To summarize the changes:
- Update/replace /usr/sbin/modemprobe.
- Delete all but the first entry in PCI_OVERRIDES in /etc/rc.d/MODULESCONFIG.
- Remove file "listdriver" from /usr/sbin/.


Ok, I have updated with rerwin's /usr/sbin/modemprobe, edited /etc/rc.d/MODULESCONFIG, and removed /usr/sbin/listdriver. All of these changes are in the 0rootfs-skeleton-411 package.

Tags: puppy