Какой переключатель командной строки lspci ограничивает вывод только устройствами «Ethernet»?

Похоже, что ядро ​​ошибочно определило какое-то устройство как дискету или просто создало несуществующую ссылку, потому что на вашей машине нет настоящего дисковода для гибких дисков. Таким образом, эти blk_update_request для fd0 совершенно не связаны с вашими жесткими дисками. Многие программы управления дисками, такие как fdisk , любят перечислять все доступные блочные устройства , и определенно fdisk попал в модуль гибких дисков, и эти сообщения начали появляться в вашем dmesg.

Поскольку на вашем компьютере нет дисковода гибких дисков, рекомендуется удалить модуль ядра floppy и занести его в черный список, чтобы он вас не беспокоил в будущем:

sudo rmmod floppy
echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf

затем добавьте / etc / от modprobe.d / blacklist-floppy.conf до /etc/mkinitcpio.conf переменную FILES и выполните mkinitcpio -p linux , чтобы initramfs тоже не загружал его.

Таким образом, после следующей перезагрузки он не появится и испортит вашу стабильную конфигурацию.

3
22.01.2017, 12:00
2 ответа

man lspci в моей системе не показывает, что параметр -d может использоваться для отображения классов, но вы можете получить их имена в машиночитаемом режиме, таким образом, используя grep. То есть:

$ lspci -vmm | grep -B1 -A2 '^Class.*Ethernet'
Slot:   08:00.0
Class:  Ethernet controller
Vendor: Intel Corporation
Device: 82574L Gigabit Network Connection

Еще один вариант - использовать sysfs напрямую. Т.е. вы можете найти все устройства Ethernet по строке 'c02' в модалиях:

$ find /sys/devices/ -name modalias | xargs grep -l c02
/sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/modalias
                                          ^^^ PCI port

или с помощью systool:

$ systool -b pci -A modalias | awk '
     /modalias.*c02/ { 
          system("/sbin/lspci -s " dev); } 
     { dev = $1; }'
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
3
27.01.2020, 21:10

Если вы удалите *и расширите значение класса до 4 цифр, требуемый результат будет достигнут

$ lspci -d ::0200
81:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
81:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

Обновление :Фильтр на основе классов работает только с pciutils v3.3.0 или более поздней версии (см. список изменений). Для RHEL/CentOS это означает 7.3 или новее.

6
27.01.2020, 21:10

Теги

Похожие вопросы