硬件信息
- 笔记本电脑型号:Sony Vaio Pro 13
- 有问题的硬件:内置 Realtek Semiconductor Co., Ltd. RTS5209 PCI Express 读卡器
问题描述
问题是,如果我将 SD 卡插入读卡器启动,我的 Gentoo 会正确加载内核模块并检测到 SD 卡,根据 dmesg 输出将其分配给 /dev/mmcblk0,XFCE 还会在桌面上显示 SD 图标,因此我可以毫无问题地安装它。
但如果我在读卡器中没有任何 SD 卡的情况下启动,并在启动后插入 SD 卡,则不会发生任何情况。没有检测到 SD 卡,dmesg 没有显示任何内容。
由于SystemRescueCD(也是基于Gentoo)按预期正确工作(在未插入SD卡的情况下启动,启动后插入SD卡,SystemResuceCD可以正确检测到它并将其分配给/dev/mmcblock0。所以我想我一定错过了一些配置我的Gentoo。
我尝试过什么
我尝试比较两种配置的 lsmod 输出,发现如果我在插入 SD 卡的情况下启动,将加载以下附加内核模块。
rtsx_pci_sdmmc 13679 0
rtsx_pci_ms 7218 0
mmc_core 91689 2 mmc_block,rtsx_pci_sdmmc
memstick 6896 1 rtsx_pci_ms
rtsx_pci 31487 2 rtsx_pci_ms,rtsx_pci_sdmmc
当我使用 SystemRescueCD 时,我将 SD 卡插入读卡器后也确认了这些模块已加载。
我也尝试在我的 Gentoo 系统上手动加载这些模块,但是加载它们后没有任何反应,dmesg 中没有新的打印输出,仍然没有检测到 SD 卡。
lspci输出
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5209 PCI Express Card Reader (rev 01)
03:00.0 SATA controller: Samsung Electronics Co Ltd XP941 PCIe SSD (rev 01)
内核配置
- MMC/SD/SDIO 卡支持内的所有内容(MMC 调试/MMC 主机时钟门控/MMC 主机测试驱动程序除外)均编译为内核模块。
- CONFIG_MEMSTICK=m
- CONFIG_MEMSTICK_REALTEK_PCI=m
我完全陷入困境,不知道下一步应该采取什么措施来解决这个问题,我现在应该检查哪里?
答案1
弄清楚我应该启用以下内核配置:
CONFIG_HOTPLUG_PCIE=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
根据我的旧配置添加这三个配置后,一切都按预期工作。