INTEL NUC DE3815TYBEでシリアルポートを使用する際に問題があります。カーネルバージョン3.16.0-0.bpo.4-amd64でDebian Wheezyをインストールしました。
私がするとき:
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
この問題を解決する方法を知っていますか? ROOTでコマンドを実行します。私も次のことを試しました:setserial /dev/ttyS3 irq 3 uart 16550Askip_testしかし、同じstty:/dev/ttyS3:input / output errorが発生します。
出力:
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 は何も返さないので、ttyS3 に接続されたものが何もないという意味です。しかし、Linuxの経験があまりないため、間違っている可能性があります。
LinuxではttyS *が4つで表示されますが、実際にマザーボードには物理シリアルポートが2つしかないのはなぜですか?
答え1
物理シリアルポートが2つしかないと言われましたが、ttyS1とttyS2を検出しました。 ttyS3 と ttyS4 は存在しません。公開されていますが無視する必要があります。これがドライバの動作方法です。シリアルポートが何であるかを検出してユーザーに公開しますが、ドライバが100%確信できないため、実際のシリアルポートであることを確認する必要があります。この行は:
ttyS3:LSRセキュリティチェックが開始されました!
シリアルポートがttyS3
まだ準備されていないというメッセージが表示されます。あなたの場合には存在しないので、決して準備されません。ドライバはシリアルポートを正しく検出するために最善を尽くしますが、時には失敗します。この場合、すでに実行している公開されたインターフェイスが実際にハードウェアに手動で接続されていることを確認する必要があります。