Гамму и разрешения устройства
У меня 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, если каталог спула доступен для записи. Также хорошо то, что демон будет периодически принимать сообщения.