Showing posts with label гаджеты. Show all posts
Showing posts with label гаджеты. Show all posts

Saturday, 18 October 2008

Синхронизация с телефоном в Linux с помощью Gammu

Как известно ничего не даётся так легко и не ценится так высоко, как вовремя сделанная резервная копия. Резервным копированием данных с телефона я и решил заняться. Имеем телефон Nokia 6021, Debian Lenny, подключение через Bluetooth. Для решения задачи я выбрал утилиту gammu в Debian её можно легко поставить
#aptitude install gammu
далее необхоимо исправить файл ~/.gammurc (пример иожно найти в /usr/share/doc/gammu/examples/config/gammurc.gz ), я в него записал

[gammu]
port = 00:16:BC:D6:92:1D
model = 6021
connection = bluephonet
synchronizetime = yes
logfile = gammulog
logformat = textall
use_locking = yes
gammuloc = locfile
startinfo = yes
gammucoding = utf8
rsslevel = teststable
usephonedb = yes

обязательными опциями являются только port и connection.
connection это тип подключения, в нашем случае подключение происходит через bluetooth, вообще тип также зависит от телефона, соответствие можно установить, воспользовавшись этим документом. port это адрес устройства, в случае с bluetooth его можно получить коммандой hcitool scan, в случае кабеля это будет /dev/phone.
Нужно настроить привязку телефона и компьютера, описано тут
Далее начинаем использовать Gammu

SMS


$ gammu getsmsfolders
даёт папки с SMS.
SMS можно забэкапить командой
$ gammu backupsms имя_файла
при этом также можно удалить ВСЕ sms с телефона( очень полезная функция, в моём телефоне нет функции удаления всех sms и их приходится удалять по одной), также sms можно удалять по одной командой
$gammu deleteallsms номер_папки
восстановить sms можно командой
$gammu restoresms имя_файла

Phonebook


Вот ради чего всё и затевалось: бэкап телефонной книги
$ gammu backup имя_файла.vcf

Можно забэкапить все данные с телефона, в этом случае нужно выбрать произвольное расширение файла, но он будет бинарным,

.vcs - Только календарь(VCalendar)
.vcf - Только контакты(VCard file)
Другое расширение (Gammu text file): бэкапить всё

подробнее здесь
Восстановление данных командой
$ gammu restore имя_файла.vcf

Очистить память можно с помошью команды
$ gammu clearall


Filesystem


Для просмотра содержимого файловой системы команда
$ gammu getfilesystem

Для установки приложения
$ gammu nokiaaddfile Application имя_файла_без_расширения

Аналогичным образом можно закачивать картинки, мелодии и т.д. в этом случае команда будет выглядеть так
$ gammu nokiaaddfile Gallery|Gallery2|Camera|Tones|Tones2|Records|Video|Playlist|MemoryCard имя_файла_без_расширения

Подробности здесь

Sunday, 2 September 2007

Настройка GPRS подключения в Linux через bluetooth

Буду писать о граблях, на которые я наступил, настраивая GNU/Linux, начну с настройки bluetooth и gprs:

настройка bluetooth+gprs в GNU/Linux
OS Debian etch 4.0 GNU/Linux kernel 2.6.21
bluetooth dongle Belkin BU-2083
phone Nokia 6021
bluez-utils 3.7-1
Для работы bluetooth в GNU/Linux были использованы драйвера Bluez, поставляемые с ядром.Ставим драйвера apt-get install bluez-utils, также необходимо наличие pppd.
Работоспособность bluetooth можно определить с помощью команды(от рута)
# hciconfig -a
hci0: Type: USB
BD Address: 00:0A:3A:6F:0A:76 ACL MTU: 1017:8 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:7844 acl:182 sco:0 events:203 errors:0
TX bytes:3506 acl:161 sco:0 commands:61 errors:0
Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: ACCEPT MASTER
Name: 'malafeev-0'
Class: 0x000100
Service Classes: Unspecified
Device Class: Computer, Uncategorized
HCI Ver: 2.0 (0x3) HCI Rev: 0x2073 LMP Ver: 2.0 (0x3) LMP Subver: 0x4127
Manufacturer: Broadcom Corporation (15)
UP означает, что адаптер работает, если не работает то необходимо исправить файл
/etc/bluetooth/hcid.conf, вот то что у меня(я исправил autoinit,security,class 0x100 это компютер):

#
# HCI daemon configuration file.
#

# HCId options
options {
# Automatically initialize new devices
autoinit yes;

# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
#
security auto;

# Pairing mode
# none - Pairing disabled
# multi - Allow pairing with already paired devices
# once - Pair once and deny successive attempts
pairing multi;

# Default PIN code for incoming connections
passkey "1234";
}

# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "%h-%d";

# Local device class
class 0x100;

# Default packet type
#pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable;
pscan enable;

# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept,master;

# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
lp rswitch,hold,sniff,park;
}


Перезапускаем сервисы Bluetooth
# /etc/init.d/bluetooth restart
Restarting bluetooth: hcid sdpd rfcomm.

От обычного пользователя даём команду :
$ hcitool scan
Scanning ...
00:16:BC:D6:92:1D Nokia 6021
записываем mac-адрес телефона.
Связь с телефоном можно проверить так:
# l2ping 00:16:BC:D6:92:1D
Ping: 00:16:BC:D6:92:1D from 00:0A:3A:6F:0A:76 (data size 44) ...
0 bytes from 00:16:BC:D6:92:1D id 0 time 31.91ms
0 bytes from 00:16:BC:D6:92:1D id 1 time 9.62ms
0 bytes from 00:16:BC:D6:92:1D id 2 time 8.39ms

Список поддерживаемых профилей bluetooth можно получить с помощью команды:
$ sdptool browse phone_mac, где phone_mac-mac адрес телефона.

При связывании телефон запросит pin, этот-же pin необходимо ввести в компьютер, в старых версиях bluez использовалась утилита pin_helper, путь к которой прописывался в файле /etc/hcid.conf, в новых версиях используется утилита passkey-agent, идём в /usr/share/doc/bluez-utils/examples, распаковываем и собираем утилиту(от рута, понадобится пакет libdbus-1-dev), далее запускаем её
./passkey-agent --default 1234, она будет висеть и передавать в bluez указанный pin.


Далее начлось самое интересное, необходимо связать телефон с /dev/rfcommX , где X-номер порта, у меня X=0, это можно сделать двумя способами:
1) с помощью правки файла /etc/bluetooth/rfcomm.conf(необходимо внести mac-адрес телефона), что я и сделал, затем, выполнил команду
# echo ATZ > /dev/rfcomm0, телефон запросил pin, я ввёл 1234, телефон сказал подключено затем через несколько секунд отключено.
2)с помощью команды rfcomm connect :
rfcomm connect rfcomm0 00:16:BC:D6:92:1D 1
при первом подключении телефон запросит pin(passkey-agent должен быть запущен)

Далее необходима настройка pppd:
1)В файл /etc/ppp/peers/mts записываем
/dev/rfcomm0 57600
connect '/usr/sbin/chat -v -f /etc/ppp/chat/mts'
noauth
defaultroute
lock
debug
novjccomp
nopcomp
noaccomp
nodeflate
novj
nobsdcomp
default-asyncmap
ipcp-accept-local
ipcp-accept-remote
usepeerdns
user mts
nodetach
2) в /etc/ppp/chat/mts записываем
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATH
OK ATE1
OK AT+CGDCONT=1,"IP","internet.mts.ru"
OK ATD*99***1#
CONNECT
3) в файл /etc/ppp/pap-secrets записываем
mts ppp0 "mts"

подключаемся pppd call mts(от рута)