我有一个问题,让串行口工作英特尔NUC DE3815TYBE。我已经安装了Debian内核3.16.0-0.bpo.4-amd64 64。
当我这么做时:
setserial -g /dev/ttyS*
我得到:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 19
/dev/ttyS2, UART: 16550A, Port: 0x0000, IRQ: 19
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
我可以连接到ttyS0 - ttyS2,没有任何问题,但是ttyS3没有工作,我得到了以下错误:
我命令:
stty -F /dev/ttyS3 9600 cs8 cread clocal
我得到:
stty: /dev/ttyS3: Input/output error
知道怎么解决这个问题吗?我以根用户的身份运行这些命令。我也尝试过: setserial /dev/ttyS3Irq3UART16550A skip_test,但我得到的是相同的stty: /dev/ttyS3:输入/输出错误
产出:
dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.952559] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.953593] 0000:00:1e.3: ttyS1 at MMIO 0xd0810000 (irq = 19, base_baud = 2764800) is a 16550A
[ 0.954072] 0000:00:1e.4: ttyS2 at MMIO 0xd080e000 (irq = 19, base_baud = 2764800) is a 16550A
[ 27.740208] ttyS2 - failed to request DMA
[ 27.746627] ttyS1 - failed to request DMA
[ 440.532070] ttyS3: LSR safety check engaged!
[ 443.700047] ttyS3: LSR safety check engaged!
[ 445.288960] ttyS3: LSR safety check engaged!
[ 452.796029] ttyS3: LSR safety check engaged!
[ 453.716441] ttyS3: LSR safety check engaged!
[ 463.732506] ttyS3: LSR safety check engaged!
[ 470.222491] ttyS3: LSR safety check engaged!
[ 470.222774] ttyS3: LSR safety check engaged!
[ 473.748363] ttyS3: LSR safety check engaged!
[ 474.359756] ttyS3: LSR safety check engaged!
[ 482.783201] ttyS3: LSR safety check engaged!
[ 483.763953] ttyS3: LSR safety check engaged!
[ 493.931641] ttyS3: LSR safety check engaged!
[ 503.982224] ttyS3: LSR safety check engaged!
[ 514.020686] ttyS3: LSR safety check engaged!
[ 524.074170] ttyS3: LSR safety check engaged!
[ 534.090644] ttyS3: LSR safety check engaged!
[ 544.110381] ttyS3: LSR safety check engaged!
lsof /dev/ttyS3 3不返回任何内容,所以这意味着没有任何与ttyS3相关的东西,我想,但是我对linux不是很熟练,所以我可能弄错了
为什么我可以看到4ttyS*在我的Linux,但物理上,我只有2个物理串口在板上?
发布于 2015-03-24 17:12:40
您声明您只有两个物理串行端口,您可以检测到这些端口到ttyS1和ttyS2。ttyS3和ttyS4不存在;它们是公开的,但您必须忽略它们。这就是驱动程序的工作方式;它探测什么可能是串行端口并向您公开,但是您必须验证它是真正的串行端口,因为驱动程序不能100%确定。这一行:
ttyS3: LSR安全检查已启动!
告诉您,串行端口ttyS3
还没有准备好,在您的情况下,它永远不会准备好,因为它不存在。驱动程序尽力正确地检测串口,但有时会失败。在这种情况下,您必须找到公开的接口实际上是手动连接到硬件上的,您已经这样做了。
https://unix.stackexchange.com/questions/191670
复制相似问题