Ядро Angstrom OpenEmbedded зависает при загрузке на оригинальной BeagleBoard

Я пытаюсь получить оригинальный BeagleBoard (revC4) для загрузки образа Angstrom OpenEmbedded. Используя инструкции, найденные здесь:

http://elinux.org/BeagleBoardAndOpenEmbeddedGit

а также:

http://www.angstrom-distribution.org/building-angstrom

Я выполнил все, но программа зависла с сообщением о загрузке ядра.

Выход:

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from mmc


U-Boot 2009.11 (Feb 23 2010 - 15:33:48)

OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Board revision C4
Die ID #40a8000400000000040365fa1301c014
Hit any key to stop autoboot:  0 
mmc1 is available
reading boot.scr

** Unable to read "boot.scr" from mmc 0:1 **
reading uImage

4335440 bytes read
Booting from mmc ...
 Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-3.2.28
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4335376 Bytes =  4.1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Я пробовал как ttyS2, так и ttyO2 в bootargs без разницы, а также обновлял xLoader и uBoot.

Моя конечная цель — запустить элементарную ROS (операционную систему для роботов) и BeagleBoard.

Любая помощь будет действительно оценена.


person Tinus Green    schedule 22.04.2015    source источник
comment
Трудно сказать, что именно происходит, исходя из предоставленного вами вывода. Вы можете попробовать использовать Earlyprintk для отладки этой проблемы. Добавьте earlyprintk в командную строку ядра (в u-boot), а также пересоберите ядро ​​с включенными параметрами конфигурации Earlyprintk. Это должно дать вам более последовательный вывод ядра, чтобы вы могли видеть, что вызывает зависание ядра.   -  person Sam Protsenko    schedule 22.04.2015
comment
Спасибо за комментарий. Я не знаю, как пересобрать ядро ​​с помощью Earlyprintk. Я использую конструктор образов Angstrom. Я также не уверен, как добавить строку в u-boot? Извините, я довольно новичок в этом.   -  person Tinus Green    schedule 22.04.2015
comment
Войдите в оболочку u-boot, нажав Enter сразу после сброса. Командная строка ядра хранится в переменной bootargs. Вы можете наблюдать с помощью print bootargs. Чтобы добавить earlyprintk к этой переменной, используйте setenv bootargs $bootargs earlyprintk. Что касается ядра, я не уверен, потому что вы используете обертку (построитель образов), но это всегда сводится к следующему: вам нужно исправить ваш файл defconfig, чтобы в нем были CONFIG_DEBUG_LL=y, CONFIG_DEBUG_KERNEL=y и CONFIG_EARLY_PRINTK=y. Это должно быть сделано с помощью команды make ARCH=arm menuconfig (после того, как файл .config сгенерирован из вашего defconfig).   -  person Sam Protsenko    schedule 22.04.2015
comment
Подробнее см. эту ссылку.   -  person Sam Protsenko    schedule 22.04.2015


Ответы (1)


Я не знаю, справлялись ли вы когда-нибудь с этим, но, поскольку я недавно пытался снова запустить и запустить Beagleboard, я отвечу здесь, чтобы кто-нибудь еще пытался заставить все работать.

Версия TLDR: используйте Angstrom v2013.6 и удерживайте кнопку пользователя во время загрузки (или обнулите флэш-память NAND) для самого простого решения, которое просто работает. Подробности смотрите ниже.

Прежде всего, место, в котором вы застряли, связано с тем, что u-boot, прошитый в NAND, устарел для последней версии Angstrom. Простое исправление заключается в том, чтобы удерживать пользовательскую кнопку при загрузке, что позволит обойти NAND и загрузиться прямо с SD-карты, на которой, предположительно, установлена ​​версия u-boot, которую вы только что создали. Затем вы можете остановить загрузку и либо обнулить NAND, либо прошить в нее текущую MLO и u-boot.

После этого вы столкнетесь с еще некоторыми проблемами, если используете образ на основе systemd. Уровень meta-ti управляет основными параметрами конфигурации «beagleboard», а его провайдер виртуального/ядра настроен на linux-mainline, который также находится на уровне meta-ti. В какой-то момент для него была добавлена ​​новая версия рецепта, которая собирает ядро ​​​​3.14, но конфигурация ядра не подходит для systemd, и система зависает вскоре после загрузки.

Хорошей новостью является то, что Angstrom v2013.06 предшествует изменению ядра 3.14 в meta-ti, и я смог нормально его запустить. Я пытаюсь получить более новый Angstrom, работающий с ядром 3.2, который работает с v2013.6, но мне пока не повезло.

person Levi Pearson    schedule 17.08.2015