С последним ядром Ubuntu Mainline 5.13 я теперь могу видеть устройство mmc на моем IdeaPad 1 11ADA05.
Может помочь отключение IOMMU.
Глядя на вывод lspci
, становится очевидным, что там нет устройства PCI, которое соответствовало бы хост-контроллеру SD/MMC. Это объясняет, почему модули драйвера mmc никогда не загружаются (, загрузка модулей запускается при появлении соответствующего устройства ).
Я никогда не видел эту конкретную машину, поэтому не знаю точно, какой тип MMC-контроллера она использует. Однако весьма вероятно, что отсутствие выделенного контроллера означает, что память подключена к встроенному контроллеру -в ЦП.
Учитывая, что его устройство PCI также нигде не видно,Я подозреваю, что вы столкнулись с вариантом ошибки, упомянутой в списке рассылки ядра некоторое время назад :
.https://www.lkml.org/lkml/2019/9/21/31«IOMMU против встроенного контроллера EMMC Ryzen»
Короче говоря, из-за неправильной конфигурации таблиц ACPI платформы (, предоставленных поставщиком машины ), IOMMU (продается как «AMD -Vi» или «Intel VT -d" )не имеет надлежащего отображения для устройства PCI и, таким образом, скрывает его от ядра.
Чтобы проверить, так ли это, попробуйте поискать в настройках UEFI переключатель, позволяющий отключить IOMMU. Если отключение IOMMU помогает, вы можете оставить его, если не хотите запускать какие-либо виртуальные машины на устройстве и предоставлять этим виртуальным машинам быстрый доступ к аппаратному обеспечению (, обычно используемому для ускоренного рендеринга графического процессора в виртуальных машинах ).
В качестве альтернативного теста вы можете попробовать загрузить драйвер вручную с помощью modprobe sdhci_acpi
и посмотреть, появятся ли какие-либо ошибки от IOMMU в журнале dmesg
.
Если отключение IOMMU помогает, но вы действительно хотите оставить его включенным, вам потребуется обходной путь, используя ivrs_acpihid
по аналогии сhttps://www.lkml.org/lkml/2019/10/9/1015:
I suspect that there is something missing in the IVRS table, where it needs to provide ACPI HID for the eMMC device.
See kernel parameter:
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