Sony Ericsson K750i + GNU/Linux (Gentoo)
Przygotowanie 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.
maj 17th, 2009 at 11:44
niema to jak windows
wszystko gra bez problemów :)
maj 17th, 2009 at 22:19
No w Linuksie też gra bez problemów, jak widać ;)