gammu 和设备权限

gammu 和设备权限

我有 Ubuntu Server 12.04 LTS,并在其上安装了 gammu。我用它来控制我的“诺基亚 5310 Xpress 音乐”手机。

现在,当我运行“gammu --identify”时,它不起作用,说我没有正确的设备权限,但它可以与sudo gammu --identify

现在我的诺基亚设备在我的 /dev/ 目录中被列为 ttyACM0...它的权限是 root 和 dialout 的 rw...我试图更改这些权限,以便我可以将此设备与 gammu 一起使用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"

然后重新启动了 udev 但仍然没有运气......

我甚至这样做了,sudo chown myusername /dev/ttyACM0并赋予了自己该设备的所有权,但我仍然需要使用 sudo 来完成工作......

顺便说一句,如果我这样做,lsusb我会得到以下信息:

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

我尝试了所有这些方法来改变设备权限,以便我可以使用“gammu --identify”,但sudo gammu --identify没有成功。

我怎样才能解决这个困境?

答案1

在同事的帮助下,我找到了解决问题的方法......

在我的 gammu 配置文件中,我将端口更改为 /dev/phone

然后我进入 /etc/udev/rules/ 目录并在其中创建了一个名为 99-phone.rules 的文件名,然后在该文件中写入以下行:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="006b", MODE="0666" , SYMLINK+="phone"

然后我重新启动了系统,当我连接诺基亚手机时,我就可以无需使用 sudo 在其上运行命令!

谢谢大家,特别是@firusvg!!

答案2

为了避免在后续连接/重新连接周期中手机被识别为 /dev/ttyACM0、/dev/ttyACM1、... 或 /dev/ttyUSB0、/dev/ttyUSB1、... 等情况下出现潜在问题,请为手机创建如下符号链接/dev/phone- 使用以下命令创建99-phone.rulesudev 规则:

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。现在,您无需 sudo 即可发出 gammu 命令。

当然,删除你之前的规则40-41-descriptive-name.rules

请注意,其中的两行99-phone.rules仅用于确保涵盖初始电话识别的所有可能情况(另请注意MODE="0666"- 这将为所有用户/组提供 rw)。

这是我用于自己的 SMS 网关的方法(使用三部手机并基于 gammu-smsd),到目前为止,效果很好。

答案3

还应该检查 Gammu 守护进程gammu-smsd而且它配置文件。守护进程本身将以 root 身份运行,但只要假脱机目录可写,gammu-smsd-inject 命令将允许在没有 root 权限的情况下发送短信。此外,守护进程还会定期接收消息,这是件好事。

相关内容