Motorola A920 under GNU/Linux

Henrik Brix Andersen

Revision History
Revision 0.2.1 2005-04-08 HBA
Added link to the pppd utility
Revision 0.2.0 2005-04-07 HBA
Major rewrite
Revision 0.1.4 2004-09-10 HBA
Updated email address
Revision 0.1.3 2004-05-07 HBA
  • Added links to the XML source and a plain text version

  • Fixed a couple of small typos

Revision 0.1.2 2004-05-07 HBA
  • Added tip about how to start the DNS server

  • Added tip about auto-loading the usbserial module

Revision 0.1.1 2004-05-04 HBA
Boosted USB connection speed to 460800 baud
Revision 0.1.0 2004-05-04 HBA
Initial revision

Abstract

This document describes the process of getting a Motorola A920 cell phone to work with GNU/Linux. So far this document covers how to synchronize the contacts, calendar and tasks through the USB cable using Multisync.

The Docbook XML source of this document is also available.


Table of Contents

1. Introduction
1.1. Copyright and License
1.2. Disclaimer
1.3. Feedback
2. The Motorola A920
3. DNS Server
4. USB Cable
4.1. Kernel Modules
4.2. Local Connection
4.3. Infrared
5. Synchronizing using Multisync
5.1. SyncML Server
5.2. SyncML Client
6. Conclusion
7. Related Links

1. Introduction

I own a Motorola A920 cell phone. The phone comes with a USB cable and software to synchronize it's contacts, calendar and tasks to a PC. Unfortunately the software supplied only works with Microsoft Windows, so you're on your own if you're using another operating system, say for instance GNU/Linux.

Fortunately I've managed to get the A920 to work with GNU/Linux as well. Read on for all the juicy details.

1.1. Copyright and License

This document is copyrighted © 2004-2005 by Henrik Brix Andersen. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html.

1.2. Disclaimer

No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.

All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements.

1.3. Feedback

Feedback is most certainly welcome for this document. Send your additions, comments and criticisms to the following email address: .

2. The Motorola A920

The Motorola A920 is a 3G cellular phone with integrated PDA (or was it the other way around?). It is based on the Symbian operating system and includes lots of nice features such as an Assisted GPS (A-GPS) and an MP3 player. It is very similar in function and design to the Motorola A925, the Motorola A1000 and the Motorola A1010, and the instructions found in this document should work with either of those models.

3. DNS Server

The A920 needs to be able to resolve the address wsockhost.mrouter when connected to the PC. Otherwise it will drop the connection after approximately 90 seconds. To allow the A920 to perform the DNS lookup we need a DNS server running on the PC. The following instructions apply to the dnsmasq DNS server.

Configuration is simple. Add the contents of Figure 1 to /etc/hosts and start dnsmasqd.

169.254.1.1  a920
169.254.1.68 wsockhost.mrouter

Figure 1. A920 related entries in /etc/hosts


You should verify the DNS server configuration as shown in Figure 2. Of course, any utility for performing DNS lookups will do, I've only used the host command as example since most GNU/Linux distributions ship with it by default.

# host wsockhost.mrouter 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

wsockhost.mrouter has address 169.254.1.68

Figure 2. Verifying the DNS server configuration


4. USB Cable

The A920 comes with an USB cable for connecting it to a PC. This section describes how to set up the connection between the PC and the A920 using the USB cable.

4.1. Kernel Modules

To connect to the A920 to your PC using the USB cable you need the kernel options listed below. You will also need the user-space pppd utility.

  • PPP (point-to-point protocol) support (CONFIG_PPP)

  • PPP support for async serial ports (CONFIG_PPP_ASYNC)

  • Support for Host-side USB (CONFIG_USB)

  • USB Modem (CDC ACM) support (CONFIG_USB_ACM)

4.2. Local Connection

To get pppd to establish a local connection to the A920 you need to add the contents of Figure 3 to /etc/ppp/peers/A920-USB-local.

/dev/ttyACM0
460800
crtscts
local
lock
noauth
passive
nomagic
ms-dns 169.254.1.68
169.254.1.68:169.254.1.1

Figure 3. /etc/ppp/peers/A920-USB-local


You should now be able to establish a local connection from the PC to the A920 as shown in Figure 4. Don't forget to initialize the Desktop Suite on the phone as well. The Desktop Suite on the A920 should be configured to establish link using USB.

# pppd call A920-USB-local nodetach
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM0
local  IP address 169.254.1.68
remote IP address 169.254.1.1

Figure 4. Establishing a connection to the A920


Check the output to see if the connection was successful and verify that the A920 recognizes the connection to the PC. You should also verify the connection by pinging the A920 from the PC as shown in Figure 5.

# ping -c 3 a920
PING a920 (169.254.1.1) 56(84) bytes of data.
64 bytes from a920 (169.254.1.1): icmp_seq=1 ttl=69 time=8.73 ms
64 bytes from a920 (169.254.1.1): icmp_seq=2 ttl=69 time=7.56 ms
64 bytes from a920 (169.254.1.1): icmp_seq=3 ttl=69 time=8.75 ms

--- a920 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 7.564/8.348/8.750/0.559 ms

Figure 5. Verifying the connection using ping


4.3. Infrared

Your A920 might need a software upgrade for the infrared port to work. If the infrared port settings are not listed in the control panel, contact your service provider for a software upgrade.

4.3.1. Kernel Modules

To connect to the A920 to your PC using the infrared port you need the kernel options listed below. You will also need the user-space pppd utility.

  • PPP (point-to-point protocol) support (CONFIG_PPP)

  • PPP support for async serial ports (CONFIG_PPP_ASYNC)

  • IrDA (infrared) subsystem support (CONFIG_IRDA)

  • IrCOMM protocol (CONFIG_IRCOMM)

  • Cache last LSAP (CONFIG_IRDA_CACHE_LAST_LSAP)

  • Fast RRs (low latency) (CONFIG_IRDA_FAST_RR)

You will also need to enable the specific device driver for your PC's infrared port. The following example uses the NSC PC87108/PC87338 device driver as this is the one needed by my IBM ThinkPad X31.

  • NSC PC87108/PC87338 (CONFIG_NSC_FIR)

To have the kernel module recognize the hardware correctly I had to add the contents of Figure 6 to /etc/modules.conf.

alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x9

Figure 6. Infrared port related entries in /etc/modules.conf


You will need to execute the command irattach irda0 to set up the infrared port. The irattach utility is provided by the Linux IrDA Project.

4.3.2. Local Connection

To get pppd to establish a local connection to the A920 you need to add the contents of Figure 7 to /etc/ppp/peers/A920-IrDA-local.

/dev/ircomm0
115200
crtscts
local
lock
noauth
passive
nomagic
ms-dns 169.254.1.68
169.254.1.68:169.254.1.1

Figure 7. /etc/ppp/peers/A920-IrDA-local


You should now be able to establish a connection from the PC to the A920 as shown in Figure 8. Don't forget to initialize the Desktop Suite on the phone as well. The Desktop Suite on the A920 should be configured to establish link using Infrared.

# pppd call A920-IrDA-local nodetach
Using interface ppp0
Connect: ppp0 <--> /dev/ircomm0
local  IP address 169.254.1.68
remote IP address 169.254.1.1

Figure 8. Establishing a connection to the A920


Check the output to see if the connection was successful and verify that the A920 recognizes the connection to the PC. You should also verify the connection by pinging the A920 from the PC as shown in Figure 9.

# ping -c 3 a920
PING a920 (169.254.1.1) 56(84) bytes of data.
64 bytes from a920 (169.254.1.1): icmp_seq=1 ttl=69 time=201 ms
64 bytes from a920 (169.254.1.1): icmp_seq=2 ttl=69 time=342 ms
64 bytes from a920 (169.254.1.1): icmp_seq=3 ttl=69 time=138 ms

--- a920 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 138.444/227.499/342.110/85.087 ms

Figure 9. Verifying the connection using ping


5. Synchronizing using Multisync

The A920 comes with a SyncML client which enables us to synchronize it's contacts, calendar and tasks using the Multisync SyncML plug-in.

First you need to add a synchronization pair as shown in Figure 10. I synchronize my A920 with Novell Evolution 2, but any available plug-in can be selected as second plug-in.

Synchronization pair configuration, I

Figure 10. Synchronization pair configuration, I


I recommend setting the synchronization pair to synchronize on changes as shown in Figure 11.

Synchronization pair configuration, II

Figure 11. Synchronization pair configuration, II


5.1. SyncML Server

You need to set up the Multisync SyncML plug-in to accept connections through http as shown in Figure 12.

SyncML server configuration, I

Figure 12. SyncML server configuration, I


The names of the SyncML databases can be seen as shown in Figure 13. These names are needed for configuring the SyncML client on the A920.

SyncML server configuration, II

Figure 13. SyncML server configuration, II


Make sure you enable the Interpret UTC as local time option as shown in Figure 14.

SyncML server configuration, III

Figure 14. SyncML server configuration, III


I recommend setting up Multisync to automatically synchronize as shown in Figure 15.

Automatically synchronize on changes

Figure 15. Automatically synchronize on changes


5.2. SyncML Client

Configure the SyncML client on the A920 using the settings shown in Figure 16.

Server address: http://169.254.1.68:5079
Username: syncml
Password: ************

Transport Protocol: HTTP
Use transport login: no

Figure 16. A920 SyncML client configuration


Add the synchronization tasks using the same database names as specified in the Multisync SyncML plug-in, see Figure 13.

After establishing a connection between the A920 and the PC, as shown earlier in this document, you should be able to synchronize the A920 using Multisync.

6. Conclusion

The Motorola A920 perfectly well with GNU/Linux. Given the instructions in this HOWTO it should be pretty straight forward to set up the kernel and Multisync for synchronizing as long as you have a bit of experience with GNU/Linux.

7. Related Links

This section contains a list of hopefully helpful links to various documentation related to the A920 and/or GNU/Linux which I've collected during the the writing of this document.

Miscellaneous

  • P3nfs: Symbian to UNIX/Linux communication program