Linux

在 Lenovo IdeaPad 1 11ADA05 上找不到 Ramexal SSD

  • May 14, 2021

我正在嘗試在我的 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/1015ivrs_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

引用自:https://unix.stackexchange.com/questions/627518