Manually using GSM
From Openmoko
(catspec) |
(-cat) |
||
(28 intermediate revisions by 20 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|Manually using GSM}} | ||
+ | |||
'''When men were real men and typed their own AT commands...''' | '''When men were real men and typed their own AT commands...''' | ||
Line 16: | Line 18: | ||
* Make sure the rootfs you use has 'auto usb0' in /etc/network/interfaces | * Make sure the rootfs you use has 'auto usb0' in /etc/network/interfaces | ||
− | * Configure the host's usb0 interface to 192.168.0.200 netmask 255.255.255.0 | + | * Configure the host's usb0 interface to 192.168.0.200 netmask 255.255.255.0 See [[USB_Networking]] |
* ssh to root@192.168.0.201 | * ssh to root@192.168.0.201 | ||
Line 33: | Line 35: | ||
* verify there is no getty or any other app running on /dev/ttySAC0 | * verify there is no getty or any other app running on /dev/ttySAC0 | ||
root@fic-gta01:~$ lsof | grep ttySAC0 | root@fic-gta01:~$ lsof | grep ttySAC0 | ||
+ | |||
+ | * If gsmd is using the GSM modem, shut it down with | ||
+ | |||
+ | <pre> | ||
+ | root@fic-gta01:~$ /etc/init.d/gsmd stop | ||
+ | </pre> | ||
+ | |||
* power-up the GSM Modem | * power-up the GSM Modem | ||
− | root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/ | + | root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on |
+ | |||
+ | === Connecting to GSM Modem (using socat) === | ||
+ | |||
+ | * If you have the command socat (built and installed): | ||
+ | root@fic-gta01:~$ socat - file:/dev/ttySAC0,crtscts,crnl | ||
+ | AT-Command Interpreter ready | ||
+ | |||
+ | * If you don't have it, do: | ||
+ | opkg install http://cs1.cs.nyu.edu/~wcy203/socat_1.3.2.1-r1_armv4t.opk | ||
+ | |||
+ | === Connecting to GSM Modem (using cu) === | ||
− | + | If you don't have socat, you can use cu, although it has problems with file permissions and hardware flow control. | |
* change permissions on ttySAC0 | * change permissions on ttySAC0 | ||
root@fic-gta01:~$ chown uucp.uucp /dev/ttySAC0 | root@fic-gta01:~$ chown uucp.uucp /dev/ttySAC0 | ||
* setup /usr/spool/uucp | * setup /usr/spool/uucp | ||
− | root@fic-gta01:~$ mkdir | + | root@fic-gta01:~$ mkdir -p /usr/spool/uucp |
− | + | ||
root@fic-gta01:~$ chown uucp.uucp /usr/spool/uucp | root@fic-gta01:~$ chown uucp.uucp /usr/spool/uucp | ||
* enable CTS/RTS flow control | * enable CTS/RTS flow control | ||
Line 52: | Line 71: | ||
OK | OK | ||
− | ''If it | + | ''If it hangs on "Connected" message then probably your device has a non-working GSM modem - check [http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=256 Bug #256], also you may want to try powering off the modem then on again as this worked for me'' |
'''cu seems to have problems with the hardware flow control. The one way I always managed to get GSM working is to start cu first and then on a different console issue the stty command.''' | '''cu seems to have problems with the hardware flow control. The one way I always managed to get GSM working is to start cu first and then on a different console issue the stty command.''' | ||
--[[User:DanielWillmann|DanielWillmann]] 01:15, 20 March 2007 (CET) | --[[User:DanielWillmann|DanielWillmann]] 01:15, 20 March 2007 (CET) | ||
+ | |||
+ | * close the connection with <Return>~~.<Return> | ||
+ | OK | ||
+ | ~[fic-gta01]. | ||
+ | |||
+ | Disconnected. | ||
+ | root@fic-gta01:/$ | ||
=== Using it manually === | === Using it manually === | ||
Line 70: | Line 96: | ||
AT+COPS | AT+COPS | ||
OK | OK | ||
+ | </pre> | ||
+ | |||
+ | ==== List available carriers ==== | ||
+ | |||
+ | This can take a few seconds to process but will list the available carriers | ||
+ | <pre> | ||
+ | AT+COPS=? | ||
</pre> | </pre> | ||
Line 85: | Line 118: | ||
<pre> | <pre> | ||
root@fic-gta01:~$ cd /etc/alsa/ | root@fic-gta01:~$ cd /etc/alsa/ | ||
− | root@fic-gta01:/etc/alsa$ wget http://opensource.wolfsonmicro.com/~gg/gsmheadset.working.state | + | root@fic-gta01:/etc/alsa$ wget http://opensource.wolfsonmicro.com/~gg/neo1973/gsmheadset.working.state |
root@fic-gta01:/etc/alsa$ alsactl -f /etc/alsa/gsmheadset.working.state restore | root@fic-gta01:/etc/alsa$ alsactl -f /etc/alsa/gsmheadset.working.state restore | ||
</pre> | </pre> | ||
− | Up the "Amp right" volume to hear the speaker on both ears, then dial | + | Up the "Amp right" volume to hear the speaker on both ears, then dial (note the ''';''' at the end of the dial string, this signifies a voice call, if you omit the ; it is regarded as a data call). |
<pre> | <pre> | ||
− | ATD012340234; | + | ATD012340234; |
</pre> | </pre> | ||
+ | |||
+ | If you get NO CARRIER, try... | ||
+ | |||
+ | <pre> | ||
+ | ATD+xxyzzzzzzz | ||
+ | </pre> | ||
+ | |||
+ | ie, ATD+<country_code><area_code><phone_number> | ||
==== Hanging up ==== | ==== Hanging up ==== | ||
Line 103: | Line 144: | ||
=== Using [[gsmd]] === | === Using [[gsmd]] === | ||
− | You can use the [[gsmd]] and [[libgsmd- | + | You can use the [[gsmd]] and [[Gsmd#libgsmd-tool | libgsmd-tool]] programs to have a slightly more high-level interface to the GSM Modem. It's still console based, though. |
For further instructions, see [[gsmd]] | For further instructions, see [[gsmd]] | ||
Line 109: | Line 150: | ||
=== Using tui === | === Using tui === | ||
− | Tui (available from www.sf.net/projects/tui) is able to do all this. It is still text-based, but input-rxvt can take data from touchscreen, so you can actually do the calls using your finger. It also plays wav file on incoming call, so it is theoretically usable. It even does caller id. | + | Tui (available from [http://www.sf.net/projects/tui sourceforge]) is able to do all this. It is still text-based, but input-rxvt can take data from touchscreen, so you can actually do the calls using your finger. It also plays wav file on incoming call, so it is theoretically usable. It even does caller id. |
=== Manually using GPRS === | === Manually using GPRS === | ||
Line 115: | Line 156: | ||
See [[Manually using GPRS]] | See [[Manually using GPRS]] | ||
− | [[Category: | + | [[Category:GSM]] |
Latest revision as of 09:40, 19 July 2009
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |
When men were real men and typed their own AT commands...
Thankfully, this may now be partially obsolete. The dialer now works!
This is a short guide how to manually get GSM going.
Contents |
[edit] Requirements
- GTA01Bv2 or GTA01Bv3 with very recent u-boot bootloader, providing usbtty (serial over USB) support)
- Do not connect any debug board!
[edit] Walk-Through
[edit] Booting the system
- Make sure the rootfs you use has 'auto usb0' in /etc/network/interfaces
- Configure the host's usb0 interface to 192.168.0.200 netmask 255.255.255.0 See USB_Networking
- ssh to root@192.168.0.201
[edit] Disabling the getty
Our default images all have a getty running on /dev/ttySAC0, please edit /etc/inittab and disable the getty on that port
[edit] Reducing the loglevel
NOTE: You don't need this in kernel builds with patchset ≥ 1288 |
To keep the kernel from writing to /dev/ttySAC0, you need to use dmesg -n1
.
[edit] Powering up the GSM Modem
- verify there is no getty or any other app running on /dev/ttySAC0
root@fic-gta01:~$ lsof | grep ttySAC0
- If gsmd is using the GSM modem, shut it down with
root@fic-gta01:~$ /etc/init.d/gsmd stop
- power-up the GSM Modem
root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
[edit] Connecting to GSM Modem (using socat)
- If you have the command socat (built and installed):
root@fic-gta01:~$ socat - file:/dev/ttySAC0,crtscts,crnl AT-Command Interpreter ready
- If you don't have it, do:
opkg install http://cs1.cs.nyu.edu/~wcy203/socat_1.3.2.1-r1_armv4t.opk
[edit] Connecting to GSM Modem (using cu)
If you don't have socat, you can use cu, although it has problems with file permissions and hardware flow control.
- change permissions on ttySAC0
root@fic-gta01:~$ chown uucp.uucp /dev/ttySAC0
- setup /usr/spool/uucp
root@fic-gta01:~$ mkdir -p /usr/spool/uucp root@fic-gta01:~$ chown uucp.uucp /usr/spool/uucp
- enable CTS/RTS flow control
root@fic-gta01:~$ stty -F /dev/ttySAC0 crtscts
- access the GSM Modem UART
root@fic-gta01:~$ cu -l /dev/ttySAC0 Connected. AT-Command Interpreter Ready OK
If it hangs on "Connected" message then probably your device has a non-working GSM modem - check Bug #256, also you may want to try powering off the modem then on again as this worked for me
cu seems to have problems with the hardware flow control. The one way I always managed to get GSM working is to start cu first and then on a different console issue the stty command. --DanielWillmann 01:15, 20 March 2007 (CET)
- close the connection with <Return>~~.<Return>
OK ~[fic-gta01]. Disconnected. root@fic-gta01:/$
[edit] Using it manually
[edit] Registering with the Network
- enter the following Hardware:AT_Commands:
ATE1 OK AT+CFUN=1 ERROR AT+CPIN="...." OK AT+COPS OK
[edit] List available carriers
This can take a few seconds to process but will list the available carriers
AT+COPS=?
[edit] Answering an incoming call
RING ATA OK
[edit] Dialling an outgoing call
To actually be able to talk you have to configure your audio accordingly
root@fic-gta01:~$ cd /etc/alsa/ root@fic-gta01:/etc/alsa$ wget http://opensource.wolfsonmicro.com/~gg/neo1973/gsmheadset.working.state root@fic-gta01:/etc/alsa$ alsactl -f /etc/alsa/gsmheadset.working.state restore
Up the "Amp right" volume to hear the speaker on both ears, then dial (note the ; at the end of the dial string, this signifies a voice call, if you omit the ; it is regarded as a data call).
ATD012340234;
If you get NO CARRIER, try...
ATD+xxyzzzzzzz
ie, ATD+<country_code><area_code><phone_number>
[edit] Hanging up
ATH OK
[edit] Using gsmd
You can use the gsmd and libgsmd-tool programs to have a slightly more high-level interface to the GSM Modem. It's still console based, though.
For further instructions, see gsmd
[edit] Using tui
Tui (available from sourceforge) is able to do all this. It is still text-based, but input-rxvt can take data from touchscreen, so you can actually do the calls using your finger. It also plays wav file on incoming call, so it is theoretically usable. It even does caller id.