将 SD 卡插入笔记本电脑的内置读卡器时,我的系统无法识别它。我已经尝试了 2 个带有适配器的 micro-SD 卡和 1 个 SD 卡,它们在 Windows 上都工作得很好,这意味着我可以排除读卡器或 SD 卡的问题。 SD 卡可以由外部 SD 卡读卡器通过 USB 进行访问,因此 SD 在 Linux 上并非无法访问。
我有一台 HP Pavilion 游戏笔记本电脑-dk1xxx,运行 Fedora Linux 39 工作站,内核版本为 6.7.9-200.fc39x86_64。我的笔记本电脑确实可以识别我的读卡器:
tygoe@fedora:~$ lspci --nnvv
...
08:00.0 Unassigned class [ff00]: Alcor Micro AU6625 PCI-E Flash card reader controller [1aea:6625]
Subsystem: Hewlett-Packard Company Device [103c:8742]
Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at a5300000 (64-bit, non-prefetchable) [disabled] [size=4K]
Capabilities: <access denied>
Kernel driver in use: alcor_pci
Kernel modules: alcor_pci
...
运行时lsusb
,无法识别,并且在lsblk
或中sudo fdisk -l
,找不到SD卡:
tygoe@fedora:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 464.2G 0 part /home
/
zram0 252:0 0 8G 0 disk [SWAP]
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 100M 0 part
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 475.7G 0 part
├─nvme0n1p4 259:4 0 582M 0 part
└─nvme0n1p5 259:5 0 530M 0 part
tygoe@fedora:~$ sudo fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
...
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
...
Disk /dev/zram0: 8 GiB, 8589934592 bytes, 2097152 sectors
...
插入后,也没有文件,/media
并且/dev
没有任何 mmcblk 设备。
在检查时dmesg
,我看到一个错误:首先初始化 SD 卡时失败,然后大约每 10 秒,它会说“超时等待硬件中断”,这与这个探针:
[ 4446.354315] mmc0: error -110 whilst initialising SD card
[ 4456.593240] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4466.833227] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4477.074294] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4487.313135] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4497.553234] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4507.793392] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4518.033422] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 4528.273424] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
向后滚动时,我也看到了这一点(我真的不知道它是否与此有关,但可能是这样):
[ 1141.382030] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
[ 1181.255355] pcieport 0000:00:1d.6: AER: Corrected error message received from 0000:00:1d.6
[ 1181.255368] pcieport 0000:00:1d.6: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
[ 1181.255370] pcieport 0000:00:1d.6: device [8086:06b6] error status/mask=00001000/00002000
[ 1181.255371] pcieport 0000:00:1d.6: [12] Timeout
[ 1232.518117] alcor_sdmmc alcor_sdmmc.0: Timeout waiting for hardware interrupt.
有人可以帮助我吗?这是驱动程序的源代码(包含在内核中)(如果有人能够用它做某事)。