Hatred's Log Place

DON'T PANIC!

zhizn_s_nokia_e51_v_linux

Jul 27, 2008 - 2 minute read

Жизнь с 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 понравился :))

перелогиниться, переподключить телефон и, ура, все работает, можно записывать и считывать файлы с телефона, создавать удалять каталоги.