Как я могу остановить восстановление emmc?
У меня есть готовое ядро Linux 4.19. Я не могу построить новый. Я могу без проблем смонтировать раздел emmc только для чтения. У меня проблемы с монтированием разделов на чтение и запись. Он сообщает «выполняется восстановление CQE».
Я подумываю отключить функцию восстановления, когда она запустится после того, как яmount partition -o rw
. Я подозреваю, что эта функция находится в core.c. Моя идея заключалась бы в том, чтобы установить MMC_CQE_RECOVERY_TIMEOUT в качестве параметра командной строки ядра. Но я не знаю, какой параметр это делает, если он существует. Или я мог бы запустить функцию, которая останавливает восстановление. Возможно, я мог бы создать двоичный файл, который вызывает функциюmmc_cqe_request_done(mmc, mrq)
из cqhci-core.c , но у меня нет доступа кmmc, mrq
параметры, так как я не создаю драйвер ядра или, может быть, я могу каким-то образом создать параметры из самого блочного устройства после загрузки ядра и запускаmknod()
. Что из этого возможно?
Я не пытаюсь исправлять какой-либо исходный код ядра. Я хочу знать, можно ли остановить выполнение восстановления QCE, создав двоичный файл, который я могу запустить, или использовать параметр ядра, который может остановить восстановление QCE.
1 ответ
Когда я задал этот вопрос, я понятия не имел, что объекты дерева устройств можно изменить. Мое решение перехода заключалось в том, что я мог запустить код в пользовательском пространстве, чтобы остановить восстановление. Я нашел более простое решение. Что не имеет никакого отношения к написанию кода.
Проблема заключалась в том, что мне нужно было остановить очередь команд, и я понятия не имел, как это сделать, и не знал, где она вообще включается.
Оказывается, дерево устройств имеетmediatek,cqhci
свойство, которое плохо поддерживается ядром. Похоже, что мои исходные коды ядра, вероятно, включили его, исправив исходные коды ядра, поскольку он не был доступен для основной линии MEDIATEK mmc.
/dts-v1/;
/ {
mmc@11230000 {
compatible = "mediatek,mt6768-mmc";
mediatek,cqhci;
};
};
Поэтому мне пришлось изменить файл дерева устройств с помощью fdtput.
fdtput -d /path/to/fdt /mmc@11230000 "mediatek,cqhci"
Шаги