首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tty工作,但不能运行程序。

tty工作,但不能运行程序。
EN

Unix & Linux用户
提问于 2016-01-16 20:56:05
回答 1查看 135关注 0票数 0

于是,我四处打听/dev/ttyS0/dev/ttyUSB0,想让一些火腿收音机配件正常工作,然后把它弄坏了。ttyS0控制无线电传输,如果我以普通用户的身份运行cat /dev/ttyS0,则无线电传输。

但是,如果我运行调制解调器软件(FLdigi),它以前使用ttys0与无线电一起工作,它就不能工作。启动程序时,日志中有一条消息:“串口测试失败”。我在“拨号”和"uucp“两个小组,所以我认为它应该是有效的。

我记得运行的一件事是sudo chmod 777 /dev/ttyS0。我不确定我该把它放回原处。关于为什么我可以访问它,而我运行的软件不能,即使它都来自同一个用户?

EN

回答 1

Unix & Linux用户

发布于 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位,这通常是个好主意)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/255773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档