如何訪問我的 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 個埠。一個內置串列埠,另外 3 個來自我的 PCi 卡。我不能在最後一個埠工作。我已經從這裡下載了驅動程序 我執行了以下命令來安裝驅動程序:
- 製作
- 進行安裝
誰能在這個問題上指導我?
早期的 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 兼容的串列埠。