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

Оффлайн Balbes

  • alt linux team
  • ***
  • Сообщений: 891
Бегло попробовал последние версии LXDE и XFCE на OPi PC2 (специально откопал в загашниках эту модель, что-бы максимально придерживаться инструкции).
Есть несколько рекомендаций.
1. В инструкции изменить строку , убрать упоминание про RPI, это сбивает с толку, создаётся ощущение, что копировать ядро нужно только для RPI, а по факту - для всех моделей. Я с начала решил, что копировать нужно только для RPI и прошлось потратить время на выяснение, почему не грузиться. Особенно это затрудни тех, кто только первый раз это делает и будет сложность в понимании, что мешает нормальному запуску.

3.1) Для Raspberry Pi 3 нужно скопировать из rootfs на раздел fat для aarch64:

2. Желательно выпускать сразу образ (или два, сразу для aarch64 и arm), а не архив с кучей шагов, это не сложно добавить в M-P, что-бы сразу собирался образ. Пользователю останется только добавить правильный u-boot на носитель.
 
3. Для первичного запуска настроечного набора шагов, желательно задать разрешение экрана 640х480 или 800х600. Сейчас при запуске на ТВ  FULL HD с разрешением 1080p прочитать текст оооооооочень сложно, настолько всё мелкое и нет возможности увеличить. То же самое относиться к LXDE и частично к XFCE - шрифт в части приложении очень мелкий. Хорошо бы всё это привести к единому варианту. Но в рабочей системе можно хоть в настройках увеличить, что-бы было видно текст.

4. В LXDE по умолчанию есть MPV, в XFCE - в качестве плеера используется пароль , который не умеет работать с сетью, т.е. с NAS ни чего не посмотришь. Желательно везде использовать единую софтину (оптимально MPV).

5. Добавить конфиг для MPV по умолчанию с такими настройками

https://github.com/150balbes/Build-Armbian/blob/master/packages/bsp/mpv/mpv_mainline.conf

я проверил, с ними в Альтах (как и в Armbian) видео работает вполне прилично. В родном разрешении вообще без тормозов, а при разворачивании на весь экран - не идеально, но вполне смотрибельно даже без HW.


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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
В инструкции изменить строку , убрать упоминание про RPI, это сбивает с толку, создаётся ощущение, что копировать ядро нужно только для RPI, а по факту - для всех моделей.

Какое ядро? Для Raspberry копируется не ядро, а загрузчик и проприетарные компоненты для broadcom'овской ОС. Другим платам они не нужны. Раздел ROOT нужно отметить флагом boot обязательно.

2. Желательно выпускать сразу образ (или два, сразу для aarch64 и arm), а не архив с кучей шагов, это не сложно добавить в M-P, что-бы сразу собирался образ. Пользователю останется только добавить правильный u-boot на носитель.

Я решил сделать установщик rootfs консольный, одной командой будет готовиться флэшка, разворачиваться rootfs и устанавливаться загрузчик для платы, которую выберет пользователь. Образам то надо ещё потом и resize делать. Вариант, делать это при первой загрузке, мне не очень нравится.

3. Для первичного запуска настроечного набора шагов, желательно задать разрешение экрана 640х480 или 800х600. Сейчас при запуске на ТВ  FULL HD с разрешением 1080p прочитать текст оооооооочень сложно, настолько всё мелкое и нет возможности увеличить.

Да, это нужно сделать, согласен.

То же самое относиться к LXDE и частично к XFCE - шрифт в части приложении очень мелкий. Хорошо бы всё это привести к единому варианту. Но в рабочей системе можно хоть в настройках увеличить, что-бы было видно текст.

Тут всем не угодишь. Регулярки и стартеркиты - это не готовые продукты. Они для энтузиастов и тестирования.

4. В LXDE по умолчанию есть MPV, в XFCE - в качестве плеера используется пароль , который не умеет работать с сетью, т.е. с NAS ни чего не посмотришь. Желательно везде использовать единую софтину (оптимально MPV).

Над этим тоже надо будет подумать. Метапакетами тянется. В них и надо исправлять.

5. Добавить конфиг для MPV по умолчанию с такими настройками

https://github.com/150balbes/Build-Armbian/blob/master/packages/bsp/mpv/mpv_mainline.conf

я проверил, с ними в Альтах (как и в Armbian) видео работает вполне прилично. В родном разрешении вообще без тормозов, а при разворачивании на весь экран - не идеально, но вполне смотрибельно даже без HW.

За это отдельное спасибо! Попробую. Его, кстати, куда кидать? Вместо /etc/mpv/encoding-profiles.conf ?

Оффлайн Balbes

  • alt linux team
  • ***
  • Сообщений: 891
Для Raspberry копируется не ядро, а загрузчик
Я видел в названии kernel, поэтому решил, что это ядро. Значит ошибся.

Раздел ROOT нужно отметить флагом boot обязательно.
Можно не отмечать, если использовать один раздел с ROOT системой. Я проверил несколько вариантов (с одним разделом, с двумя и размещением нужных файлов в разделе FAT). Система работает в обоих вариантах. Нужно определиться , какой вариант лучше использовать - с двумя разделами (boot разместить на FAT) или с одним разделом с ext4. У каждого есть свои плюсы и минусы. Я бы рекомендовал с двумя разделами. Это решает сразу несколько вопросов.
По поводу выбора метки ROOT, лучше ее заменить на ROOTFS (или что то аналогичное). Это связано с тем, что метка ROOT очень похожа на root и при определённых условиях это вызывает проблемы (это совет по опыту запуска разных систем на ARM, я сталкивался с такой проблемой).

и устанавливаться загрузчик для платы
С этим не всё так просто. Я проверил u-boot для VIM и VIM2 - то, что сейчас в архиве, это не рабочие версии. Я так понимаю, что эти файлы, это результат сборки из исходников "чистого" u-boot ? Это не позволит собрать реальный u-boot для AML, т.к. для рабочей версии нужно еще добавить FIP файлы (блобы), которые по линцензионым соображениям нельзя разместить в общем GIT u-boot. Поэтому я по опыту работы с разными u-boot советую использовать другую схему - включать в архив (образ) готовые и проверенные файлы u-boot. Например, для AML вы можете взять эти готовые (и главное реально проверенные) бинарники u-boot.bin из пакетов DEB для Armbian (если нужно, я могу скинуть сразу готовые файлы для S905x и S912).
Кстати, я проверил запуск Alt на VIM2 (s912) в разных вариантах (с другим рабочим u-boot). Система нормально запускается и работает, но нет звука (это известная проблема для текущего ядра 4.20, нужны дополнительные патчи, в Armbian я использую исходники с этими патчами от LE и в Armbian все работает на всех S9xxx).
Процесс авторасширения раздела давно и хорошо отлажен на многих системах (LE Armbian Volumio etc) и нет ни каких проблем с этим.

Над этим тоже надо будет подумать. Метапакетами тянется. В них и надо исправлять.
Я бы на первом этапе (пока всё не будет полностью отлажено) ограничился минимальным набором образов - один сервер и один десктоп.

Его, кстати, куда кидать? Вместо /etc/mpv/encoding-profiles.conf ?
в /etc/mpv/mpv.conf



Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Извиняюсь, что не совсем в тему. Но, попробовал собрать загрузчик для rk3399.
trusted-firmware не собирается потому, что странным образом as не распознает ключ -EL, хотя binutils для aarch64 установлены.
u-boot не собирается потому, что ему нужен gcc не ниже 6 версии, а в p8 только 5-ка.  :-(

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Извиняюсь, что не совсем в тему. Но, попробовал собрать загрузчик для rk3399.
trusted-firmware не собирается потому, что странным образом as не распознает ключ -EL, хотя binutils для aarch64 установлены.
u-boot не собирается потому, что ему нужен gcc не ниже 6 версии, а в p8 только 5-ка.  :-(

Дайте ссылку на исходники. А вообще u-boot для rk3399 можно взять у fedora в пакете uboot-images-armv8 (ищите пакет через pkgs.org)

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Дайте ссылку на исходники.

Ну вот, например. https://github.com/u-boot/u-boot/tree/master/board/rockchip/evb_rk3399
Там, правда, не указано, что надо еще собственно u-boot скачать.

А вообще u-boot для rk3399 можно взять у fedora в пакете uboot-images-armv8 (ищите пакет через pkgs.org)

Да не только там можно скачать. Но как-то хотелось бы, чтоб уж, если дистрибутив Альт, то и загрузчик в нем должен быть по максимуму собран в Альт-е, а не тянут целиком откуда-то. К тому-же в бинарнике u-boot могут быть какие-нибудь сюрпризы. Armbian-ий u-boot, например, параметры для старта ядра ищет в файле типа ArmbianEnv.txt, или что-то в этом роде.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Попробую поставить какую-нибудь регулярную сборку в VirualBox, и там собрать.

Оффлайн Balbes

  • alt linux team
  • ***
  • Сообщений: 891
что ему нужен gcc не ниже 6 версии, а в p8 только 5-ка
Обычно сборка u-boot  выполняется строго с определённой версией gcc. Например, для AML в официальном GIT в редми указана версия gcc linaro 4.8  и ссылки , откуда их брать. Так же указано, что после сборки самого u-boot нужно добавить блобы специальным порядком.

чтоб уж, если дистрибутив Альт, то и загрузчик в нем должен быть по максимуму собран в Альт-е, а не тянут целиком откуда-то.
u-boot это особая вещь, которая не просто собирается из исходников, а для каждой платформы, дополнительно, используются строго свои варианты блобов (которые охраняются производителем как зеница ока и ни кому не дают исходники), поэтому нет смысла тратить время на попытку всё унифицировать, проще использовать готовое и проверенное.

К тому-же в бинарнике u-boot могут быть какие-нибудь сюрпризы. Armbian-ий u-boot, например, параметры для старта ядра ищет в файле типа ArmbianEnv.txt, или что-то в этом роде.
Нет в u-boot сюрпризов. А то, что вы воспринимаете как "сюрпризы u-boot", это банальная работа скриптов запуска (конкретно для u-boot-2018 для rk3399 это boot.scr, которые автоматом собираются при формировании образа из текстового исходника). Кстати,  вы можете легко править эти скрипты в любое время и по своему усмотрению. Откройте скрипты и увидите в низу специальное описание, как после правки получить рабочий бинарник утилитой mkimage из текстового файла, а в составе образа специально включаются сами исходники в текстовом виде. И для справки, скрипты - это хитрые банарники, которые многие воспринимают, как обычный текст, но это не так, любое изменение содержимого, требует последующей обработки, что-бы сформировать контрольную сумму в начале, по которой u-boot проверяет возможность запуска скрипта (сценария).

Попробую поставить какую-нибудь регулярную сборку в VirualBox, и там собрать.
Не трать время, результат будет отрицательный. Повторю, для сборки u-boot нужно строго соблюдать порядок, предписанный в доках для каждой платформы свой, иначе замумукаешься ловить проблемы в самых не понятных местах.


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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Процесс авторасширения раздела давно и хорошо отлажен на многих системах (LE Armbian Volumio etc) и нет ни каких проблем с этим.

А я уже установщик почти дописал :-) Это будет Альт фича, достаточно архива rootfs.

Можно не отмечать, если использовать один раздел с ROOT системой.

Знаю. В моём установщике всё зависит от выбранной цели. Если не rpi2 и не rpi3, раздел создаётся один, иначе два. Но можно и ещё условий понаписать. Гибкость, однако. Также инсталлятор позволяет загрузчик устанавливать из уже установленной rootfs. Т.е. можно установить rootfs с целью rpi3 и затем, не указывая rootfs, установить дополнительный загрузчик или заменить rpi3 (aarch64) на rpi2 (armh). Плюс там на каждый чих проверки написал. Прям самому нравится. Осталось ограничить список целей действительно поддерживаемыми и форк оформить, а затем уже и опакетить.

По поводу выбора метки ROOT, лучше ее заменить на ROOTFS (или что то аналогичное). Это связано с тем, что метка ROOT очень похожа на root и при определённых условиях это вызывает проблемы (это совет по опыту запуска разных систем на ARM, я сталкивался с такой проблемой).

Тоже над этим думал, но так повелось в сборках Сергея Большакова. Подумаю ещё.

Поэтому я по опыту работы с разными u-boot советую использовать другую схему - включать в архив (образ) готовые и проверенные файлы u-boot.

Как я понимаю, на это пойти не можем. Наши u-boot должны собираться в Альте.

Я бы на первом этапе (пока всё не будет полностью отлажено) ограничился минимальным набором образов - один сервер и один десктоп.

Главная задача регулярок - регулярное тестирование пакетов Сизифа, используемых для их сборки. Сервер будет в стартеркитах.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Например, для AML вы можете взять эти готовые (и главное реально проверенные) бинарники u-boot.bin из пакетов DEB для Armbian (если нужно, я могу скинуть сразу готовые файлы для S905x и S912).

Скидывай, на выходных попробую запустить на приставке Inphic Spot i7 (S905). С альтовским u-boot не завелась.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Нет в u-boot сюрпризов. А то, что вы воспринимаете как "сюрпризы u-boot", это банальная работа скриптов запуска (конкретно для u-boot-2018 для rk3399 это boot.scr, которые автоматом собираются при формировании образа из текстового исходника). Кстати,  вы можете легко править эти скрипты в любое время и по своему усмотрению. Откройте скрипты и увидите в низу специальное описание, как после правки получить рабочий бинарник утилитой mkimage из текстового файла, а в составе образа специально включаются сами исходники в текстовом виде.

Спасибо, что напомнили. Когда-то я уже это проходил с qubieboard. Но за несколько лет уже подзабыл. Вот только, насколько я понимаю mkimage - это часть u-boot, а чтобы её получить, надо же u-boot собрать. Хотя, если память мне не врет, для этого была еще какая-то утилитка от sunxi, но названия уже не помню. Она вроде как даже в репозитории Альта должна быть.

Не трать время, результат будет отрицательный. Повторю, для сборки u-boot нужно строго соблюдать порядок, предписанный в доках для каждой платформы свой, иначе замумукаешься ловить проблемы в самых не понятных местах.

Я не горю желанием заниматься работой ради самого процесса. Просто хочу использовать Альт на своей железке. Всякий раз шаманить типа rootfs берем от Альта, что-то еще от еще кого-то считаю не очень продуктивным. Так что хотелось бы один раз как-то все это собрать воедино, а потом только обновлять отдельные компоненты стандартным образом, или по устоявшейся инструкции.
Но даже если взять готовые бинарники загрузчика, все равно вопросов еще много. Как-то для rockchip-а подготовка загрузочного образа выглядит достаточно хитрым делом. Даже уже имея на руках полный набор готовых бинарных модулей, просто чтобы собрать из всего этого образ sd-карточки, нужно все использовать rkdevtools, и/или утилиты из состава u-boot. Так что получается все равно надо собирать не u-boot, так rkdevtools. Может я ошибаюсь, но инструкции, где обычным dd записываются готовые блобы на карточку, я не нашел.
Там еще с gpt идет какой-то мухлеж.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Я не горю желанием заниматься работой ради самого процесса. Просто хочу использовать Альт на своей железке. Всякий раз шаманить типа rootfs берем от Альта, что-то еще от еще кого-то считаю не очень продуктивным.

Нужно один раз поставить, а потом только обновляться и делать бекап. U-boot нужно лишь один раз установить, потом можно не трогать. На следующей неделе представлю скрипт-инсталлятор, проблем с установкой rootfs не будет.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Нужно один раз поставить, а потом только обновляться и делать бекап. U-boot нужно лишь один раз установить, потом можно не трогать. На следующей неделе представлю скрипт-инсталлятор, проблем с установкой rootfs не будет.

Я, вероятно, утомил уже своими репликами и вопросами, от которых пока нету реального толку.
Предлагаю следующие конкретные шаги, в плане реализации возможности использовать ваши регулярные сборки на платах  на базе RK3399.
1. Соберите, пожалуйста, ядро 4.20 с поддержкой RK3399 (или попросите это сделать Сергея Большакова, я не совсем в курсе, кто, как и чем у вас занимается). Со своей стороны могу выслать конфиги от проверенного на практике и рабочего ядра из Armbiana. Может быть это хоть как-то поможет. Готов оттестировать собранное ядро, когда оно будет готово.
2. По поводу загрузчика и прочего для начала предлагаю следующий вариант. Я готовлю из армбиановского образа sd-карточки минимально возможный образ-пустышку. Там уже будет прописан загрузчик и один единственный раздел с файловой системой. Файловая система будет пустой. Можно договориться, какого размера нужен задел, чтобы не копировать зря нули на карточку.
Далее можно будет поступать по инструкции (или сделать инсталляционный скрипт):
1) Записать образ на карточку (dd).
2) Расширить раздел на карточке до необходимых размеров (gparted/parted). Или же это будет делаться при развертывании дистрибутива при старте с карточки на лету.
3) Распаковать на единственный раздел карточки предоставляемый вами образ регулярной сборки. Разумеется там уже в этом образе должны быть актуальные в том числе и для RK3399 ядро, модули, firmware, env для u-boot и пр.
4) Дальше последовательность действий не будет ничем отличаться от той, что существует сейчас для RPi и Odroid.

Еще один момент, который хотелось бы учесть. У большинства плат на RK3399 есть слот для nvme-накопителя. Я, например, стараюсь там его и использовать для рабочей rootfs. Собственно в этом для меня и заключается одно из главных достоинств плат на RK3399 по сравнению с, например, более доступными на других чипах. В этой связи было бы весьма хорошо, если бы при установке можно было бы выбрать, на чем разворачивается основная ФС. Совсем идеальный вариант, если бы после установки/инициализации на sd-карточке и на nvme-накопителе были бы готовые к работе ФС. При этом при загрузке корень бы монтировался с nvme, а ФС на карточке оставалась бы для rescue-режима. Ну это уже можно сказать задумки на будущее.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Не так давно в руки попала плата Orange Pi PC2 (aarch64). При попытке загрузки с альтовой корневой системой (записанной по инструкции с вики) плата не подавала никаких признаков жизни. После нескольких безуспешных попыток загрузки с разными корневыми на разных картах microsd, в Сети было найдено видео, где называлась причина такого поведения платы (когда нет никакой индикации и кажется, что плата нерабочая) - карта microsd не в кондиции. После заливки на карту официально представленных на сайте образов armbian (оно по большей части на китайском - не юзабельно совершенно) для этой платы, загрузка пошла. Получается, что эта плата с записанным альтом не заводится.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Записывали командой:
arm-rootfs-installer --rootfs=имя.tar.xz --target=orangepi_pc2 --media=/dev/mmcblkX

?

Инструкция: https://www.altlinux.org/Ports/arm/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_%D0%BD%D0%B0_SD_%D0%BA%D0%B0%D1%80%D1%82%D1%83