Dev*_*laN 6 root modem devices
我正在使用 GSM 调制解调器并使用/dev/ttyUSB2
设备。
设备拥有适当的权利:
$ ls -alh /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 2 May 25 19:44 /dev/ttyUSB2
Run Code Online (Sandbox Code Playgroud)
我在dialout
组中,只能向该调制解调器发送一次 AT 命令。发送“ATD”命令(echo -e -n "ATD ...;\r" > /dev/ttyUSB2
)后,根据lsof /dev/ttyUSB2
进程ModemManager
打开这个文件,如果我发送另一个 AT 命令,我会收到消息:
bash: /dev/ttyUSB2: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
好的,由于某种原因,ModemManager 使该文件处于忙碌状态,但是当发生这种情况时,我仍然可以以相同的方式发送命令,但来自root
用户。
我有两个问题:
小智 1
我最近在 Gentoo 上使用时遇到了类似的错误wvdial
(使用正确配置的内核、usb_modeswitch
设置、验证 wvdial 设置可以在另一个系统上工作等)。正如您所描述的,root 可以轻松初始化调制解调器并连接到 Internet,而dialout
组中的用户会收到与您非常相似的错误消息。相关的设备文件是:
$ ls -l /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 2 Apr 6 01:43 /dev/ttyUSB2
Run Code Online (Sandbox Code Playgroud)
问题原来是 wvdial 无法在我的系统上/run/lock
拥有的下创建必要的锁定文件root:uucp
。将我的常规用户添加到 后uucp
,可以创建锁定文件:
$ ls -la /run/lock
drwxrwxr-x 2 root uucp 80 Apr 6 01:43 .
drwxr-xr-x 10 root root 520 Apr 6 01:44 ..
-rw-r--r-- 1 foo foo 11 Apr 6 01:43 LCK..ttyUSB2
[...]
Run Code Online (Sandbox Code Playgroud)
并且用户能够成功连接,就像 root 一样。(如果您想知道,find / -group uucp
则不会返回除该文件夹之外的任何内容。)
我不熟悉ModemManager
(也不习惯直接写入/读取设备文件),但考虑到我们描述的相似性,我怀疑您可能需要将常规用户添加到另一个补充组。尝试以 root 身份建立连接并检查 ModemManager 涉及哪些其他文件;其中之一(或父目录)可能是问题的根源。
归档时间: |
|
查看次数: |
892 次 |
最近记录: |