Sony Ericsson K750i + GNU/Linux (Gentoo)

phonePrzygotowanie Gentoo do współpracy z SE K750i nie jest trudne, jednak szukanie informacji na ten temat w sieci może być czasochłonne, postaram się więc umieścić parę porad dotyczących wymiany plików, udostępniania internetu przez GPRS, odbierania i wysyłania SMS oraz zdalnego sterowania.

Poniższa konfiguracja dotyczy SE K750i, Gentoo Linux i operatora sieci komórkowej Orange. Jednak prawdopodobnie konfiguracja podobnego modelu telefonu w innej sieci komórkowej i innej dystrybucji Linuksa będzie różniła się o mały epsilon.

Wymiana plików przez kabel USB

Po podłączeniu telefonu do komputera przez kabel USB, jądro Linuksa automatycznie rozpoznaje urządzenie, które można podmontować w taki sam sposób, jak byśmy podłączali do komputera pendrive. Uzyskujemy w ten sposób dostęp do systemu plików podłączonej karty pamięci. Niestety, nie udało mi się znaleźć informacji, jak w podobny sposób podmontować pamięć telefonu.

Udostępnianie internetu przez GPRS

Po podłączeniu kabla USB powinien zostać utworzony plik /dev/ttyACM0. Jeśli taki plik nie istnieje, należy wkompilować do jądra Linuksa obsługę ACM (CONFIG_USB_ACM).

Przyda nam się pakiet ppp, jeśli go nie mamy, instalujemy go oczywiście poleceniem:

# emerge ppp

Następnie tworzymy dowiązanie net.ppp0 w katalogu /etc/init.d:

# cd /etc/init.d
# ln -s net.lo net.ppp0

Edytujemy plik /etc/conf.d/net, dopisując coś na kształt:

config_ppp0=( "ppp" )
link_ppp0="/dev/ttyACM0"
pppd_ppp0=(
'connect "/usr/sbin/chat -v -f /etc/chatscripts/orange-gprs"'
'disconnect "/usr/sbin/chat -v -f /etc/chatscripts/orange-gprs-off"'
'/dev/ttyACM0'
'115200'
'crtscts'
'local'
'noipdefault'
'usepeerdns'
'defaultroute'
'default-asyncmap'
'noccp'
'novj'
'nobsdcomp'
'novjccomp'
'persist'
'noauth'
)

Następnie tworzymy plik /etc/chatscripts/orange-gprs zawierający następującą treść:

TIMEOUT 10
ECHO ON
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
'' 'rATZ'
OK AT+CGDCONT=1,"IP","internet"
OK ATD*99#
CONNECT ``

Oraz plik /etc/chatscripts/orange-gprs-off:

ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "K"
"" "+++ATH"

Potrzebujemy jeszcze nazwę użytkownika i hasło umieścić w pliku /etc/ppp/chap-secrets:

"internet" * "internet"

Pozostaje nam tylko uruchomić skrypt, by uzyskać połączenie:

# /etc/init.d/net.ppp0 start

Przy okazji warto na bieżąco śledzić systemowe logi, by sprawdzić, czy wszystko toczy się po naszej myśli. Połączenie przerywamy oczywiście komendą:

# /etc/init.d/net.ppp0 stop

Dostęp do książki adresowej i wiadomości SMS

Do synchronizacji adresów i SMSów możemy użyć graficznego programu kmobiletools, który jest banalnie prosty w obsłudze. Należy się jedynie upewnić, że konfigurując urządzenie podaliśmy odpowiednią ścieżkę do urządzenia (/dev/ttyACM0).

# emerge kmobiletools

Bluetooth

Do połączenia komputera z telefonem przez Bluetooth użyłem adaptera D-Link DBT-122. Należy się upewnić, że w jądrze Linuksa mamy wkompilowane wszystko co jest konieczne (do obsługi wspomnianego adaptera używam modułu btusb). Należy również przygotować Gentoo do obsługi standardu Bluetooth. Dodajemy flagi “bluetooth” i “old-daemons” do USE i instalujemy następujące pakiety:

# emerge bluez-libs bluez-utils bluez-firmware obexftp

Po włożeniu adaptera do slotu USB automatycznie powinien uruchomić się skrypt /etc/init.d/bluetooth. Aby uzyskać adres sprzętowy telefonu, należy (oczywiście przy BT włączonym w telefonie) wykonać skanowanie poleceniem:

# hcitool scan

Mając ten adres możemy użyć na przykład programu obexftp-frontend do bezprzewodowej wymiany plików, który jest de facto nakładką graficzną programu obexftp napisaną w Javie.

Aby zestawić połączenie przez GPRS za pomocą BT zamiast kabla USB, należy nawiązać połączenie. Upewniamy się, że w /etc/conf.d/bluetooth widnieją następujące opcje:

RFCOMM_ENABLE=false
RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
HCID_ENABLE=true

Po czym do pliku konfiguracyjnego /etc/bluetooth/rfcomm.conf dopisujemy:

rfcomm0 {
        bind yes;
        device 00:XX:XX:XX:XX:XX; # adres sprzetowy telefonu
        channel 1;
}

Teraz poleceniem `rfcomm -S connect 0` nawiązujemy połączenie z telefonem. Jednak po co robić to ręcznie, trzymajmy się filozofii Gentoo. Tworzymy więc plik /etc/init.d/phone:

#!/sbin/runscript
depend() {
        need bluetooth
}

start() {
        ebegin "Starting phone"
        start-stop-daemon --start --quiet -b -n rfcomm \
                --startas /usr/bin/rfcomm -- -S connect 0
        eend $?
}

stop() {
        ebegin "Shutting down phone"
        start-stop-daemon --stop --quiet -b -n rfcomm
        eend $?
}

Jeśli wszystko pójdzie po naszej myśli, po wydaniu polecenia `/etc/init.d/phone start` zostanie utworzony plik /etc/rfcomm0. Teraz możemy odwoływać się do niego identycznie jak do /etc/ttyACM0. Zamieniamy więc wszystkie ttyACM0 na rfcomm0 w pliku /etc/conf.d/net.

Zdalne sterowanie przez Bluetooth odbywa się po wydaniu polecenia (wprowadzając poprawny adres sprzętowy telefonu):

# hidd --connect 00:??:??:??:??:??

Dostęp do książki adresowej i SMS odbywa się analogicznie jak w przypadku połączenia przez kabel, należy jedynie w oknie konfiguracyjnym kmobiletools zmienić adres urządzenia z /dev/ttyACM0 na /dev/rfcomm0.

Wpis został skomentowany 2 razy:

  1. adamp4 Says:

    niema to jak windows
    wszystko gra bez problemów :)

  2. chomzee Says:

    No w Linuksie też gra bez problemów, jak widać ;)

Skomentuj