【问题标题】:Permission denied - /dev/ttyS6 (Errno::EACCES)权限被拒绝 - /dev/ttyS6 (Errno::EACCES)
【发布时间】:2019-01-17 06:21:33
【问题描述】:

问题是我正在尝试使用“我制作”的 ruby​​ 脚本连接到串行端口 9600 以发送数据,以便 Arduino 可以读取它。

我想将数据发送到串行端口(9600),我必须连接到该端口才能做到这一点。我正在尝试将其连接到/dev/ttyS6

这是我的红宝石代码:

#simplest ruby program to read from arduino serial,
#using the SerialPort gem
#(http://rubygems.org/gems/serialport)

require "serialport"

#params for serial port
port_str = "/dev/ttyS6"  #may be different for you
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity = SerialPort::NONE

sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity)
#just read forever
while true
  i = gets.chomp!.to_i
  puts sp.putc(i)
end
#puts i.class #String

sp.close                       #see note 1

我的 ruby​​ 程序在 ubuntu bash for windows 上运行。此消息显示在控制台中:

serialport-1.3.1/lib/serialport.rb:25:in `create': Permission denied - /dev/ttyS6 (Errno::EACCES)

我已经尝试过这些解决方案:

  • chown -R myUserName ./*
  • sudo chown -R user_name file_name
  • chmod a+w <folder>

我怎样才能允许连接?

【问题讨论】:

  • 你是怎么确定/dev/ttyS6是串口的?
  • "在 WSL 中,lxcore 驱动程序通过 COM 端口号将 COM 端口映射到 Linux 设备,因此 /dev/ttyS 绑定到 COM。更具体地说,映射位于次要编号,因此次要编号 65 (/dev/ttyS1) 是 COM1,66 (/dev/ttyS2) 是 COM2,依此类推。”blogs.msdn.microsoft.com/wsl/2017/04/14/… 说,所以 /dev/ttyS6 将是 COM6。
  • 为什么我的问题得到了-2票,不是生气,只是想得到反馈,这样我才能提出更好的问题
  • 添加了几个 updoots :)

标签: ruby windows ubuntu arduino windows-subsystem-for-linux


【解决方案1】:

没关系,我找到了解决方案,我使用了这个命令:

sudo chmod 666 /dev/ttyS6

【讨论】:

    猜你喜欢
    • 2011-12-28
    • 2015-07-20
    • 2016-03-14
    • 2014-01-24
    • 2019-02-13
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多