Гамму и разрешения устройства

У меня Ubuntu Server 12.04 LTS и на нем я установил гамму. Я использую его для управления своим мобильным телефоном "Nokia 5310 Xpress music".

Теперь, когда я запускаю "gammu --identify", он не работает, говорит, что у меня нет необходимых прав доступа к устройству, но он работает с sudo gammu --identify

Теперь мое устройство Nokia указано как ttyACM0 в моем каталоге /dev/... его разрешения - rw для root и dialout... Я попытался изменить эти разрешения, чтобы я мог использовать это устройство с гаммой без sudo... Я сделал sudo chmod 777 /dev/ttyACM0 и это изменило разрешения, но все равно это не сработало...

Я даже пошел и добавил в /etc/udev/rules.d/ файл с именем 40-41-descriptive-name.rules, который содержал следующую строку:

SUBSYSTEM=="usb", ATTR{idVendor}=="0421", ATTR{idProduct}=="006b", MODE="0600", OWNER="MyUserName"

а потом перезапустил удев но все равно не повезло...

Я даже сделал sudo chown myusername /dev/ttyACM0 и дал себе право собственности на устройство, но все же мне нужно было использовать sudo, чтобы добиться цели...

кстати если я lsusb Я получаю следующую информацию:

BUS 002 Device 003: ID 0421:006b Nokia Mobile Phones

Я попробовал все эти способы изменить разрешения устройства, чтобы я мог использовать "gammu --identify" вместо sudo gammu --identify но не повезло.

Как я могу исправить эту дилемму?

3 ответа

Решение

Получив помощь от коллег, я нашел решение своей проблемы...

В моем файле конфигурации gammu я изменил порт на /dev/phone

Затем я перешел в каталог /etc/udev/rules/ и создал в нем имя файла 99-phone.rules, затем в этом файле я написал следующую строку:

SUBSYSTEM == "usb", ATTRS {idVendor} == "0421", ATTRS {idProduct} == "006b", MODE = "0666", SYMLINK + = "телефон"

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

Спасибо всем, особенно @firusvg!!

Во избежание возможных проблем с ситуацией, когда телефон распознается как /dev/ttyACM0, /dev/ttyACM1,... или /dev/ttyUSB0, /dev/ttyUSB1,... с последующими циклами подключения / переподключения, сделайте символическую ссылку для телефона, чтобы быть как /dev/phone - делать 99-phone.rules править с помощью:

KERNEL=="ttyUSB*", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="006b", NAME="phone", MODE="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="006b", NAME="phone", MODE="0666"

и внесите изменения в порт в.gammurc, чтобы port=/dev/phone, Теперь вы сможете выполнять команды gammu без sudo.

Конечно, удалите предыдущие правила в вашем 40-41-descriptive-name.rules

Обратите внимание, что две строки в 99-phone.rules только для того, чтобы были рассмотрены все возможные случаи для первоначального распознавания телефона (также обратите внимание, MODE="0666" - это даст RW для всех пользователей / групп).

Этот подход я использую для своего собственного SMS-шлюза (использующего три телефона на основе gammu-smsd), и до сих пор работает хорошо.

Также нужно проверить демон gammu gammu-smsd и его конфигурационный файл. Сам демон будет работать от имени пользователя root, но затем команда gammu-smsd-inject позволит отправлять смс без прав root, если каталог спула доступен для записи. Также хорошо то, что демон будет периодически принимать сообщения.

Другие вопросы по тегам