Доступ к корневой файловой системе из U-boot

Доступ к корневой файловой системе из U-boot

Я пытаюсь отладить встроенное устройство, подключение через последовательный порт, подключенное с помощью кабеля USB-UART. Embedded Linux v.2.6.26.5 Как получить доступ к корневой файловой системе "/" и подкаталогам в корневой FS? Команда shellнедоступна в режиме U-boot. Есть ли способ получить доступ к оболочке CLI из U-boot? Доступные команды и журналы U-boot:здесьиздесь.

решение1

Думаю, вам нужно пройти третий этап U-boot.

Третий этап — загрузка ядра Linux. Однако, прежде чем ядро ​​Linux возьмет управление на себя, u-boot передает ядру командную строку, содержащую основные параметры. Эти параметры можно просмотреть после загрузки операционной системы, введя в окно терминала следующее:

$ cat /proc/cmdline
root=/dev/mmcblk0p2 rootwait rw console=ttyS0,115200n8 console=tty0 no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=1080p m_bpp=32 vout=hdmi disablehpd=true

Ядро инициализирует оборудование, монтирует корневую файловую систему (в соответствии с параметром ядра root=...) и передает поток управления в /sbin/init. Если вам нужны дополнительные сведения о Uboot, следуйте этомусвязь

решение2

В зависимости от файловой системы и носителя вы можете выгрузить данные в шестнадцатеричной форме прямо в оболочке u-boot. Если вы занимаетесь обратным проектированием, просмотрите helpвывод, чтобы понять, какой тип доступа к устройству хранения данных и команды управления вы скомпилировали в U-boot, и продолжайте оттуда. После загрузки в память или, может быть, даже иногда без нее вы можете использовать 'md' для его выгрузки. Используйте адреса загрузки после части u-boot в памяти, иначе он перезагрузится. Имейте в виду, что в большинстве случаев файловые системы сжаты и не могут быть изменены навсегда (squashfs является обычным явлением). Иногда u-boot поставляется с командой, которая может загружать и считывать несжатые данные. Просмотр файловой системы из дампа памяти может быть утомительным, поэтому часто лучше всего локально регистрировать весь дамп раздела, преобразовывать его в двоичный файл и работать с ним локально.

Вы можете успешно загрузить оболочку, изменив init=аргумент ядра так, чтобы он указывал на программу оболочки. Обычно для встроенных устройств это busybox, поэтому это будет /bin/ash.

Связанный контент