The informations in this document apply to Sony Ericsson T610 and T630; you can find useful links and informations for other models as well. I'm writing this paper as I've had lots of troubles in getting the phone working with Linux and finding related docs on the web; of course, now that I got it working I'm finding all the docs I'd have needed... Feel free to contact me for questions, errors, new links or software.
Please note that green boxes apply to (some) Toshiba Satellite only.
As a first thing disable any serial port with setserial /dev/ttySx uart none; as I've got no serial ports on this laptop I'm not too sure if you have to disable them all, but to follow the most secure way just do it ;) This is because IrDA and serial controllers could share base addresses and thus conflict.
You will need kernel support for your IrDA controller and IrCOMM; you can find these options in the kernel configuration menu Device Drivers -> Networking support -> IrDA (infrared) subsystem support. If you don't know your controller chip you can find it with findchip -v (included in IrDA-utils).
If you have a SMC chip, you need some software to enable it, as the BIOS doesn't. You can find it at http://www.janerob.com/rob/ts5100/irda.html or http://libxg.free.fr/irda/lib-irda.html. The program is to be launched every time you modprobe the smc module. See below about modules configuration.
Now you can load the modules and set up IrCOMM connection:
modprobe smsc-ircc2 modprobe ircomm-tty irattach irda0 -s
Use your module instead of smsc-ircc2.
Now you should see an irda0 interface via ifconfig and ircomm# devices in /dev.
irda0 Link encap:IrLAP HWaddr 30:3a:30:38
UP RUNNING NOARP MTU:2048 Metric:1
RX packets:0 errors:238 dropped:238 overruns:0 frame:0
TX packets:240 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:8
RX bytes:0 (0.0 b) TX bytes:7446 (7.2 KiB)
Interrupt:3 Base address:0x130
|
Try to see if it works with irdadump, which will sniff any packet on the interface. You should read some lines regarding your computer informing other devices about its presence
01:21:33.405394 xid:cmd 2ce874b7 > ffffffff S=6 s=0 (14) 01:21:33.495375 xid:cmd 2ce874b7 > ffffffff S=6 s=1 (14) 01:21:33.585363 xid:cmd 2ce874b7 > ffffffff S=6 s=2 (14) 01:21:33.675348 xid:cmd 2ce874b7 > ffffffff S=6 s=3 (14) 01:21:33.765337 xid:cmd 2ce874b7 > ffffffff S=6 s=4 (14) 01:21:33.855319 xid:cmd 2ce874b7 > ffffffff S=6 s=5 (14) 01:21:33.945309 xid:cmd 2ce874b7 > ffffffff S=6 s=* flyback hint=0400 [ Computer ] (23) |
When you'll activate your phone IrDA you should notice also its packets, like
06:41:42.185505 xid:rsp 62f9eab1 < 4b51d3a2 S=6 s=0 T630-T628 hint=9124 [ PnP Modem IrCOMM IrOBEX ] (26) |
Now the last step. Because of a bug in T630 (and T610 too) you have to echo 1 > /proc/sys/net/irda/max_tx_window to reduce the transmit window. Some people suggest to modify max_baud_rate to 115200 and max_tx_data_size to 2000, but it seems I don't need them.
It should work now! Go to the last section and try some software to check if all is OK, then proceed to the last configuration step, storing your setting.
Of course you should repeat the steps above every time you reboot your system, and this isn't what you want. You can automate the procedure on a Debian system proceeding as follows (it could vary a little on other distributions).
At first configure the modules. Open /etc/modprobe.d/irda with your favourite text editor and add the lines
alias irda0 smsc-ircc2 install smsc-ircc2 /sbin/modprobe --ignore-install smsc-ircc2; \ /sbin/modprobe ircomm-tty; echo 1 > /proc/sys/net/irda/max_tx_window
using the name of your module instead of smsc-ircc2.
install smsc-ircc2 /usr/local/sbin/smcinit; /sbin/modprobe --ignore-install smsc-ircc2;\ /sbin/modprobe ircomm-tty; echo 1 > /proc/sys/net/irda/max_tx_windowas you want to automatically load the chip initializer before inserting the module. Don't forget to use the right path for your system!
Finally, configure irda-utils. In Debian, dpkg-reconfigure irda-utils: use simple irda0 as the serial device (not /dev/irda0), enable discovery mode, choose if you'd like to start it at boot time or not. Personally, I prefer not to activate it to save battery: I lauch it with irattach irda0 that loads our aliased module and IrCOMM and sets up the other stuff.
With this programs you can:
UPDATE: I recently discovered that you can browse the phone's filesystem, or at least some parts of it. For details see just below in the obexftp section.
There are many programs for phones that support AT commands and OBEX standard.
| OpenOBEX tools |
|---|
The Debian package is openobex-apps.You will find:
ircp package) to send and receive files.UPDATE obexftp now works! (partially) Here are the facts.
|
| GSMlib |
|---|
The Debian package is gsm-utils.You will find some tools to get phone info, manage and send SMSs, manage the phonebook. The latter doesn't work very well for me, is really slow (6-7 minutes to get all contacts). If you don't have this problem please let me know. |
| MultiSync |
|---|
The Debian package is multisync, plug-ins available in libmultisync-plugin-*.A marvellous program to sync data. You can choose two plug-ins, one for each end of the connection. I suggest IrMc Mobile plugin which will connect to the phone, and at the other end one of Ximian Evolution plugin or Backup plugin. They will synchronize phonebook and calendar. |
| btcid |
|---|
|
Unofficial Debian packages at http://0x63.nu/deb/ This is a nice program that shows an OSD (on screen display) with the caller number and name. Is can also launch a command on incoming or outgoing calls. |
I have to mention also gnokii and gammu with the respective GUIS xgnokii and wammu. Unfortunately they don't work very well for me (gammu can't do almost anything yet).
| leif |
|---|
|
There are unofficial Debian packages at http://debian.severin.olloz.net/. With leif you can check battery charge and signal quality, manage both SIM and internal phonebook and make the phone dial a number, manage and send SMSs, upload files. |
| tsemgr |
|---|
|
No Debian package available. Similar features as leif, can also make your phone a remote to control some programs (xmms...) |
| Myericsson |
|---|
|
No Debian package available. I haven't tried it yet. Written for Ericsson T39, maybe it's somewhat compatible. |
| MyT68 |
|---|
|
No Debian package available. A tool to create T68i themes. Maybe they're compatible, I haven't tried it yet. |
| Remote control |
|---|
|
No Debian package available. A tool to use your phone as a remote. Never tried. Maybe it works only via Bluetooth. |
| K68 |
|---|
|
No Debian package available. Another manager for T68i, T610, T630. Early development stage, only sends files and gets phone info. |
Your phone will behave just like a normal modem, so you can use any connection tool (eg wvdial, pppconfig...). You need of course a GPRS enabled SIM, and some data from your operator: the APN (Access Point Name) or an initialization string containing it, and if your network requires them also a username, a password, an IP and a DNS address.
Once you've collected these data you have to set an account on your phone, in the Connectivity section (you can find the procedure on the manual). Remember the CID (Connection ID) of the connection, as you will need it for the chat script. You are now ready to set your dialer: I will propose an example based on pppconfig and Wind (an Italian operator).
| /etc/chatscripts/gprs |
|---|
# Abort strings ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED # Modem init '' ATZ # Selection of the PDP Context (eg here you choose which of the data connections # set on the phone you want to use). The parameters are CID, protocol (IP or PPP), # APN. If your provider gives you a string, use that one (with the right CID). '' 'AT+CGDCONT=3,"IP","internet.wind",,0,0' # QoS requirements: requested and minimum acceptable '' 'AT+CGQREQ=1,0,0,0,0,0' '' 'AT+CGQMIN=1,0,0,0,0,0' # "Dial string". 3 is the CID. '' 'ATD*99***3#' CONNECT \d\c |
| /etc/ppp/peers/gprs |
|---|
# Almost self-explainatory. Details on pppd manpage. # Note that I don't need username and password. hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs" debug /dev/ircomm0 115200 defaultroute noipdefault remotename gprs ipparam gprs usepeerdns /dev/ircomm0 # Prevent dial line checking via lcp packages, as it # doesn't work with T630 and causes it to disconnect lcp-echo-interval 0 lcp-echo-failure 0 |
pon gprs and it should work.
Here are some known T630 internal files (from obexftp docs).
| Filename | Content | Methods |
|---|---|---|
| telecom/devinfo.txt | Information hardware | GET |
| telecom/rtc.txt | The Real Time Clock | GET/PUT |
| telecom/pb.vcf | Level 2 access (Access | GET/PUT |
| telecom/pb/luid/.vcf | Add new entry | PUT |
| telecom/pb/0.vcf | Own business card | GET/PUT |
| telecom/pb/###.vcf | Level 3 static index access | GET/P UT |
| telecom/pb/luid/*.vcf | Level 4 unique index access | GE T/PUT |
| telecom/pb/info.log | Supported properties and memory info | GET |
| telecom/pb/luid/###.log | Change log | GET |
| telecom/pb/luid/cc.log | Change counter | GET |
| telecom/cal.vcs | Calendar Level 2 access | GET/PUT |
| telecom/cal/luid/.vcs | Add new entry | PUT |
| telecom/cal/###.vcs | Level 3 static index access | GET/ PUT |
| Telecom/cal/luid/*.vcs | Level 4 unique index access | G ET/PUT |
| Telecom/cal/info.log | Supported properties and memory info | GET |
| Telecom/cal/luid/###.log | Change log | GET |
| Telecom/cal/luid/cc.log | Change counter | GET |
And the list of available phonebook and SMS stores (from gsmpb manpage and direct AT interrogation):
| Code | Meaning | Phonebook/SMS |
|---|---|---|
| ME | Phone internal store | PB and SMS |
| SM | SIM internal store | PB and SMS |
| DC | Outgoing calls | PB |
| MC | Lost calls | PB |
| RC | Received calls | PB |
| LD | SIM last calls | PB |
| FD | Unknown | ? |
| MV | Unknown | ? |
| HP | Unknown | ? |
| BC | Unknown | ? |
Here are some links I found useful. I'd like to thank expecially Emanuele Aina, whose page let me discover the IrDA bug ;)
Alessandro Dalvit, last changed fri 2004/08/13