Жизнь с Nokia E51 в Linux
Собственно попробую с аккумулировать знания.
Nokia E51, что-то вроде бизнесфона, или телефона с функциями смартфона. Внутри стоит Symbian 9.2, интерфейсов для связи куча: WiFi, Bluetooth, IRda, miniUSB.
Когда телефон подключаешь к компу по miniUSB (проверял только на нем пока) предлагает два режима
- PC Site
- Сторидж
Второй доступен если есть флешка. ну а теперь помеленьку…
Доступ к памяти
Тут следует разделить два типа памяти: внутренняя память телефона и флешпапять, для использования второй достаточно подключить USB кабель и переключить телефон в режиме сториджа, телефон будет обнаружен в системе как Flash память.
Для доступа к внутренней памяти телефона используется obexftp что находится в одноименном пакете (в ArchLinux есть).
Как работать с ним подробности рассказывать не буду - читайте доки, если потребуется. Лично я использовал к нему front-end под названием qnokiacommander, PKGBUILD для этого пакета лежит на AUR.
Все управление осуществляется просто и без напряга, разобраться легко.
Но возник один нюанс: не запускается от пользователя… решил проблему при помощи UDEV, создал файл /etc/udev/rules.d/99-cell-phones.rules
со следющим содержимым:
ACTION!="add", GOTO="cell_phones_rules_end"
ENV{DEVTYPE}=="usb_device", GOTO="cell_phones_create_usb_dev"
SUBSYSTEM=="usb_device", GOTO="cell_phones_rules_begin"
SUBSYSTEM!="usb_device", GOTO="cell_phones_rules_end"
# Kernel >= 2.6.22 jumps here
LABEL="cell_phones_create_usb_dev"
# For Linux >= 2.6.22 without CONFIG_USB_DEVICE_CLASS=y
# If the following rule does not exist on your system yet, uncomment it
# ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664", OWNER="root", GROUP="root"
# Kernel < 2.6.22 jumps here
LABEL="cell_phones_rules_begin"
# Nokia E51
ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0042", MODE="0664", GROUP="uucp", ENV{cell_phones_matched}="yes"
# The following rule will disable USB autosuspend for the device
ENV{cell_phones_matched}=="yes", RUN+="/bin/sh -c 'test -e /sys/$env{DEVPATH}/power/level && echo on > /sys/$env{DEVPATH}/power/level'"
LABEL="cell_phones_rules_end"
файлик основан на правилах из комплекта sane
после чего сделал команду от рута:
[~]# udevcontrol --reload_rules
пользователя добавил в группу uucp
(можете сами выбрать более подходящую, и поменять .rules файлик, но мне uucp понравился :))
перелогиниться, переподключить телефон и, ура, все работает, можно записывать и считывать файлы с телефона, создавать удалять каталоги.