GPRS modems work via Pupdial ?
GPRS modems work via Pupdial ?
GPRS modems gives devices like
/dev/ttyACM0, /dev/input/ttyACM0, /dev/input/ttyUSB0...
I try made simlink like this
# ln -s /dev/input/ttyACM0 /dev/ttySACM0
and Pupdial find this modem
But now some problem in pupdial script.
For my GSM operator need this INIT2:
Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
But script "eat" some part of string and I get this INIT2:
Init2 = AT+CGDCONT=1,
If we solve this problem, we get one program for all types of modems
/dev/ttyACM0, /dev/input/ttyACM0, /dev/input/ttyUSB0...
I try made simlink like this
# ln -s /dev/input/ttyACM0 /dev/ttySACM0
and Pupdial find this modem
But now some problem in pupdial script.
For my GSM operator need this INIT2:
Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
But script "eat" some part of string and I get this INIT2:
Init2 = AT+CGDCONT=1,
If we solve this problem, we get one program for all types of modems
Last edited by Kazm on Sun 27 Apr 2008, 11:20, edited 1 time in total.
Hi Kazm
Maybe this helps?
http://www.murga-linux.com/puppy/viewto ... 7&start=15
http://murga-linux.com/puppy/viewtopic. ... f764e403e5
Aitch
Maybe this helps?
http://www.murga-linux.com/puppy/viewto ... 7&start=15
http://murga-linux.com/puppy/viewtopic. ... f764e403e5
Aitch
good call
The problem seems to be getting an init string with quotes into and back out of gtkdialog. Line 73 of /usr/sbin/pupdial needs something similar to
note this is wrong because it inserts an extra backslash. I can't get gtkdialog to display <edit>quotation marks without also showing a backslash</edit>.
There are more problems where the the output from the dialog is read.Is risky because it tries to evaluate all of the output. Some of this is not executable and there is always the risk that one of the expressions could be something downright dangerous. Which field do I have to type rm -f /* into to wipeout my installation?
Something like this is safer but I haven't included specially handling for variables with quotes in this example.
This is so close to working, well done.
I messed around and got pupdial to work with my mobile but then it wrote quotes into wvdial.conf and which broke pupdial the next time it tried to load the gui. It can probably be made to work if you accept the backslash characters in the display.
The problem seems to be getting an init string with quotes into and back out of gtkdialog. Line 73 of /usr/sbin/pupdial needs something similar to
Code: Select all
INIT2M="`cat /etc/wvdial.conf | grep '^Init2 = ' | cut -f 3-12 -d ' '| sed 's/"/\\\\"/g;'`"
There are more problems where the the output from the dialog is read.
Code: Select all
eval "$RETSTRING"
Something like this is safer
Code: Select all
RETSTRING=(`gtkdialog3 --program=MAINDIALOG`)
for foo in ${RETSTRING[@]}; do
echo $foo
[ "$(echo $foo | grep -E 'CHECKBC|CHECKCC|CHECKDT|ENTRYACC1ISP|ENTRYACC1PASS|ENTRYACC1USER| #broken line for forum
ENTRYACC2ISP|ENTRYACC2PASS|ENTRYACC2USER|ENTRYBAUDM|ENTRYINIT1M|ENTRYINIT2M|EXIT|#broken line for forum
ynAUTO_RECONNECT1|ynAUTO_RECONNECT2|ynSTUPID_MODE1|ynSTUPID_MODE2')" ] && eval $foo
done
This is so close to working, well done.
I messed around and got pupdial to work with my mobile but then it wrote quotes into wvdial.conf and which broke pupdial the next time it tried to load the gui. It can probably be made to work if you accept the backslash characters in the display.
Will
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
ok here is a patch for the pupdial in dingo beta 2warning:I put a couple of line breaks in there to stop the page being so wide
Code: Select all
# diff pupdial.orig pupdial.new
73c73
< INIT2M="`cat /etc/wvdial.conf | grep '^Init2 = ' | cut -f 3-12 -d ' '`"
---
> INIT2M="`cat /etc/wvdial.conf | grep '^Init2 = ' | cut -f 3-12 -d ' '| sed 's/"/\\\\"/g;'`"
163c163
< <default>\"${INIT2M}\"</default>
---
> <input>echo \"${INIT2M}\"</input>
346,350c346,352
<
< #RETSTRING="`echo "$MAINDIALOG" | gtkdialog3 --stdin`"
< RETSTRING="`gtkdialog3 --program=MAINDIALOG`"
<
< eval "$RETSTRING" #v3.99
---
> #patched by hairywill to allow quotation marks in INIT2M
> RETSTRING=(`gtkdialog3 --program=MAINDIALOG`)
> for ONEEXPRESSION in ${RETSTRING[@]}; do
> [ "$(echo $ONEEXPRESSION | grep -E 'CHECKBC|CHECKCC|CHECKDT|ENTRYACC1ISP|ENTRYACC1PASS|ENTRYACC1USER|
ENTRYACC2ISP|ENTRYACC2PASS|ENTRYACC2USER|ENTRYBAUDM|ENTRYINIT1M|EXIT|
ynAUTO_RECONNECT1|ynAUTO_RECONNECT2|ynSTUPID_MODE1|ynSTUPID_MODE2')" ] && eval "$ONEEXPRESSION"
> [ "$(echo ${ONEEXPRESSION} | grep 'ENTRYINIT2M')" ] && ENTRYINIT2M=$(echo $ONEEXPRESSION| sed 's/.*="//;s/"$//')
> done
> #end of patch
Last edited by HairyWill on Tue 29 Apr 2008, 19:38, edited 3 times in total.
Will
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
cdc_acm is not loaded automatically in dingo beta 2
Do all mobile phones use cdc_acm, and do these all present as the same device node?
The simplest would be a button "press this if you have connected a mobile".
I presume it could also be done automatically at boot by putting in all the usb ids. Though this is not so helpful if you plug the phone in after booting. What would be really helpful would be a list of countries, providers, contract type, connection strings and numbers as finding the connection string and correct number is a significant hurdle. A page for recording these on the wiki might be good.
Do all mobile phones use cdc_acm, and do these all present as the same device node?
The simplest would be a button "press this if you have connected a mobile".
I presume it could also be done automatically at boot by putting in all the usb ids. Though this is not so helpful if you plug the phone in after booting. What would be really helpful would be a list of countries, providers, contract type, connection strings and numbers as finding the connection string and correct number is a significant hurdle. A page for recording these on the wiki might be good.
Will
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
Kazm, if you're out there, can you test this?
http://www.murga-linux.com/puppy/viewto ... 795#193795
I'm trying to automate it all.
You should be able to get your phone recognized by Pupdial with just a couple clicks of a fresh boot.
Whether or not you can connect after that....that's a different story.
http://www.murga-linux.com/puppy/viewto ... 795#193795
I'm trying to automate it all.
You should be able to get your phone recognized by Pupdial with just a couple clicks of a fresh boot.
Whether or not you can connect after that....that's a different story.
John this looks great.
I gave a whirl and hit several snags.
I pretended that I didn't know which device it would get connected to. I went through all of the usb device options then used an init2 string that I already knew works to try and dial out. It failed. I can't remember the exact message from wvdial. I checked which modules were loaded and I had ipaq and idtl_???? as well as cdc_acm, I unloaded those and pupdial worked and got me connected .
I haven't looked at the code at all so if any of my comments don't make sense I apologise.
It might be good to have a list of usb.ids to decide which driver to load. I suppose it would make sense to get Barry to add them to the main list.
As far as working out what node the device is on surely there must be a way of probing the node to see if something is on the other end of it.
After pupdial finds a device it automatically writes a connection string into init2. I don't expect that this can be filled automatically but it might be helpful if we can give the user some clues on where to search for this and the number to dial.
I also was intrigued to see the vpn options. I'm not convinced this is exactly the right place for them but its great you are having a bash at this. The loss of pptpconfig bothered me though I did finally work out how to get my vpn working by hand a few weeks ago.
I tried the ms pptp option and first had to lookup the ip of my server as I only know its name. I didn't really know what I was supposed to put in the default route or netmask, though I could probably work it out if I thought hard. I wasn't quite sure if the ppp0 referred to my current interface or the one the tunnel was going to create. Isn't this always one more than the existing ppp interface(s), I left all the other settings as default. I hit the connect button and was rewarded with an extra blinky but no other output. The network connection didn't work and it looked like the routing table was wrong, I presume I made the wrong choices in the config. When I disconnected the tunnel it didn't put back my original dns servers into resolv.conf though the routing table was fine.
Hope this helps, give me a shout if you want further clarification, I think this is a great project.
I gave a whirl and hit several snags.
I pretended that I didn't know which device it would get connected to. I went through all of the usb device options then used an init2 string that I already knew works to try and dial out. It failed. I can't remember the exact message from wvdial. I checked which modules were loaded and I had ipaq and idtl_???? as well as cdc_acm, I unloaded those and pupdial worked and got me connected .
I haven't looked at the code at all so if any of my comments don't make sense I apologise.
It might be good to have a list of usb.ids to decide which driver to load. I suppose it would make sense to get Barry to add them to the main list.
As far as working out what node the device is on surely there must be a way of probing the node to see if something is on the other end of it.
After pupdial finds a device it automatically writes a connection string into init2. I don't expect that this can be filled automatically but it might be helpful if we can give the user some clues on where to search for this and the number to dial.
I also was intrigued to see the vpn options. I'm not convinced this is exactly the right place for them but its great you are having a bash at this. The loss of pptpconfig bothered me though I did finally work out how to get my vpn working by hand a few weeks ago.
I tried the ms pptp option and first had to lookup the ip of my server as I only know its name. I didn't really know what I was supposed to put in the default route or netmask, though I could probably work it out if I thought hard. I wasn't quite sure if the ppp0 referred to my current interface or the one the tunnel was going to create. Isn't this always one more than the existing ppp interface(s), I left all the other settings as default. I hit the connect button and was rewarded with an extra blinky but no other output. The network connection didn't work and it looked like the routing table was wrong, I presume I made the wrong choices in the config. When I disconnected the tunnel it didn't put back my original dns servers into resolv.conf though the routing table was fine.
Hope this helps, give me a shout if you want further clarification, I think this is a great project.
Will
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
HairyWill and John, I hope we do it in service pack for Dingo 4
And now I'm testing your new scripts in our PuppyRus (based on Puppy 3.01).
I tried make HairyWill's patch to pupdial, but I done something wrong and it's no working right
But then I tried use CDMA-phone modem that use such init2:
Init2 = at+crm=1;&C0
And thats work
But not connect
This is log:
I know there not some files...maybe...
And now I'm testing your new scripts in our PuppyRus (based on Puppy 3.01).
I tried make HairyWill's patch to pupdial, but I done something wrong and it's no working right
But then I tried use CDMA-phone modem that use such init2:
Init2 = at+crm=1;&C0
And thats work
But not connect
This is log:
Code: Select all
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: at+crm=1;&C0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected. Waiting for prompt.
--> Don't know what to do! Starting pppd and hoping for the best.
--> Starting pppd at Thu May 1 13:20:03 2008
--> pid of pppd: 23541
--> Disconnecting at Thu May 1 13:20:14 2008
--> The PPP daemon has died: A modem hung up the phone (exit code = 16)
--> man pppd explains pppd error codes in more detail.
--> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
--> Auto Reconnect will be attempted in 160 seconds
Last edited by Kazm on Tue 13 May 2008, 12:41, edited 1 time in total.
kazm
Try installing johns new version at the link above, that should work.
Barry has patched his copy to allow quotation marks in both init strings so the next iso he releases at the weekend should work for you as long as you load the module and make the dev link yourself.
Try installing johns new version at the link above, that should work.
Barry has patched his copy to allow quotation marks in both init strings so the next iso he releases at the weekend should work for you as long as you load the module and make the dev link yourself.
Will
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
contribute: [url=http://www.puppylinux.org]community website[/url], [url=http://tinyurl.com/6c3nm6]screenshots[/url], [url=http://tinyurl.com/6j2gbz]puplets[/url], [url=http://tinyurl.com/57gykn]wiki[/url], [url=http://tinyurl.com/5dgr83]rss[/url]
I think I have the finding of the device figured out, without resorting to simlinking stuff all over the place.
I looked through all the scripts and found that wvmodemscan was the app that detects the modems.
The 2.6x kernel seems to put them in different places than 2.4x.
I found the code, next I'll compile do a quick test and post it for everyone to test.
I looked through all the scripts and found that wvmodemscan was the app that detects the modems.
The 2.6x kernel seems to put them in different places than 2.4x.
I found the code, next I'll compile do a quick test and post it for everyone to test.
Code: Select all
static int fileselect(const struct dirent *e)
{
return !strncmp(e->d_name, "ttyS", 4) // serial
|| !strncmp(e->d_name, "ttyLT", 5) // Lucent WinModem
|| !strncmp(e->d_name, "ttyACM", 6) // USB acm Modems
|| !strncmp(e->d_name, "ttyUSB", 6) // Modems on USB RS232
|| !strncmp(e->d_name, "ircomm", 6) // Handys over IrDA
|| !strncmp(e->d_name, "ttySL", 5); // SmartLink WinModem
// (no internal ISDN support) || !strncmp(e->d_name, "ttyI", 4);
}
GPRS for Puppy
I just want to point out that Puppy 4.1 now has "pgprs," a generic wizard to detect and configure GPRS serial modem devices. It creates scripts that work directly with pppd.
I'm wondering if you ever got pupdial working with GPRS. The main catch I see to use of pupdial is the require to enter (once) the GSM PIN code to unlock the card. It is this requirement that has never allowed me to use common dialup programs.
I'm wondering if you ever got pupdial working with GPRS. The main catch I see to use of pupdial is the require to enter (once) the GSM PIN code to unlock the card. It is this requirement that has never allowed me to use common dialup programs.