Possibly missing firmware for module: xhci_pci

Have here till last testing update only with 5.16.7-1 and 5.17.0-1 a Message at building the fallback kernel:
WARNING: Possibly missing firmware for module: xhci_pci

I got tired of this warning and installed AUR (en) - upd72020x-fw

Identify if you need the Firmware >

sudo dmesg | grep xhci_pci

if not ignore it.

2 Likes

Thank you! That 'll do it… :slight_smile:

This firmware is only needed if you have the hardware to use it - otherwise it’s just junk taking up space…

Tried dmesg… but i get reading the kernelbuffer operation is not allowed… but you’re right, i think i’ve seen this before and ignored it also for a long time…

it’s allowed with sudo

Thought also and tried with sudo, but then it shows / came up nothing!?

then u can ignore the warning

2 Likes

grep means “show all the lines that include this.” if it showed nothing, then there weren’t any to show, which means there weren’t any dmesg errors about that module. that’s good.

True, it might bite me someday and this post can be pointed out to me if in the future I request assistance and it is because of the frivolous installation of useless packages (as I don’t have the hardware) :wink:

ok, now makes sense, the errors… (a hard day’s work, i’m tired :wink: ). thank you! :slight_smile:

Try to check it:

sudo dmesg | grep xhci

But there are many xhci for USB bus in dmesg. (But xhci_hcd, not xhci_pci)

❯ sudo dmesg | grep xhci                                                                                                                                                                                         ✘ 0|1
[    1.778083] xhci_hcd 0000:02:00.0: xHCI Host Controller
[    1.778089] xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 1
[    1.833398] xhci_hcd 0000:02:00.0: hcc params 0x0200ef81 hci version 0x110 quirks 0x0000000000000410
[    1.833553] usb usb1: Manufacturer: Linux 5.16.7-1-MANJARO xhci-hcd
[    1.837823] xhci_hcd 0000:02:00.0: xHCI Host Controller
[    1.837826] xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 2
[    1.837828] xhci_hcd 0000:02:00.0: Host supports USB 3.1 Enhanced SuperSpeed
[    1.837890] usb usb2: Manufacturer: Linux 5.16.7-1-MANJARO xhci-hcd
[    1.839628] xhci_hcd 0000:0b:00.3: xHCI Host Controller
[    1.839631] xhci_hcd 0000:0b:00.3: new USB bus registered, assigned bus number 3
[    1.839733] xhci_hcd 0000:0b:00.3: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000000000410
[    1.839992] usb usb3: Manufacturer: Linux 5.16.7-1-MANJARO xhci-hcd
[    1.840153] xhci_hcd 0000:0b:00.3: xHCI Host Controller
[    1.840155] xhci_hcd 0000:0b:00.3: new USB bus registered, assigned bus number 4
[    1.840156] xhci_hcd 0000:0b:00.3: Host supports USB 3.1 Enhanced SuperSpeed
[    1.840179] usb usb4: Manufacturer: Linux 5.16.7-1-MANJARO xhci-hcd
[    2.087280] usb 1-7: new full-speed USB device number 2 using xhci_hcd
[    2.087280] usb 3-2: new high-speed USB device number 2 using xhci_hcd
[    2.540614] usb 1-10: new full-speed USB device number 3 using xhci_hcd
[  669.160642] usb 2-3: new SuperSpeed USB device number 2 using xhci_hcd

and check modinfo xhci_pci

❯ modinfo xhci_pci
filename:       /lib/modules/5.16.7-1-MANJARO/kernel/drivers/usb/host/xhci-pci.ko.xz
license:        GPL
description:    xHCI PCI Host Controller Driver
firmware:       renesas_usb_fw.mem
srcversion:     15F87C6E54F604CBB479169
alias:          pci:v*d*sv*sd*bc0Csc03i30*
alias:          pci:v00001912d00000015sv*sd*bc*sc*i*
alias:          pci:v00001912d00000014sv*sd*bc*sc*i*
depends:        xhci-pci-renesas
retpoline:      Y
intree:         Y
name:           xhci_pci
vermagic:       5.16.7-1-MANJARO SMP preempt mod_unload 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key

xHCI PCI Host Controller Driver (xhci_hcd = xhci_pci)?

1 Like

I’m also wondering that. I get nothing from

sudo dmesg | grep xhci_pci

But resembling results for xhci_hcd

If you are not using this hardware component in particular, and no SCSI controllers in general, you may also edit /etc/initcpio/block.
In that file, you will find code like below:

    for filter in 'scsi/.*ata' '/(block|scsi|fusion|nvme)/' 'ata/[ps]ata_' \
            'ata/(ahci|pdc_adma|ata_piix|ata_generic)'; do
        add_checked_modules "$filter"
    done

Just remove scsi from there so that it reads like this:

    for filter in '/(block|fusion|nvme)/' 'ata/[ps]ata_' \
            'ata/(ahci|pdc_adma|ata_piix|ata_generic)'; do
        add_checked_modules "$filter"
    done

This avoids including the scsi controller drivers in the initcpio for your kernel, thus avoiding the missing firmware warnings, and also speeding up initcpio generation a little bit.

Of course, it is recommended to run sudo mkinitcpio -P && sudo update-grub afterwards.

By the way: These warnings occur only with the fallback initcpios. If you do not require them to be created, you can also avoid fallback initcpio generation altogether, by editing /etc/mkinitcpio.d/linux[version].preset and removing the word fallback from the PRESETS line.

If you have more than one kernel installed, and have verified that they are all working, you do not necessarily need that fallback image.
In case any of your kernels does not work after an update, just reboot and choose a known working kernel.
Of course, your mileage may vary at that point.

3 Likes