PCIシリアルカードの4つのポートすべてにアクセスする方法

PCIシリアルカードの4つのポートすべてにアクセスする方法

MCS9904シリアルPCIカードがありますが、Debian 10で使用したいと思います。私が実行したとき:

dmesg | grep tty

次を返します。

00:05: I/O 0x3f*(irq = 4) の ttyS0 は 16550A です。

0000:02:00:0: I/O 0xd030 (irq = 18) の ttyS1 は ST16650V2 です。

0000:02:00:1: I/O 0xd020 (irq = 19) の ttyS2 は ST16650V2 です。

0000:02:00:2: I/O 0xd010 (irq = 16) の ttyS3 は ST16650V2 です。

4つのポートのみが返されます。 1つのシリアルポートが組み込まれており、残りの3つはPCIカードからのものです。最後のポートは使用できません。ドライバを次からダウンロードしました。ここ ドライバをインストールするために、次のコマンドを実行しました。

  1. 作る
  2. インストールするために

誰でもこの問題について案内できますか?

答え1

初期のPCには、8250 UARTチップに基づいて最大4つのシリアルポートがありました。この制限を超える可能性がありますが、通常、他のハードウェア実装または少なくとも特別なドライバを使用してより多くのポートを有効にできます。最新の16550Aは実際にプログラム可能で、以前の8250チップとは逆互換です。そして体レベル。

(1980年代後半/ 1990年代初頭、古い/安価なコンピュータを使用してより新しい高速なダイヤルアップモデムにアップグレードするとき、一貫したエラーを防ぐために、実際の8250チップをソケットから取り出して16550Aに交換する必要がありました。ダウンロード)。

高速Google検索により、ST16650V2はPCI(e)バス互換性のために近代化されたバージョンに見えますが、可能な限り古いプログラミングインターフェースとも互換性があります。

Linuxカーネルには、コンパイル時パラメータ「実行時に登録された8250/16550シリアルポートの数」(CONFIG_SERIAL_8250_RUNTIME_UARTS)があり、デフォルトでは4に設定されています。 Debian 10 は標準のカーネルパッケージでこのデフォルト値を変更しません。

しかし、この値はカーネルブートパラメータによって無視される可能性があります8250.nr_uarts(またはnr_uarts以前のカーネルバージョンかもしれませんが、Debian 10に適用するには古すぎると思います)。

8250準拠のシリアルポートドライバは合計5つのポートを処理しているように見えるため、に追加する必要があります8250.nr_uarts=5。結果の構成行は次のとおりです。GRUB_CMDLINE_LINUX_DEFAULT=/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash 8250.nr_uarts=5"

変更後にupdate-grubGRUBに変更を適用するには、rootとして実行する必要があります。再起動後、システムは5つの8250準拠シリアルポートをすべて使用できるようにする必要があります。

関連情報