Portál AbcLinuxu, 3. května 2025 08:50

OBEX a K300i přes IrDA i kabel

17.7.2007 10:50 | Přečteno: 3258× | poslední úprava: 10.8.2007 09:51

Motivací je umožnit přenos souborů mezi mobilním telefonem Sony Ericsson K300i pomocí OBEX (snažší než s použitím ircp) přes IrDA nebo datový kabel (USB-RS232 převodník) a počítačem (notebook HP Compaq nx6110 s Ubuntu 7.04 GNU/Linux). Tento zápis volně navazuje na zápis "IrDA port".

Popis mobilního telefonu Sony Ericsson K300i

Sizes 99.9 x 45.2 x 19.4 mm
Weight 85 g
Networks GSM 900, GSM 1800, GSM 1900
GPRS Class 8 (4+1 slots), 32-40 kbps
IrDA port
Data connector (compatible with Ericsson/Sony Ericsson T39, R320, R520, T65, T68, T68i, T200, T210, T230, T290i, T300, T600, T610, T630, Z200, Z600, P800, P900, P910i, K300i, K500i, K508i, K600i, K700i, S700i, Z800i, J300i)
External antena connector
Modem
WAP 1.2.1, WAP 2.0 XHTML
Memory 12 MiB
Sound Music tones (MP3/AAC), Polyphonic Sounds 40 voices
Screen 65,536 color STN, 128x128 pixel, 29 x 29 mm
Vibration
Java MIDP 2.0
Battery (BST-30), 670 mAh Li-Ion, stand-by time up to 300 h, talk time up to 7 h
Memory Phonebook 500 x 8 fields, Photo call, Call records 30 received, dialed and missed calls
Messaging SMS, SMS long, EMS, MMS, Email, Instant Messaging, Predictive text input, Sound recorder
Camera VGA, 640x480 pixels, video record, 4x digital zoom
Alarm clock, Business card exchange, Calculator, Calendar, Conference calls, Contacts, File manager, PIM Sync, Speakerphone, Stopwatch, Tasks, Timer, MP3/MPEG4 player, Sync ML, T9, Calculator, Unit converter, Image viewer, editor, Scheduler, Voice dial, Voice memo
Controls Camera button, Joystick, Menu shortcuts, Speed dialling, Picture wallpaper, Wallpaper animation, Video streaming
Default Phone lock code is 0000 (four zeros).

Popis datového kabelu

Datový kabel Mobileaction MA-8910P (USB Data Cable + Programmable Charger) for Sony Ericsson K300i, J300i, K508i, K500i, F500i, S700i, Z600, Z1010, T610, T630, V800, Z800i, K700i T290i, K600i, V600i, K608i, and more. Balení krom kabelu obsahuje i CD s nepoužitelným proprietárním SW. Cena zhruba 600,- Kč. Jde pouze o USB-RS232 pl2303 převodník. Identifikace na počítači (zkrácené výpisy):

mermar@gati:~$ dmesg | tail -n 4
[  288.948000] usb 1-1: new full speed USB device using uhci_hcd and address 5
[  289.108000] usb 1-1: configuration #1 chosen from 1 choice
[  289.112000] pl2303 1-1:1.0: pl2303 converter detected
[  289.112000] usb 1-1: pl2303 converter now attached to ttyUSB0

mermar@gati:~$ lsusb
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

mermar@gati:~$ cat /proc/bus/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=067b ProdID=2303 Rev= 3.00
S:  Manufacturer=Prolific Technology Inc.
S:  Product=USB-Serial Controller
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=pl2303
E:  Ad=81(I) Atr=03(Int.) MxPS=  10 Ivl=1ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Na jedné straně kabelu je konektor mobilního telefonu. Na druhé straně USB-A(M) konektor, v jehož velkém těle je umístěna elektronika. Velké tělo brání zapojení více USB konektorů vedle sebe na straně počítače. Z toho důvodu je vhodné použít ještě krátkou USB prodlužovačku.

USB kabel může dobíjet telefon. Výrobce dodává proprietární software, který zapne dobíjení (sám od sebe se kabel jako nabíječka nechová). Pro GNU/Linux lze nalézt zdrojový kód malého prográmku (svobodný software), který má stejnou funkčnost.

Program zkompilujeme příkazem gcc -Wall -o charge charge.c a spustíme příkazem sudo ./charge /dev/ttyUSB0

Příkaz je nutné spustit po každém odpojení kabelu od počítače i telefonu (pokud kabel zůstane připojen alespoň k jednomu zařízení, bude si nastavení napájení pamatovat).

Program by měl fungovat s kabely MA-8910P, MA-8730P, MA-8720P, MA-8230P, MA-8020P, MA-8250P, MA-8260P, MA-8270P, MA-8280P, MA-8290P, MA-8830P, MA-8310P, MA-8320P.

Instalace obexftp

root@gati:~# apt-get install obexftp

Pro informaci uvádím verzi programu obexftp.

mermar@gati:~$ obexftp --version
ObexFTP 0.19

Přenos souborů pomocí obexftp přes IrDA

Zprovozníme IrDA (viz. minulý díl blogu).

Vyzkoušíme interaktivně zda OBEX funguje. Příkaz c (následovaný stiskem klávesy ENTER) se připojí k druhému zařízení. Příkaz q ukončí program obex_test.

mermar@gati:~$ obex_test
Using IrDA transport
OBEX Interactive test client/server.
> c
Connect OK!
Version: 0x10. Flags: 0x00
> q

Výpis kořenového adresáře. Obexftp má velmi podobné příkazy jako klasické FTP. Mobilní telefon se v tomto případě chová obdobně jako FTP server, ke kterému přistupujeme pomocí klienta obexftp. Někdy příkaz obexftp selže a je třeba jej opakovat.

mermar@gati:~$ obexftp --irda --list
Connecting...done
Receiving "(null)"... <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
 XML Coder, May 24 2005, 21:06:32, (C) 2001 Sony Ericsson Mobile Communications AB 
-->
<folder-listing version="1.0"><folder name="Pictures"/>
<folder name="Sounds"/>
<folder name="Themes"/>
<folder name="Videos"/>
<folder name="Other"/>
</folder-listing>
done
Disconnecting...done

Výpis (prázdného) adresáře Other.

mermar@gati:~$ obexftp --irda --list Other
Connecting...done
Receiving "Other"... <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
 XML Coder, May 24 2005, 21:06:32, (C) 2001 Sony Ericsson Mobile Communications AB 
-->
<folder-listing version="1.0"><parent-folder/>
<file name="todo." size="854"/>
<file name="gammu." size="18392"/>
<file name="gammurc." size="2226"/>
</folder-listing>
done
Disconnecting...done

Upload dvou souborů do telefonu. Velkou výhodou obexftp oproti ircp je, že lze přenášet soubory a telefon nevyžaduje potvrdit upload každého souboru. Downloadovat soubory z telefonu lze, aniž na něj sáhnete.

mermar@gati:~$ obexftp --irda --put file1 file2
Connecting...done
Sending "file1"...\done
Sending "file2"...|done
Disconnecting...done

Přesvědčíme se, že jsme soubory do telefonu nahráli (telefon soubory přesunul do složky Other a přejmenoval je na file1_2. a file2.).

mermar@gati:~$ obexftp --irda --list Other
Connecting...done
Receiving "Other"... <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
 XML Coder, May 24 2005, 21:06:32, (C) 2001 Sony Ericsson Mobile Communications AB 
-->
<folder-listing version="1.0"><parent-folder/>
<file name="file2." size="1024"/>
<file name="file1_2." size="1024"/>
</folder-listing>
done
Disconnecting...done

Stáhneme soubor file2. do počítače.

mermar@gati:~$ obexftp --irda --get Other/file2.
Connecting...done
Receiving "Other/file2."... Sending "Other"... done
\done
Disconnecting...done

Obexftp zvládá ještě další příkazy jako chdir, mkdir, getdelete, move, atd. Příkazy lze uvádět i krátkými přepínači. Doporučuji k prostudování dokumentaci. Pro upload souborů lze použít pathname expansion (souborové nahrazení, které provádí Bash). Nelze jej však použít pro download souborů. Je to naprosto zřejmé, ale raději to zde uvádím.

Přenos souborů pomocí obexftp přes datový kabel

Obexftp by měl fungovat i přes datový kabel k telefonu. Dlouho jsem to marně zkoušel, až po vypnutí a zapnutí telefonu začal fungovat. Zapojíme datový kabel do počítače a do zapnutého telefonu. Interaktivně vyzkoušíme zda OBEX funguje.

mermar@gati:~$ obex_test -r /dev/ttyUSB0
OBEX to R320 on /dev/ttyUSB0!
cobex_open(): 
OBEX Interactive test client/server.
> c
cobex_connect(): 
cobex_init(): 
cobex_do_at_cmd(): 
cobex_do_at_cmd(): Sending command ATZ
cobex_do_at_cmd(): 
cobex_do_at_cmd(): Sending command AT*EOBEX
cobex_write(): 
cobex_write(): Wrote 16 bytes (expected 16)
cobex_handle_input(): 
cobex_handle_input(): Read 7 bytes
[FFFFFFA0][0][7][10][0][11][14]
Connect OK!
Version: 0x10. Flags: 0x00
> q

Vypíšeme obsah kořenového adresáře. Jak je vidět, práce přes datový kabel je shodná jako práce přes IrDA až na jednu výjimku. Místo přepínače --irda používáme přepínač --tty /dev/ttyUSB0, kde /dev/ttyUSB0 je sériový port, který je vytvořen po připojení datového kabelu k počítači.

mermar@gati:~$ obexftp --tty /dev/ttyUSB0 --list
Connecting...done
Receiving "(null)"... <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
 XML Coder, May 24 2005, 21:06:32, (C) 2001 Sony Ericsson Mobile Communications AB 
-->
<folder-listing version="1.0"><folder name="Pictures"/>
<folder name="Sounds"/>
<folder name="Themes"/>
<folder name="Videos"/>
<folder name="Other"/>
</folder-listing>
done
Disconnecting...done

Některé zkratky

FTP = File Transfer Protocol
OBEX = OBject EXchange protocol

Obrázky

Obrázek 1 - mobilní telefon Sony Ericsson K300i a mince 1 €.
Obrázek 2 - datový kabel (USB-RS232 převodník).

Odkazy

OpenOBEX
Kabel Mobileaction jako nabíječka
Blog o IrDA port (USB dongles)

       

Hodnocení: 90 %

        špatnédobré        

Obrázky

OBEX a K300i přes IrDA i kabel, obrázek 1 OBEX a K300i přes IrDA i kabel, obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Ondřej Kuda avatar 17.7.2007 12:42 Ondřej Kuda | skóre: 27 | blog: obcasny_blog
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Odpovědět | Sbalit | Link | Blokovat | Admin
Pekne, nepremyslite o prepsani do sekce HW?
Milhouse avatar 17.7.2007 14:34 Milhouse | skóre: 15 | blog: MilhouseLand
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Odpovědět | Sbalit | Link | Blokovat | Admin
Kámošův K500i se v pracovním notebooku s Kubuntu 7.04 dobíjí normálně přes datový USB kabel. Nikde jsem nic nenastavovat, prostě píchnu a data a energie se tlačí do telefonu. :) Mile mě to překvapilo...
"...naše práce není vidět, ale je důležitá!"
17.7.2007 15:08 Petr Beran
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Běžně se tak podle mé zkušenosti chovají značkové kabely od výrobce telefonu. Můj K750i se s originálním kabelem taky normálně dobíjí hned po připojení. Kabely od MA ale takto nefungují, potřebují k tomu přibalenou aplikaci pod Windows.
Beer: The cause of, and solution to, all of life's problems.
18.7.2007 01:34 Ivanhoej | skóre: 26 | blog: ss2_Debian | Bratislava
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Odpovědět | Sbalit | Link | Blokovat | Admin
Vie niekto z K750i/W800 dostat Phonebook do pocitaca, teda zalohovat telefonne cisla. Posielanie na kartu ide normalne ako USB storage, ale k zoznamu sa neviem dostat.
18.7.2007 10:25 eXEden | skóre: 13 | blog: Plkoviny | Praha
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Ja to zkoušel a nakonec jsem skončil u toho, že si celý seznam pošlu jako vCard přes Bluetooth a naimportuju do KAddressBook. Opensync se mi nepodařilo rozběhat
18.7.2007 12:40 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Teď jsem zkusil multisync s K300 a jde to. Je potřeba akorát nastavit vstupní kódování na UTF-7.
18.7.2007 12:48 Ivanhoej | skóre: 26 | blog: ss2_Debian | Bratislava
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Mohol by si blizsie vysvetlit co k tomu treba je to nolmalne synchronizacia?
18.7.2007 13:59 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: OBEX a K300i přes IrDA i kabel
Nainstaloval jsem všechny balíčky okolo multisync (kromě -plugin-kdepim ;-)), pak jsem v gnomím menu spustil multisync a ten už mě vedl za ručičku.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.