Автор Тема: Альфа регулярных сборок для armh и aarch64  (Прочитано 74100 раз)

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
У работающего armbian-а используется таблица разделов msdos (или mbr, как правильнее это называется). Хотя в документации rockchip говорится о gpt.

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
Что-то  я не понял, на что ссылается /boot/dtb. У меня на каталог /lib/devicetree/5.0.4-mp-alt1, где лежат все dtb. Почему не делается ссылка на dtb  для указанной модели? Это, конечно, в моем случае не повлияло на процесс, так как до данного этапа дело не дошло. Но все-таки, в чем задумка то?


Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Merblud, у вас firefly-rk3399?

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
Nanopc T4

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Nanopc T4

Ей нужен свой u-boot и ядро 5.1. Но это конечно же не означает, что alt-rootfs-installer всё делает правильно.

У вас же вроде chromebook был? Почему бы на нём не попробовать? --target=chromebook_bob

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Что-то  я не понял, на что ссылается /boot/dtb. У меня на каталог /lib/devicetree/5.0.4-mp-alt1, где лежат все dtb.

Ядро mp (вряд ли u-boot) умеет выбрать нужный dtb из каталога. Для универсальности, простоты обеспечения работы на огромном количестве устройств одной и тоже сборки.

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
На Nanopc T4 вполне себе нормально (ну почти нормально) работает ядро 5.0.0 (и даже 4.20, хотя вроде это одно и то же), но собранное только для rk3399. Проверено практикой. То, что ей нужен свой u-boot я не спорю. Но все-таки думаю, что разница у u-boot для разных плат на rk3399 может быть разве, что в том, что на "чужой" плате он не сможет грузиться по сети, и/или правильно инициализировать контроллер ddr памяти. Т.е в итоге, конечно, нужна сборка u-boot именно родная для конкретной платы. Но попробовать можно и от другой.

Chromebook штука в определенном смысле неплохая. Но по сравнению с Nanopc T4 (или тем же firefly) он сильно проигрывает в возможностях. А Nanopc T4 я могу использовать, как почти полноценную замену писюку. Так что постараюсь домучить его до победного конца.

Ядро mp (вряд ли u-boot) умеет выбрать нужный dtb из каталога.

Ну обычно то u-boot и грузит нужный dtb. Выбирать он, конечно, не умеет, а грузит тот, что указан в конфиге. Но зачем ему выбирать, если все равно прошивка ставится на вполне конкретную модель.
А вот то, что ядро может выбирать dtb для меня честно сказать звучит неожиданно. Разве само ядро не должно прежде хотя бы частично сконфигурироваться, в том числе с помощью dtb, чтобы "суметь" прочитать что-то с карточки?

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
2 Антон Мидюков

А вы образы компонентов загрузчика сами собираете, или берете уже готовые?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
А вы образы компонентов загрузчика сами собираете, или берете уже готовые?

u-boot? Готовые. dtb вместе с ядром собираются и входят в состав его пакета.
initrd генерируется при сборке rootfs.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Но зачем ему выбирать, если все равно прошивка ставится на вполне конкретную модель.

Я собираю универсальную rootfs же.

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
u-boot? Готовые. dtb вместе с ядром собираются и входят в состав его пакета.

Нет. Я спрашивал именно про сам загрузчик. Для rk3399, например, прописывается idbloader.img, uboot.img, trust.img. Idbloader.img тоже в свою очередь состоит из нескольких компонентов и т.д. Часть из них только в бинарном виде доступны. А часть можно собрать из исходников, тот же u-boot. Вы собираете?

Я собираю универсальную rootfs же.

Это понятно. Но эту универсальную rootfs все равно надо записать на карточку, на которую нужно записать конкретные бинарники загрузчика для конкретной платы. В другой модели эта карточка все равно не заработает.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Нет. Я спрашивал именно про сам загрузчик. Для rk3399, например, прописывается idbloader.img, uboot.img, trust.img. Idbloader.img тоже в свою очередь состоит из нескольких компонентов и т.д. Часть из них только в бинарном виде доступны. А часть можно собрать из исходников, тот же u-boot. Вы собираете?

cat socs.d/Rockchips-aarch64
# write uboot
echo "= Writing SPL ...."
dd if=$PREFIX/usr/share/u-boot/$TARGET/idbspl.img of=$MEDIA seek=64; sync; sleep 5
echo "= Writing u-boot FIT image ...."
dd if=$PREFIX/usr/share/u-boot/$TARGET/u-boot.itb of=$MEDIA seek=16384; sync; sleep 5

Вот так мы записываем. А собирается вот так: https://packages.altlinux.org/ru/sisyphus/specfiles/u-boot-rockchip

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Это понятно. Но эту универсальную rootfs все равно надо записать на карточку, на которую нужно записать конкретные бинарники загрузчика для конкретной платы. В другой модели эта карточка все равно не заработает.

Загрузчик в рамках одного SOC можно поменять одной командой прям с самой платы. Все загрузчики внутри rootfs. У Rockchip несовместимая с Allwinner разметка, потому придётся собирать отдельный image. А в будущем ещё отдельные образы для Amlogic, и ещё неизвестно, не появятся ли новые какие разновидности. Понимаете, под каждый SOC придётся создавать новые профили в mkimage-profiles, что мне не хочется. А так alt-rootfs-insraller пригодился ещё и для riscv64. А дальше больше, можно и на x86_64 замахнуться.
« Последнее редактирование: 22.04.2019 19:03:46 от Антон Мидюков »

Оффлайн Merblud

  • Завсегдатай
  • *
  • Сообщений: 405
Ну в общем я так понял, что пока что попытки поставить регулярку в полном объеме на rockchip можно отложить до выхода ядра 5.1. Там уже имеется dts для T4. Правда в u-boot я такового пока что не наблюдаю.
Я попробовал разные загрузчики, в том числе и не только из alt-rootfs-installer. Но результат приблизительно один и тот же. До попытки загрузить ядро дело не доходит. Такое впечатление, что что-то не то с разметкой карточки. Или я просто не знаю каких-то нюансов работы u-boot.

Скажите еще пожалуйста, а вы ядро и загрузчик для arm-ых железок собираете стандартными средствами разработки из Сизифа? Или ставите какие-то специально для этого проверенные сторонние chaintools?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 404
  • antohami@
Скажите еще пожалуйста, а вы ядро и загрузчик для arm-ых железок собираете стандартными средствами разработки из Сизифа? Или ставите какие-то специально для этого проверенные сторонние chaintools?

Стандартным образом. u-boot для aarch64 собирается на aarch64 стандартным образом в hasher.

Правда в u-boot я такового пока что не наблюдаю.

Да, нужно чтобы ещё и u-boot появился для платы.

Такое впечатление, что что-то не то с разметкой карточки.

Вот, я тоже подозреваю это...