setserial /dev/ttyS4: シリアル情報を設定できません。

setserial /dev/ttyS4: シリアル情報を設定できません。

したがって、6つのハードウェアシリアルポートを備えたボードがあります。最初の2つはETXバスにあり、最後の4つはISAバスにあります。次の構成は次のようにする必要があります。

/dev/ttyS0 port 0x03F8 irq 4
/dev/ttyS1 port 0x02F8 irq 3
/dev/ttyS2 port 0x0100 irq 5
/dev/ttyS3 port 0x0108 irq 5
/dev/ttyS4 port 0x0110 irq 5
/dev/ttyS5 port 0x0118 irq 5

起動時に以下を実行します。

# dmesg | egrep -i 'serial|ttys'
Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

# cat /proc/tty/driver/serial
Serinfo:1.0 driver revision:
0: uart:16550A port: 000003F8 irq:4 tx:0 rx:0
1: uart:16550A port: 000002F8 irq:3 tx:0 rx:0
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
4: uart:unknown port:00000000 irq:0
5: uart:unknown port:00000000 irq:0

そこで、setserialを使ってポートttyS2-ttyS5を正しい値に設定してみました。

# setserial /dev/ttyS2 irq 5 port 0x100 uart 16550A
# setserial /dev/ttyS3 irq 5 port 0x108 uart 16550A
# setserial /dev/ttyS4 irq 5 port 0x110 uart 16550A
Cannot set serial info: Invalid argument
# setserial /dev/ttyS5 irq 5 port 0x118 uart 16550A
Cannot set serial info: Invalid argument

最後のコマンドからuartオプションを削除します。

# setserial /dev/ttyS4 irq 5
Cannot set serial info: Invalid argument

setserialでttyS4とttyS5を設定するにはどうすればよいですか?

ベストアンサー1

/procあなたの結果と結果から私が見たことについてdmesgいくつかのことが私に衝撃を与えました。

  • デバイス間でIRQを共有しようとしないでください。動作するかもしれませんが、ISAの目的は、動作に割り込みラインが必要なバス上のすべてのデバイスに独自のIRQがあることです。シリアルポートカードが十分なIRQオプションを提供しない場合、PCは両方のオプションを使用できない可能性があります。

  • 2番目のシリアルポートペアに使用されるI / Oアドレスは非標準です。ttyS2通常は0x3E8、ttyS3通常は0x2E8にあります。シリアルカードオプションがある場合は、このカードを移動します。 (バージョン1以降には標準I / OアドレスまたはIRQはありませんttyS4。)

それ以外に、Linuxシステムに6つのシリアルポートが必要な場合は、従来の汎用シリアルポートアダプタカードを使用しません。私は次のようなものを使用します。デジタル加速ポート。彼らはまだISAスロットで動作するXeモデルを提供しています。安いものが必要な場合は、当時非常に人気があった中古市場で見つけることができます。

おすすめ記事