189 похожих чатов

Если железка, под которую планируется сборка, поддерживается в апстриме (как

загрузчика u-boot, так и ядра Linux, то всё обычно проще, ибо портирование - отдельная большая тема).
В случае со сборкой всё относительно просто - сложности начинаются, когда нужно что-то "особенное".
Общая схема обычно такая:
- собираешь u-boot
- собираешь linux
- собираешь/берешь готовый rootfs
- ???
- profit

Если с чем-то возникает конкретная проблема, то разбираться надо уже предметно.
Отдельно по u-boot, как уже упомянули, полно документации, в т.ч. официальной.
Как кросс-компилировать linux и rootfs - с howto проблем в гугле тоже особо нет.
Из готовых систем сборки: buildroot, openembedded/yocto и ещё туча менее известных костылей.
Если надо добавить безопасности, гуглить по ключевым словам: verified boot u-boot, dm-verity (а сейчас ещё и fs-verity выкатывать вроде как собираются) - смотришь результаты, читаешь доки и статьи, пробуешь, ошибаешься, исправляешь ошибки, снова пробуешь (для этого хорошо бы иметь, конечно, неубиваемую отладочную плату под рукой).
Если надо добавить автоопдейты из коробки, можно посмотреть в сторону swupdate и mender, но если не хочется лезть в оверинженерные костыли, можно и что-то своё придумать для начала.
Ещё из полностью готовых, но полупроприетарных решений, для "референса", можно просто полистать и почитать официальные доки/wiki таких проектов, как chromiumOS и android - там тоже есть что почерпнуть полезного о том, как это у взрослых дядей работает (те же a/b partition, stateless system, verified boot, OTA и т.д. и т.п.). Ну или даже в исходники отдельных "компонентов" заглянуть, если не страшно, чтобы хотя бы примерно попытаться понять, как оно выглядит и работает.

Одной большой книги о том, как это всё скрестить вместе, не встречал.
Но помимо Building embedded Linux systems ещё есть Embedded Firmware Solutions, но она, как по мне, слишком общая, хотя для общего развития полистать можно.

1 ответов

11 просмотров

Пасиб, схоронил)

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта