How do I add drivers to some hardware?

Are you still on 6.8.5-301.fc40.x86_64? I just checked 6.8.5-201.fc39.x86_64 and 6.8.6-200.fc39.x86_64. The alcor module is is missing in both those. Please upgrade to the current F40 packages, which should get 6.8.7-300.fc40.x86_64 or newer and try the modprobe -n ... check if the reader still isn’t working.

Upgraded to 6.8.7 a few days ago.

Did you also apply the other recent updates? Have you rebooted after installing the new kernel? What does the modprobe -n ... check report?

Some updates to network drivers don’t work until the system gets a power off reboot.

Still not working.
modprobe -n -v platform:alcor_sdmmc still hasn’t output any content.

Please show us the output from runningdnf info kernel-modules-core-6.8.7-300.fc40.x86_64 in a terminal.

Last metadata expiration check: 1:24:51 ago on Thu Apr 25 23:28:06 2024.
Installed Packages
Name         : kernel-modules-core
Version      : 6.8.7
Release      : 300.fc40
Architecture : x86_64
Size         : 32 M
Source       : kernel-6.8.7-300.fc40.src.rpm
Repository   : @System
From repo    : updates
Summary      : Core kernel modules to match the core kernel
URL          : https://www.kernel.org/
License      : ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-2-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0)
             : AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR
             : BSD-3-Clause) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-Clear AND GFDL-1.1-no-invariants-or-later AND
             : GPL-1.0-or-later AND (GPL-1.0-or-later OR BSD-3-Clause) AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only OR Apache-2.0) AND (GPL-2.0-only OR
             : BSD-2-Clause) AND (GPL-2.0-only OR BSD-3-Clause) AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR GFDL-1.1-no-invariants-or-later) AND (GPL-2.0-only OR
             : GFDL-1.2-no-invariants-only) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR BSD-2-Clause) AND (GPL-2.0-or-later OR BSD-3-Clause) AND
             : (GPL-2.0-or-later OR CC-BY-4.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND ISC AND LGPL-2.0-or-later AND
             : (LGPL-2.0-or-later OR BSD-2-Clause) AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND LGPL-2.1-only AND (LGPL-2.1-only OR BSD-2-Clause) AND (LGPL-2.1-only WITH
             : Linux-syscall-note) AND LGPL-2.1-or-later AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND (Linux-OpenIB OR GPL-2.0-only) AND (Linux-OpenIB OR GPL-2.0-only OR BSD-2-Clause)
             : AND Linux-man-pages-copyleft AND MIT AND (MIT OR Apache-2.0) AND (MIT OR GPL-2.0-only) AND (MIT OR GPL-2.0-or-later) AND (MIT OR LGPL-2.1-only) AND (MPL-1.1 OR GPL-2.0-only)
             : AND (X11 OR GPL-2.0-only) AND (X11 OR GPL-2.0-or-later) AND Zlib AND (copyleft-next-0.3.1 OR GPL-2.0-or-later)
Description  : This package provides essential kernel modules for the core kernel package.

Please check that the system still finds the alcor reader with lspci. Are you still getting alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt messages?

Maybe there is a problem with the kernel driver?

Still the same, there hasn’t been any improvement.

The kernel driver comes from kernel.org, and does work for some hardware. Sometimes there are workarounds for vendor-specific issues that you see using modinfo. Web searches find many posts with the alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt., but most are resolved with updates. There is probably a useful discussion waiting to be found.

SD/MMC readers are often enabled in the system BIOS (to allow booting from a card). This means the history after a power-off reboot can affect the way the reader works. For a laptop with a removable battery you would need to remove the battery. For a desktop you may need to unplug the power cord for several minutes. Laptops may have a “secret” reset switch to clear card reader and network memory.

To move forward, you will need to provide full hardware details and relevant error messages, which can be done using journalctl in a terminal. Journalctl collects an enormous amount of detail, including the dmesg entries but also many messages that aren’t relevant. If you are willing to spend time on this, you will need to post terminal output. For starters, the result of inxi -Fzxx, which gives an overview of your hardware in a “standard” format we are used to seeing (and may allow someone to recognize hardware clashes causing issues that we have so far missed). Then you need find “filters” to select relevant messages from journalctl. I will provide a couple examples to get you started. You should consult man journalctl to find explanations of the options I suggest.

  • journalctl --no-hostname -b -p 3 | cat

  • journalctl --no-hostname -b -g alcor |cat

The |cat ensures that very long lines are wrapped – if you leave that out you may see > markers where long lines are truncated.

I don’t think my PC supports this feature. The sd card is not recognized in the BIOS at all.

As for the part you mentioned later, I will try it.

This is the specific model of my computer. Its CPU is i7-8750H.

journalctl --no-hostname -b -p 3 | cat:

6月 03 06:23:18 kernel: x86/cpu: SGX Launch Control is locked. Support SGX virtualization only.
6月 03 06:23:18 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.PEG0.PEGP._ON], AE_ALREADY_EXISTS (20230628/dswload2-326)
6月 03 06:23:18 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20230628/psobject-220)
6月 03 06:23:18 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.PEG0.PEGP._OFF], AE_ALREADY_EXISTS (20230628/dswload2-326)
6月 03 06:23:18 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20230628/psobject-220)
6月 03 06:23:18 kernel: ACPI Error: Aborting method \_SB.PCI0.SPI1.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/psparse-529)
6月 03 06:23:18 kernel: ACPI Error: Method execution failed \_SB.PCI0.SPI1.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/uteval-68)
6月 03 06:23:18 kernel: ACPI Error: Aborting method \_SB.PCI0.SPI1.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/psparse-529)
6月 03 06:23:18 kernel: ACPI Error: Method execution failed \_SB.PCI0.SPI1.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/uteval-68)
6月 03 06:23:18 kernel: ACPI Error: Aborting method \_SB.PCI0.SPI2.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/psparse-529)
6月 03 06:23:18 kernel: ACPI Error: Method execution failed \_SB.PCI0.SPI2.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/uteval-68)
6月 03 06:23:18 kernel: ACPI Error: Aborting method \_SB.PCI0.SPI2.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/psparse-529)
6月 03 06:23:18 kernel: ACPI Error: Method execution failed \_SB.PCI0.SPI2.FPNT._CRS due to previous error (AE_AML_INVALID_RESOURCE_TYPE) (20230628/uteval-68)
6月 02 22:23:48 gdm[1171]: Gdm: on_display_added: assertion 'GDM_IS_REMOTE_DISPLAY (display)' failed
6月 02 22:23:48 systemd[1889]: Failed to start app-gnome-gnome\x2dkeyring\x2dpkcs11-2086.scope - Application launched by gnome-session-binary.
6月 02 22:23:51 systemd[1889]: Failed to start app-gnome-user\x2ddirs\x2dupdate\x2dgtk-2373.scope - Application launched by gnome-session-binary.
6月 02 22:23:53 gdm[1171]: Gdm: on_display_removed: assertion 'GDM_IS_REMOTE_DISPLAY (display)' failed
6月 02 23:05:12 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
6月 02 23:05:22 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
6月 02 23:05:33 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.

journalctl --no-hostname -b -g alcor | cat:

6月 03 06:23:18 kernel: alcor_pci 0000:02:00.0: enabling device (0000 -> 0002)
6月 03 06:23:18 kernel: alcor_pci 0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control
6月 02 23:05:12 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
6月 02 23:05:22 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
6月 02 23:05:33 kernel: alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.

At least one of the systems iin your link to the LHDB has a Realtek RTS522A PCI Express Card Reader, but from your journalctl output, your system appears to have Alcor PCI card reader. Did you buy the laptop new or get from a reseller? The LHDB says it is supported by the kernel’s alcor_pcidriver, but the journalctl entry

indicates that the “BIOS” doesn’t give ASPM control to the linux kernel, so it appears linux can’t enable the reader.

1 Like