Как я говорю, какой блоб дерева устройств (dtb файл) я использую?

feh утилита позволит Вам устанавливать знания в этом способе, если Вы будете использовать --no-xinerama флаг.

9
26.03.2015, 14:45
2 ответа

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

Этот компьютер в модуле можно установить практически на любой готовый TS или пользовательскую базовую плату, и мы хотели, чтобы он работал автоматически, без необходимости настраивать дерево используемых устройств. У нас есть регистр сдвига с 8 входами на любой несущей плате с уникальным идентификатором основной платы. На TS-8550 это 0x13. http://wiki.embeddedarm.com/wiki/TS-4900#Baseboard_ID

Итак, в U-Boot используется bbdetect ], которую мы добавили, читает GPIO, подключенный к этому регистру сдвига, и устанавливает переменную среды $ baseboardid. U-Boot сначала попытается загрузить дерево устройств конкретной основной платы по адресу / boot / imx6 $ {cpu} -ts4900 - $ {baseboardid} .dtb . Если его не удается найти, он будет использовать дерево резервных устройств по адресу / boot / imx6 $ {cpu} -ts4900.dtb . Этот последний файл имеет нормальные значения по умолчанию, которые будут работать на любой плате-носителе. TS-8550 не требуется несущая плата для конкретной основной платы, поэтому она возвращается к стандартному дереву устройств и продолжает загружаться.

Чтобы ответить на ваш исходный вопрос:

cat /proc/device-tree/model

Все наши деревья устройств будут иметь немного другую модель в дереве устройств.
Например, безопасный вариант:

  • «Technologic Systems i.MX6 Quad TS-4900 (дерево устройств по умолчанию)»

Или несущая плата TS-TPC-8390 с определенным дерево устройств:

  • «Technologic Systems i.MX6 Quad TS-4900 (TS-TPC-8390)»
7
27.01.2020, 20:05

Когда U-Boot выполняет команду загрузки, она предоставляет адрес памяти для ядра и адреса памяти для Blob. Поэтому до этой команды он должен загрузить эти файлы в память. На основании предоставленных вами сообщений мы видим, что два файла не будут загружены с карты EMMC / SD:

/boot/boot.ub
/boot/imx6dl-ts4900-13.dtb

Это возможно, что либо эти файлы просто не присутствуют, их путь неверно или неверное устройство: раздел был дан команда загрузки U-boot. В любом случае, команда не удалась. На данный момент кажется, что загрузчик пытается загрузить дерево устройства «по умолчанию» - возможно сохраненное на той же среде, что и сам загрузчик.

Чтобы узнать именно то, что происходит, вы захотите остановить процесс загрузки в загрузке и получить доступ к командной строке U-BOOT. Отсюда вы можете ввести:

printenv

Это распечатает переменные среды U-Boot. Многие из этих переменных ссылаются другие переменные. Некоторые из этих переменных часто выполняются как скрипты, поэтому вы можете увидеть сценарии загрузочных сценариев, сценариев нагрузки в ядро ​​и FDT и т. Д. Для выяснения последовательности загрузки ищете переменную вызов BootCMD (или что-то подобное). Обычно это то, что в конечном итоге запускается во время загрузки. Вам нужно будет проследить последовательность загрузки из этой точки через несколько переменных, но вы должны увидеть, где команда загрузки используются для загрузки FDT в память. Если вы хотите опубликовать вывод printenv , мы можем идентифицировать точную логику, используемую здесь.

8
27.01.2020, 20:05

Теги

Похожие вопросы