So, I finally spent an evening struggling with my WRT54G3G's web interface and managed to craft a pair of commandline tools to connect and disconnect:
wrtconnect.sh:
#!/bin/bash
read -s -p "Please enter your password: " WRTPWD
curl -o /dev/null -# -d submit_button=index -d change_action=gozila_cgi -d submit_type=Connect_wwan
http://admin:${WRTPWD}@10.0.0.1/apply.cgi wrtdisconnect.sh:
#!/bin/bash
read -s -p "Please enter your password: " WRTPWD
curl -o /dev/null -# -d submit_button=index -d change_action=gozila_cgi -d submit_type=Disconnect_wwan
http://admin:${WRTPWD}@10.0.0.1/apply.cgi They're not perfect and the router is unresponsive for a couple of minutes after using either, but it's still better than having to launch firefox just to hit the web interface. (With all the JS crud in there, lynx isn't an option.)
Also, it appears there's new firmware for the thing. I've downloaded it and will give it a shot over the weekend. With luck it'll fix the failure to look for 3g signal issue.