Linux

如何訪問我的 PCI 串列卡的所有 4 個埠

  • November 8, 2019

我有一個 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 個埠。一個內置串列埠,另外 3 個來自我的 PCi 卡。我不能在最後一個埠工作。我已經從這裡下載了驅動程序 我執行了以下命令來安裝驅動程序:

  1. 製作
  2. 進行安裝

誰能在這個問題上指導我?

早期的 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)。

由於您似乎總共有 5 個埠由兼容 8250 的串列埠驅動程序處理,因此您8250.nr_uarts=5應該GRUB_CMDLINE_LINUX_DEFAULT=/etc/default/grub. 生成的配置行可能如下所示:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash 8250.nr_uarts=5"

進行更改後,您應該update-grub以 root 身份執行以使更改在 GRUB 中生效。重新啟動後,您的系統應該能夠使用所有 5 個 8250 兼容的串列埠。

引用自:https://unix.stackexchange.com/questions/550886