Be an editor/author! Sign Up now to create new pages, or edit a current page! Do help in keeping this site updated!
We are currently looking for developers for Google Android. Please contact us at this email(admin at motorolafans dot com) if you are one.
to get the latest version goto: http://www.troodon.org/a780/a780-linux-howto.htm
HowTo use the Motorola A780 Smartphone on Linux
This document describes how to connect the A780 Linux smartphone with a Linux desktop computer either via USB with the Belcarra USBLAN driver or with LEOPPP via Bluetooth. It was tested with the German version of the A780 phone and Debian Sarge OS.
Requisites:
A780 Phone, A780 USB cable, Linux computer with USB support
Repositories:
You will find the required software (marked bold in the text) either in the Forum or in the files section of my website http://www.troodon.org/a780/files/
1. Install Linloader on the phone
For nearly everything mentioned here you will need the linloader script properly installed on your phone. Linloader makes it possible to execute programs or scripts on the phone. Follow these steps to get it done.
1. Get root
2. Connect the phone using the USB cable
3. mount /dev/sdb1 /mnt mount the transflash card of the phone using the MassStorage driver. (sda1 is the phones internal memory, sdb1 is the memory of the transflash card.)
4. Download and unzip loader.zip. it contains 4 files. Connect usb mass storage and make new folder 'loader' in /mnt/.system/QTDownLoad. Make sure you can view hidden files. Send these 3 files to the loader folder. You should now have:
/mnt/.system/QTDownLoad/loader/lin_loader /mnt/.system/QTDownLoad/loader/loader.png /mnt/.system/QTDownLoad/loader/loader-sm.png
5. Send test.lin to phone i.e to MyPrograms.
6. Edit /mnt/.system/java/PlugCardDB using any unix compatible editor. If you have installed some apps into the card, you should have a pretty long file. Insert these lines into the end of the file:
[AppLinkRecord100001001] <- change this number so it doesn't conflict
(this number was tested by Thomas to work with more than 100 applications)
AllPosition = 200 <- change this number so it doesn't conflict
BigIcon = loader.png
Directory = loader
Exec = lin_loader
Group = 3
Icon = loader-sm.png
InstalledDate = 2005/2/19
JavaId = -1
Mime =
MpkgFile =
Name = LinLoader
OsVersion =
Position = 1
Rotation =
Shared = 0
Size = 24K
Type = 4
uid = 100001001 <- change this number to the same one above.
7. Restart the phone. You should now see a down arrow icon in tools with the name ``LinLoader. open file manager and tap and hold test.lin → open with select 'LinLoader', it should be at the end of the list. Check the 'always use the program to open this filetype'. Close and reopen file manager. If a new file 'test1.txt' has been created, your lin loader is installed successfully.
2. Using USBLAN for network access
There are 2 different ways to get USBLAN running on the phone. The way described here is for you if you have successfully installed Linloader like described before. Otherwise you can download the usbmode.mpkg file, copy it to the phone i.e. using Mass Storage mode and invoke the file from file manager to install this native application. A new icon will be created where you can switch between different USB-Modes . Detailed instructions can be found in the motorolafans.com forum, search for ``USBMode application
1. Create acmattach.lin to activate USBLAN
To get TCP/IP working over the USB cable you need USBLAN to be enabled inside the phone. You can enable it by following the next steps:
1. Use a unix-compatible editor and edit a script saying this: #!/bin/bash echo MotNet > /proc/usbd-switch
2. Save the script as acmattach.lin and copy it to the phone (i.e. to MyPrograms), using MassStorage like described above.
2. Install Belcarra USBLAN on the desktop computer
For Kernel 2.6 just load the ``usbnet.ko module into the kernel modprobe usbnet, it is already included. (Marcus tested it with Kernel 2.6.12 - prior Kernel versions might fail)
For Kernel 2.4 download, unpack and compile the USB-Lan module source usblan.1.0.0.7-linux-2.4.x.tar. Unpack the sources. Change to the directory of the sourcecode and enter make. Install the module by typing
insmod -f ./usblan.o vendor_id=0x22b8 product_id=0x600c
Check the lofgile /var/log/syslog, to make sure the driver loaded successfully.
I use insmod and option 'force' here because the driver has some problems loading with modprobe.
3. Activate USBLAN mode
1. Disconnect the USB cable
2. Changed the usb-mode to modem on the phone.
3. Execute acmattach.lin script to activate USBLAN (hold it with the pen - select execute with - linloader)
4. Connect the USB cable
Check the logfile /var/log/syslog, you should see something like this:
Sep 9 17:18:45 alf kernel: probe: BLAN
Sep 9 17:18:45 alf kernel: probe: claiming data interface: configuration: 0 interface: 0
Sep 9 17:18:45 alf kernel: probe: tx_size: 64 rx_size: 64
Sep 9 17:18:45 alf kernel: probe: tx_ep : 1 rx_ep : 2
Sep 9 17:18:45 alf kernel: probe: success 1.0.0
Sep 9 17:18:45 alf kernel: probe: return dcffc400
5. Enter the command ifconfig usb0 192.168.1.5 netmask 255.255.255.0 up to assign an IP-address to the desktop system. The phones IP-address is 192.168.1.2. ping 192.168.1.2 shoud give some response
We're done. From now on we should be able to telnet into the phone. telnet 192.168.1.2
3. Using Point-to-Point mode
1. Installing LEOPPP to establish Point-to-Point links over USB or Bluetooth
Download and copy the files for leoppp to the phone.
1. Switch the phone to MassStorage
2. Connect the USB cable
3. Mount the phones internal memory mount /dev/sda1 /mnt
4. Copy leoppp.tar to the root of the phone cp ./loeppp.tar /mnt
For unpacking and configuring Leoppp, we need to go into USBLAN mode:
1. Disconnect the phone
2. Switch the phone to Modem mode
3. Execute acmattach.lin with linloader like before to enable USBLAN mode
4. Connect the USB cable. Set up routing ifconfig usb0 192.168.1.5 netmask 255.255.255.0 up telnet 192.168.1.2 >root (no password)
5 Install Leoppp - detailed installation instructions are in the leoppp README file! Short instructions here:
Open a telnet session to the phone
cd /diska
tar xvf leoppp.tar → to create a leoppp folder with all files
rm leoppp.tar → to remove tar archive
On the phone - use the explorer to click LeoPopUp.jar file to install this java application. It is used to show messages to the user on the phone - select clickme.sh file use ``open with to permanently associate it with Linloader.
cd leoppp ./install.sh - will install the application
Restart the phone → you will have 4 new application icons
2. Prepare the desktop computer for Point-to-Point Protocol
1. Procedure for Bluetooth
Bluez and libraries need to be installed.
1. Check the file /etc/bluetooth/hcid.conf, the local device class should be 120100
2. Check the file /etc/bluetooth/pin, make sure a 4 digit pin is in there
3. On the phone - enable bluetooth
4. On the phone - enable discoverable
5. On the phone - select scan → accept to link to the host system, enter the pin from /etc/bluetooth/pin
6. Get root
7. enter hcitool scan to recover the BT-Address of the phone (i.e. 00:14:9A:48:92:14)
8. dund -p5 -P5 -c <bt_address_from_phone noauth local> starts the dial up daemon
9. O the phone - Accept SPP connection fro host
10. On the phone - select BTPPP icon to enable PPP over Bluetooth
11. ifconfig on the PC should now indicate a ppp0 device with peer IP 192.168.1.4
That's it. From now on we should be able to telnet into the phone. telnet 192.168.1.4
2. Procedure for USB
1. On the phone - switch USB mode to ``Modem
2. Connect the USB cable to the computer
3. Get root
4. Enter pppd /dev/ttyACM0 noauth local to start the PPP connection
5. On the phone - select USBPPP icon to enable PPP over USB
6. ifconfig on the PC should now indicate a ppp0 device with peer IP 192.168.1.2
That's it. From now on we should be able to telnet into the phone. telnet 192.168.1.2
4. Using Samba (SMB)
Accessing the phone's file system from a Linux host. Establish a PPP connection via bluetooth (or USB). Brows the SMB Filesystem by typing smb:192.168.1.4/system for /ezxlocal or smb:192.168.1.4/home for /diska in Konqueror.
Or use smbclient 192.168.1.4/home or smbclient 192.168.1.4/system to enter the interactive shell. For password just hit enter.
5. Using FTP for File transfer
Seems not to work. FTP is enabled in inetd.conf, however there seems to be no ftp daemon on the phone.
6. Using NFS to access files on a host computer
We assume NFS is already running on the host and the exported folder is /home/audio. A link to the phone has been established with one of the mentioned methods before (USB-cable or Bluetooh).
1. Log into the phone via telnet and create a directory for the nfs share i.e. mkdir -p /diska/music
2. Mount the remotely exported folder mount -n -t nfs -ohard,intr,nolock,rsize=4096,wsize=4096 192.168.1.1:/home/audio /diska/music (adjust the IP-address if necessary)
3. Check if it worked ls /diska/music
7. Using the phone in Modem mode
1. Modem mode via USB cable
Switch the phone to ``Modem mode and connect the USB cable. Watch the log file /var/log/syslog. A device called /dev/ttyACM0 should have been attached. This is the modem device which accepts AT commands.
Enter this device into the configuration of the ``gscmxx, gnokii, gammu or wammu'' or the software you want to use to control the phone. Unfortunately none of the mentioned programs fully support the Motorola command set because they are written for Siemens and Nokia phones. Just sending SMS seems to work for the moment.
2. Modem Mode via Bluetooth
Enable bluetooth and discoverable mode on the phone. Enter hcitool inq to recognize the bluetooth address ($btaddr)of the phone. Use spdtool search to get the channel for the SP service ($sp_channel). hcitool cc and hcitool con connects to the phone. rfcomm binds the channel to rfcomm0. Now you can send AT commands i.e. with one of the above mentioned programs on device /dev/rfcomm0.
hcitool inq sdptool search --bdaddr $btaddr SP hcitool cc $btaddr hcitool con rfcomm bind 0 $btaddr $sp_channel rfcomm show 0
You can also use this steps instead of dund to establish a PPP connection. pppd /dev/rfcomm0 noauth local & starts PPP connecion on the host in background and waits for response from the phone. Then select BTPPP icon on the phone to enable PPP over Bluetooth.
8. SyncML OTA - Data Synchronization
1. Sync4j Server
A description to sync with the Java program Sync4j can be found here: http://tud.at/programm/a768i.html Using the Motorola A768i smartphone with GNU/Linux . However I wasn't successful, the sync stops after a certain amount of records.
2. Multisync Server
Multisync is a GTK+ program to sync different devices. It is possible to sync with KDE Adressbook, Evolution, and others. However the syncml plugin of the standard distributions seem to be not compatible to A780 and according to www.multisync.org the used wbxml library (Wap Binary XML) seems to be bugy as well. A pached wbxml can be downloaded from multisync.org, see Documentation - HowTos - SyncML-HowTo. Alexandre d'Alton wrote a patch for the syncml plugin for Multisync Version 0.82. The patch can be found here: http://cache.gmane.org//gmane/comp/gnome/apps/multisync/user/2627-001.bin The mentioned files are also in my files section http://www.troodon.org/a780/files. I tested it and it works great.
Here is my setup to sync over bluetooth (Leoppp and Mack's connectivity pack is required)
a) Add a data network:
Add a new data network selecting Setup → Data Network → New
Profile name: BT-PPP GPRS Settings: APN: 192.168.1.3 Timeout: off
b) A780 SyncML OTA Setup:
Contacts: contacts Calendar: events Tasks: todo Server name: http://192.168.1.3:5079/sync User name: <your_user_name> Password: <your_password> Data connection: BT-PPP
Please note: You'll have to type the words contacts, events and todo into the line below the respective checkbox if enabled!
c) Connection setup on the phone:
Because the phone insists on sending all packets to the GPRS device you need to install Mack's connectivity pack. This makes it possible to divert the GPRS connection to other devices.
1. Install Mack's connectivity pack 2. Execute the leo_start_btppp.lin script from leoppp package to establish PPP connection. 3. Execute MackInetBT.lin script to let the GPRS device route through the bluetooth device.
d) Multisync Setup:
1. Compile and install the pached version of wbxml 2. Compile and install Multisync 0.82 3. Patch the syncml_plugin, compile and install it
Run Multisync and add a new synchronization pair, select SyncML for the first plugin. Select options of this plugin and
SyncML Server: accept connections http://<this computer>5079/sync SyncML login: <your_user_name> SyncML password: <your_password>
Select also Options → Disable string tables
The second synchronistation pair is up to your requirements, maybe you want to start testing with the backup plugin. Enable Data types Calendar, Addressbook and tasks. Now save and activate the setup. Multisync status for this synchronistation pair will indicate Waiting for changes. Now start synchronistation on the phone pressing SyncML OTA.
If you have problems, start multisync from a console and enable debug mode export MULTISYNC_DEBUG=1
9. Perl Interpreter for A780
Cross-compiling the Perl interpreter for A780 is still work in progress. You can download microperl http://www.troodon.org/a780/files/microperl from the files section, rename it to perl and copy it to /diska/bin/ on the phone. Microperl is a single executable minimalistic perl interpreter.
If someone has working perl scripts using microperl on the phone, please let me know!.