于是,我四处打听/dev/ttyS0和/dev/ttyUSB0,想让一些火腿收音机配件正常工作,然后把它弄坏了。ttyS0控制无线电传输,如果我以普通用户的身份运行cat /dev/ttyS0,则无线电传输。
但是,如果我运行调制解调器软件(FLdigi),它以前使用ttys0与无线电一起工作,它就不能工作。启动程序时,日志中有一条消息:“串口测试失败”。我在“拨号”和"uucp“两个小组,所以我认为它应该是有效的。
我记得运行的一件事是sudo chmod 777 /dev/ttyS0。我不确定我该把它放回原处。关于为什么我可以访问它,而我运行的软件不能,即使它都来自同一个用户?
发布于 2016-01-16 22:54:07
dmesg)。strace下运行它,它将报告应用程序生成的系统。您可能希望tu使用这样的东西:$ strace -f -s 512 -o /path/to/application.log.strace应用程序.它还将strace子进程、将字符串ap记录到其512字节以及所有将在/path/to/application.log.strace中结束的操作,省略表示可能的应用程序参数。您还可以告诉strace附加到由PID标识的正在运行的进程(-p参数)。有关更多信息,请参见strace(1)手册页。相反,在日志结束时,您应该能够找到一个打印错误消息的write()调用。在此之前不久,很有可能是返回-1的open()或write() (在设备文件上)。这可能会让你对错误的原因有所了解。
关于权限,请注意:您不想使用chmod 777,因为这样可以使文件可执行,而且这从来不是一个好主意,除了可执行文件和目录之外,其他任何东西都是不可执行的。对于设备文件(取决于它们的性质),合理的值是0640或0660,这允许对根用户进行完全访问,并且可以对组进行读写访问(在您的情况下,可能是您提到的dialout组)。
在大多数情况下,您还希望添加一个零(例如,chmod 0664,因为它删除了任何suid位,这通常是个好主意)。
https://unix.stackexchange.com/questions/255773
复制相似问题