Building
Moto4Lin
On Fedora Core
(And an Example of SEEM Editing on the Motorola A780)
A780 Small
Linuxslate.com

NEW !  You can discuss this article on the
Linuxslate.com Forums

05 August 2006

#Backgorund
My latest Linux Slate is a Motorola A780 mobile phone. It is a very cool phone, but I noticed one big deficiency when I first got it.  I could not figure out how to enable the setting of the phone's clock via the cellular network.  I like my gadgets to tell me what time it is, not to ask me. I did some research on Motorolafans.com, and found that this feature is disabled on many versions of this phone - particularly those for the Asian market, which mine was.
A little more research informed me that I could turn the feature back on by doing something called SEEM editing.  I then learned of a really great tool called moto4lin.  When I tried to build moto4lin on my main PC, which runs Fedora Core 3, I ran into some minor problems.  I was able to figure it out, but I noticed that no one had made a How-To for compiling and using moto4lin on Fedora Core, and no one had a How-To for using moto4lin with a Motorola A780.

Please Read Disclaimer Below.

Adapted from gorkhal's posting on ubuntuforums:
http://www.ubuntuforums.org/showthread.php?t=56253&highlight=moto4lin

The official Moto4Lin project page is here.

This page contains some specifics for use with the Motorola A780, but many Motorola phones are supported. Check out the Supported Models section at the motor4lin wiki. 

HOWTO: Access Motorola phones through USB using Moto4Lin
This HowTo is for installing and running moto4lin on Fedora Core.   I actually did this on Fedora Core 3, but Core 4, and Core 5 should be very similar.

Most of the information reproduced here, for convenience's sake, can be found at the moto4lin's wikipage HERE.

Moto4lin supports AT and P2K modes on these phones. The AT mode is basically for Modem functionality and GPRS. Its the P2K mode that lets you access your phone's file system, and other features such as SEEM editing.

#Phone Set-up  (A780 Specific):

Telnet access, LinLoader etc. are NOT required for the example on this page. All you need is the phone and a USB cable.

Check/Set the USB port to modem mode.
On the Phone do:
    Set the USB port to Modem Mode.
    This is under Setup.... USB Mode.

#Desktop PC Requirements

You need root access for almost all of the operations here.
You need the following RPM's installed:
qt,  qt-devel,  zlib, zlib-devel, libusb,  libusb-devel.

(Note:  You probably will also need minicom installed for later.  You may as well grab it while you are installing the other stuff, so I include it in the commands below.)

Obviously, most systems should have some of these installed, such as libusb.  To check the other ones do:

~#  rpm -qa | grep <package name>

For example, I check to make sure I have qt-devel, I use:

~#  rpm -qa | grep qt-devel

It returns:
qt-devel-3.3.4-0.fc3.0

Showing that I have qt-devel, and that it is at least version 3.3, so I am OK.

If you are missing anything, install it with:

~# yum install <package name>

For example, If I did not have qt-devel, I would enter:

~# yum install qt-devel

Do the same for the other pre-requisites that you do not already have.

You can also get minicom now too:

~# yum install minicom

#Preparing to install moto4lin
We are going to get the moto4lin source from a cvs repository. You might get an error from cvs at this stage, ignore and proceed. Asked for password? Just press Enter.

~# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/moto4lin login

~# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/moto4lin co -P moto4lin

This should download the source into a directory named moto4lin.

On Fedora Core, we have to do 2 quick "fixes" to get moto4lin to compile:

~# ln -s /usr/bin/uic /bin/uic
~# export QTDIR = /usr/lib/qt-3.3

Now compile the source.
~# cd moto4lin
~/moto4lin # qmake
~/moto4lin # make
~/moto4lin # make install

Should you receive any compilation Errors, you most likely do not have the required libraries, try looking through the Error messages to figure out what you are missing. Don't worry about Warnings.  If Warnings bother you, then I would like to see you write code that never produces Warnings when it is compiled. If there are no Errors, you have installed moto4lin successfully.

#Configure moto4lin

Connect your phone to your computer using a usb cable.  One nice thing about the A780, and other, newer Motorola phones is that they use a standard USB to USB mini cable.  A special Motorola cable is NOT required.

Now run moto4lin...

~ # moto4lin

You need to run it under root to access the P2K mode on your phone, at least until its fixed, or someone figures out how to run it as normal user.

It should say: '[info] Phone pluged as AT' in the status line.

GoTo: Settings -> Preferences...
Set 'ACM Device' = '/dev/ttyACM0'
Then we need to figure out the following,
'AT Vendor ID',
'AT Product ID',
'P2K Vendor ID',
'P2K Product ID'.

Click 'Update List' -> retrieves a list of the 'AT Vendor ID' and 'AT Product ID' of all your USB devices. Find your cell phone's AT IDs from the list.
(Once you have found it write it down, because an ODD thing is when moto4lin is run under root, it does not save any changes to settings)
Select 'Switch to P2K' -> if it is successful, it should say '[info] Phone pluged as P2K' in the status bar of the main window.
Clicking 'Update List' again will now retrieve the 'P2K Vendor ID' and 'P2K Product ID' of all your USB devices. Write your cell phone's P2K IDs down.

Alternatively you can search here for the AT and P2K IDs of your phone.
The A780's info is:
AT Vendor ID - 22b8
AT Product ID - 3802
P2K Vendor ID - 22b8
P2K Product ID - 6009
Reference here.

Appearently, most A780's with late firmware versions will fail to switch to P2K mode.
If this happens, do the following steps:

(Trivial Note:  The MING phones - E680 E680i, A780, A1200 run Linux, not P2K on the AP (Application Procsessor).  Putting the phone in the mode where Moto4Lin can work is still called "P2K Mode" - Us Linux users just have to go along with the P2K terminology.)

#Using Minicom to force the A780 into P2K mode - Optional:

Close moto4lin.
Unplug your phone.

Start Minicom in setup mode:

~# minicom -s

Move to Serial Port Setup <Enter>
Press <A>, and change the Serial Device to /dev/ttyACM0
Press <Enter> and <Enter> again to get back to the configuration menu.
Move to Save setup as dfl.  Press <Enter>
Move to Exit.  Press <Enter>

Connect your phone.

Restart Minicom

After Minicom starts, the phone should return "OK"

Type the following (in minicom):

at+mode=12

You will get a message telling you to disconnect.  DO NOT unplug the phone, Just quit Minicom WITHOUT reseting the modem.
Do this by pressing <cntrl - a>   <q>.

If you do:

~ $ cat /proc/bus/usb/devices

You shoul d see that your phone has changed it's identity.  Its product code should have changed from 3802 to 6009.

Start moto4lin, and it should see that the phone is already in P2K mode.  You should now be able to connect to it.

(Note:  Since we have the source code for moto4lin, we could change the AT commands it sends to the phone to put it into "P2K" mode to the appropriate ones for the A780.  I have not bothered to do this since I do not plan on messing with my SEEM files everyday.  Suggestion to the Moto4Lin developers:  Make is so that we can change the AT command to switch the phone mode in the settings screen.)

#Using Moto4Lin

If its already in P2K mode, click 'Connect' to load up your Motorola file system.

For the A780, you will not see the full Linux filesystem.

#Editing SEEM 0032_0001

The whole purpose of this, for me, was to enable Autoupdate of the phone's clock.  This is done by editing SEEM file 0032_0001.  We need to change 2 bits in this file.  Moto4Lin makes this very easy.

You can find a reference of SEEM 0032-0001 here.  Please not that this covers this seem file for other phones.  Some bits may be different or not used for the A780.  I strongly reccomend that you do not change any bits if you are not sure of thier effect on your phone.

(Note:  There is a bug in the phone that causes erroneos time updates with some - North American, I believe - providers.  See this thread and this thread on motorolafans.com.)

Click on Seem Editor.
In the Seem entry boxes, enter 0032, 0001.
Click Read Seem.  (Note.  it is a good idea to save your original seem to a file before editing it.)

Your screen should look something like:

Moto4lin Screenshot

To enable Network time autoupdate, we need to change the very first bit of this seem.  Click on the box at 000_,_0 and set the 0th bit on.
(Note the differnce between bit order and bit number.).  Do the same for bit 2 of byte 55 (This is at 005_,_5 ).

One final warning is approprate here about the possibility of rendering your phone non-functional.  If you do not want to continue, just click Disconnect, and unplug your phone.

Click on 'Write Seem'.

If there is no other editing you wish to do, just click 'Disconnect', and unplug your phone.  Reboot to see the changes.



(Note:  Moto4Lin can also reboot your phone.)

NEW !  You can discuss this article on the
Linuxslate.com Forums




Disclaimer:
THIS DOCUMENT IS PROVIDED BY THE AUTHOR "AS IS".  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Linuxslate.com
All trademarks/tradenames are the property of the companies that own them.
Picture of the phone is (c) Motorola.  Used for educational purposes.