qreset: A Tool for Resetting Connections

qreset's home page is here. Please read that first, because it says when it makes sense to use qreset, and what the requirements are for it to work!

Once you know you meet the requirements listed on qreset's home page, please run the following six one-line commands for me on your Zaurus when online, being sure to capture the commands issued along with their output.

which ps | xargs ls -l
cat /proc/deviceinfo/.list /proc/deviceinfo/product /proc/deviceinfo/revision /proc/deviceinfo/vendor /proc/cpuinfo /proc/sys/kernel/osrelease /proc/version
head /var/lock/*
head /var/lock/*/*
grep local /etc/syslog.conf
ps ax | grep tty
for i in `find /proc -name fd 2>/dev/null`;do p=${i%%/fd} ;cmd=`cat $p/cmdline 2>/dev/null`; ls -l $i 2>/dev/null | grep tty | sed "s|^l.*>|$cmd:|" ;done

And then the following when you are offline:

ps ax | grep tty

Giving me a screen capture which includes the commands themselves, along with the output of the commands, will enable me to see whether qreset is likely to work on your Zaurus, and also help me to improve it more easily should any problems arise while you are testing.

I have tested qreset on my ROM 2.38, using it to resolve issues that arise with getting back online or ejecting my CF card for a variety of reasons. However, the script probably can use more tweaking for unusual conditions that rarely occur.

Reporting and Debugging Qreset Problems

If qreset does not work when you use it, then please be sure to keep a copy of all the output from it, and also tell me what the last two things you did that might have affected your modem, other networking device, or CF card before attempting to run qreset. I say last two or even three events because the penultimate events often are the source problem.

In my experience thus far, browsers, chat clients, efax, and minicom all have caused problems and my challenge will be to ascertain what unique circumstance caused any failure you may experience, and come up with a solution to the problem.

If you wish, you can automate saving all new current output from qreset by using the "tee" command, as follows, or putting a qreset alias in your .bashrc. Note that you will have to give the file a different name if you want to save output from a prior run, and you can read more about aliases here.

qreset | tee /tmp/qreset.log
   OR try this alias instead:
alias qreset="qreset | tee /tmp/qreset.log"

Also, for debugging purposes, if you have problems, I will also want to see a complete copy of immediate output of the following five one-line commands (please include the commands issued as part of your screen capture):

ps ax
cardctl status
head /var/lock/*
head /var/lock/*/*
cat /tmp/qpe-pppd-log   #if no such file, run "cat" on your logfile, wherever it is
for i in `find /proc -name fd 2>/dev/null`;do p=${i%%/fd} ;cmd=`cat $p/cmdline 2>/dev/null`; ls -l $i 2>/dev/null | grep tty | sed "s|^l.*>|$cmd:|" ;done

Be sure to tell me whether you ran the above commands before or after you ran qreset. You also may want to try running it a second time, to see if more sequences of it's routine will resolve the issue.


P.S. My contact info is here.

Revised September 7, 2008