如何找出 Linux 正在使用什么来控制我的硬件

如何找出 Linux 正在使用什么来控制我的硬件

我想知道 Linux 使用什么来控制我的硬件。我猜是模块和驱动程序,也许它们是相同的。

我得到了这个答案:我如何找出硬件正在使用哪个驱动程序?

有一种方法可以列出驱动程序,但我还想为每个列表项添加一个标识符。

如果我运行这个命令,将会发生以下情况:

sudo lshw | grep -Eo 'driver=[^ ]+' | sort -u | cut -d\= -f2

agpgart-intel

ahci

ath9k

atl1c

ehci-pci

hub

i915

intel

lpc_ich

mei_me

pcieport

snd_hda_intel

tun

usb-storage

uvcvideo

答案1

如果您只关心过滤输出以lshw显示设备及其对应的驱动程序,则可以使用下面的lshwawk组合:

sudo lshw | awk '/product:/{  if(length(PROD) > 0){PROD=""};  for(i=1;i<=NF;i++) PROD=PROD" "$i  } /driver=/{  for(j=1;j<=NF;j++){ if($j~/driver=/) DRIVER=$j   };print "---",PROD,DRIVER; PROD=""}' 

这里的基本思想是,我们找到包含“product: . . . ”的行并将其存储到 PROD 中。由于某些设备没有列出驱动程序,我们可能要反复将一行又一行地附加到 PROD 变量中,因此在开始时我们检查 PROD 字符串的长度。正在进行的另一个匹配是针对包含该driver=部件的行。一旦我们有了它,我们就会打印产品和驱动程序信息。

下面是组合成脚本的命令和示例输出:

$ cat ./dev-drivers.sh                                                                                            
#!/bin/bash

sudo lshw | awk '/product:/{  if(length(PROD) > 0){PROD=""};\
            for(i=1;i<=NF;i++) PROD=PROD" "$i  }\
             /driver=/{  for(j=1;j<=NF;j++){ if($j~/driver=/) DRIVER=$j   };\
             print "---",PROD,DRIVER; PROD=""}' 

$ ./dev-drivers.sh                                                                                                
[sudo] password for xieerqi: 
---  product: ValleyView SSA-CUnit driver=iosf_mbi_pci
---  product: ValleyView Gen7 driver=i915
---  product: ValleyView 6-Port SATA AHCI Controller driver=ahci
---  product: ValleyView USB xHCI Host Controller driver=xhci_hcd
---  product: ValleyView SEC driver=mei_txe
---  product: ValleyView High Definition Audio Controller driver=snd_hda_intel
---  product: ValleyView PCI Express Root Port driver=pcieport
---  product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller driver=r8169
---  product: ValleyView PCI Express Root Port driver=pcieport
---  product: QCA9565 / AR9565 Wireless Network Adapter driver=ath9k
---  product: ValleyView PCI Express Root Port driver=pcieport
---  product: RTS5229 PCI Express Card Reader driver=rtsx_pci
---  product: ValleyView Power Control Unit driver=lpc_ich

相关内容