在 Lenovo IdeaPad 1 11ADA05 上找不到 Ramexal SSD
我正在嘗試在我的 Lenovo IdeaPad 1 11ADA05 上安裝 Linux。我已經在 SD 卡上準備了安裝程序。它可以正常啟動到 SD 卡,但是當我嘗試安裝發行版時,它找不到我的 SSD。我的 SSD 型號是 eMMC 卡 64gb Ramexal SSD。我嘗試了多種不同的發行版,包括 Arch、Manjaro、Ubuntu、Mint、Kubuntu 和 GNU Guix。這是輸出
fdisk -l
Disk /dev/loop0: 81.81 MiB, 85786624 bytes, 167552 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 537.95 MiB, 564084736 bytes, 1101728 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop2: 1.31 GiB, 1404850176 bytes, 2743848 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop3: 656.67 MiB, 688570368 bytes, 1344864 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 29.72 GiB, 31914983424 bytes, 62333952 sectors Disk model: MassStorageClass Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/sda1 * 64 5496075 5496012 2.6G 0 Empty /dev/sda2 5496076 5504267 8192 4M ef EFI (FAT-12/16/32)
有什麼方法可以讓我的 SSD 工作還是我卡在 Windows 上?
使用最近的 Ubuntu Mainline Kernel 5.13,我現在可以在 IdeaPad 1 11ADA05 上看到 mmc 設備。
禁用 IOMMU 可能會有所幫助。
查看 的輸出
lspci
,很明顯那裡沒有對應於 SD/MMC 主機控制器的 PCI 設備。這解釋了為什麼永遠不會載入 mmc 驅動程序模組(當匹配設備出現時會觸發載入模組)。我從未見過那台特定的機器,所以我不確定它使用什麼樣的 MMC 控制器。但是,沒有專用控制器很可能意味著記憶體連接到 CPU 中的內置控制器。
鑑於它的 PCI 設備也無處可見,我懷疑您受到了核心郵件列表中提到的錯誤變體的影響:
https://www.lkml.org/lkml/2019/9/21/31 “IOMMU 與 Ryzen 嵌入式 EMMC 控制器”
簡而言之,由於平台 ACPI 表(由機器供應商提供)的錯誤配置,IOMMU(以“AMD-Vi”或“Intel VT-d”銷售)沒有正確的 PCI 設備映射從而將其隱藏在核心之外。
要查看是否是這種情況,請嘗試在 UEFI 設置中查看可讓您禁用 IOMMU 的切換選項。如果禁用 IOMMU 有幫助,您可以將其關閉,除非您想在設備上執行任何虛擬機並讓這些虛擬機快速訪問硬體(通常用於虛擬機中的加速 GPU 渲染)。
作為替代測試,您可以嘗試手動載入驅動程序,並查看日誌
modprobe sdhci_acpi
中是否有來自 IOMMU 的任何錯誤。dmesg
如果禁用 IOMMU 有幫助,但您真的想保持啟用狀態,則需要使用 https://www.lkml.org/lkml/2019/10/9/1015 的
ivrs_acpihid
解決方法:我懷疑 IVRS 表中缺少某些內容,它需要為 eMMC 設備提供 ACPI HID。
見核心參數:
ivrs_acpihid [HW,X86_64] Provide an override to the ACPI-HID:UID<->DEVICE-ID mapping provided in the IVRS ACPI table. For example, to map UART-HID:UID AMD0020:0 to PCI device 00:14.5 write the parameter as: ivrs_acpihid[00:14.5]=AMD0020:0