Я хочу узнать то, что является использованием 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
Если Вы обеспокоены только фильтрацией вывода lshw
для показа устройства и его соответствующего драйвера, можно использовать lshw
и awk
рев комбинации:
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=""}'
Основная идея здесь состоит в том, что мы находим строки, которые имеют "продукт:..". в них и хранилище в НАПОМИНАНИЕ. Поскольку некоторые устройства не перечисляют драйверы, мы, возможно, неоднократно добавляли строку после строки для ПОДТАЛКИВАНИЯ переменной, таким образом, в начале мы проверяем длину строки НАПОМИНАНИЯ. Другое соответствие, которое продолжается, для строк, содержащих driver=
часть. После того как у нас есть это, мы печатаем и продукт и информацию о драйвере.
Bellow является командой, соединенной в сценарий и демонстрационный вывод:
$ 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