Cat

通過讀取文件列出 PCI 設備(而不是 lspci 命令)

  • May 14, 2021

我需要從文件中讀取 PCI 設備資訊。但是當我使用這樣的命令時,它會給出不可用的輸出:

cat /proc/bus/pci/05/00.0

輸出:

�h��

我該如何解決這個問題?

作業系統:類 Debian 的 Linux x64,Kenel 4.19

並非 /proc/ 下的每個文件都包含文本。

/proc/bus/pci/05/00.0(和類似文件)包含二進制數據,而不是文本。它們並不是要顯示在終端上,而是要由理解二進制數據格式的程序讀取(至少將在核心文件或原始碼的某處記錄)。

如果你想看看裡面有什麼,你可以使用hexdumpaka hd

$ hd /proc/bus/pci/05/00.0
00000000  00 10 72 00 07 04 10 00  03 00 07 01 10 00 00 00  |..r.............|
00000010  01 c0 00 00 04 00 6c d2  00 00 00 00 04 00 28 d2  |......l.......(.|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 10 40 30  |..............@0|
00000030  00 00 40 fe 50 00 00 00  00 00 00 00 0a 01 00 00  |..@.P...........|
00000040

您的輸出可能會有所不同,因為您幾乎可以肯定在 05:00.0 有不同的 PCI-e 設備

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