GPRS unreliable: long lasting connection fail

Eldon Koyle ekoyle at gmail.com
Thu Jan 15 00:53:16 CET 2009


On  Jan 13 12:25-0700, Eldon Koyle wrote:
> I was looking at this once and I think the problem might be that pppd
> closes the device and re-opens it before reconnecting, and the mux
> device is no longer usable once it has been closed.
> 
> I didn't verify this, but it seemed logical to me ;).

I decided to take another look, and here is what happens:

If you have the 'persist' option in /etc/ppp/peers/<connection name>,
pppd will reconnect after errors.  To reconnect, it closes the device then
reopens it.  With gsm0710muxd, when /dev/pts/N gets closed it is
deallocated.  Then, pppd is trying to reconnect to a device that doesn't
exist.

A hack-around for this might be to turn off the 'persist' option and make a script like:

	identvar=$(date +%s)
	while true; do
		# code ripped of from somewhere to get a mux device
	        ptsvar=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$identvar | grep string | awk -F '"' '{ print $2 }')
	        [ -z "$ptsvar" ] && exit 1
	        logger -s "gprsd.sh[$$]: starting pppd using $ptsvar"
	        pppd "$ptsvar" 115200 call <connection name> nodetach
	        logger -s "gprsd.sh[$$]: connection closed, waiting 10 seconds"
	        sleep 10
	done

-- 
Eldon Koyle
-- 
Treaties are like roses and young girls -- they last while they last.
		-- Charles DeGaulle




More information about the community mailing list