Linux Power PC пытается смонтировать раздел MTD при загрузке

Я работаю над созданием двух систем Linux, обе из которых основаны на устройствах Freescale PowerPC, одна - MPC8349, другая - P1020. Я смог собрать, установить и загрузить ядро ​​на обеих картах. Наборы инструментов и образы RAM-дисков поступают из пакетов LTIB от Freescale. Обе карты имеют 32 МБ флеш-памяти, сопоставленной по одному и тому же адресу.

У меня следующая проблема: плата P1020 загружается нормально, используя RAM-диск с флэш-памятью в дереве устройств, показывает разделы флэш-устройства (JFFS2) и НЕ пытается подключить флэш-раздел как root. MPC8349 нормально загружается с RAM-диск, но после определения разделов флэш-памяти ядро ​​паникует, потому что ищет раздел флэш-памяти для монтирования в качестве корневого раздела, и ни один из них не может быть использован (не отформатирован). Если я удаляю флэш-память из дерева устройств, карта загружается нормально используя RAM-диск.

Я не слишком знаком с загрузочными сценариями Linux, и я не понял, где можно отключить этот способ монтирования раздела MTD. Я хочу, чтобы платы загружались и монтировали RAM-диск, как это делает плата P1020. Флэш-раздел будет инициализирован и смонтирован позднее, но не как корневой раздел.

ТИА

Дорин

1 ответ

Сложно дать ответ, так как вы не показываете нам никакой информации о конфигурации.

Но в целом ядру Linux требуется корневая файловая система, поэтому она должна быть предоставлена ​​тем или иным способом, иначе она будет паниковать во время загрузки. Информация rootfs часто передается ядру через загрузочную строку из загрузчика. Вы можете увидеть параметры загрузки с помощью команды dmesg прямо в начале журнала.

Например, в вашем случае, когда вы используете разделы MTD, это может выглядеть так:

console=ttyAMA0,115200 root=/dev/mtdblock3 ro rootfs=squashfs rootwait

console Параметр указывает последовательную консоль, но он относится только к выходу последовательной консоли, поэтому не имеет к этому отношения. Третий (/dev/mtdblock3) раздел на устройстве mtd теперь указан как rootfs. Будет монтироваться только для чтения (ro флаг), а тип файловой системы указывается в виде squashfs (rootfs=squashfs). ключевое слово rootwait говорит ядру ждать неопределенно долго, пока происходит монтирование, в основном для асинхронных устройств (usb, mmc). Вы можете найти больше информации о различных загрузочных аргументах в https://www.kernel.org/doc/Documentation/kernel-parameters.txt

Теперь эта строка передается в ваше ядро ​​загрузчиком, я не знаком с вашей платой, но быстрый гугл говорит мне, что BSP Freescales для этого содержит u-boot погрузчик. Вы должны быть в состоянии найти свои параметры загрузки где-нибудь в файле конфигурации платы для u-boot, так что, возможно, grep: пингуйте исходный код u-boot с параметрами загрузки, которые вы найдете с помощью dmesg Вы можете найти это. Вы можете получить хороший намек на разницу, сравнивая строки загрузки между этими двумя платами.

Другие вопросы по тегам