Обновить
32K+
250

Пользователь

157,1
Рейтинг
122
Подписчики
Отправить сообщение

Смотря что вы понимаете под обычной программой Linux и как запустить. Если консольные приложения и команды Linux, то можно воспользоваться эмулятором терминала Termux

Я своих одноплатников не разрабатывал и могу ошибаться.

Но насколько понимаю, сначала нужно определиться на каком SoC ты будешь делать.

Информацию, необходимую для разработки часто ты получишь только подписав NDA. Потом тебе нужны знания в схемотехнике, в проектировании и разводке печатных плат.

Далее тебе нужно разработать Device Tree для твоего одноплатника, скорее всего адаптировать для него загрузчик, часто это u-boot.

Весь процесс трудозатратный и не делается в одиночку.

Но, думаю, собрать что-то типа своего Raspberry Pi Pico можно и самому. Но это немного другой уровень и там уже Linux не будет.

Исходя из аннотации, в книге изложено, как собрать Linux для уже существующего одноплатника, используя, Yocto и Buildroot, добавить переферию и пропатчить Device Tree для поддержки этой переферии.

Согласен, что можно поступить как вы предлагаете. В продакшене никто не будет делать, как описано в статье, лучше использовать решение, которое разрабатывается годами несколькими разрабочиками, проверенное временем. Но я просто хотел показать, что именно делается, и получить ощущение контроля над тем, что происходит.

Я сделал скрипты и makefile для сборки моего линукса и у помянул про него в статье: https://github.com/artyomsoft/robinson-linux

Я посчитал, что рассказывать про оверлейные файловые системы и squashfs в статье, где создается минимальный Linux, усложнит восприятие. Но забыл про них упомянуть в выводах, исправлю

Мне самому больше нравится dd, но я считаю, что balenaEtcher удобней для новичка тем, что меньше вероятности угробить систему, да и в Windows я им пользуюсь. Но сам удивлен его размером)

Основная цель статьи - показать какие основные компоненты должны быть в сборке Linux для встраиваемых систем, и чем такой Linux отличается от варианта для PC.

В моем понимании шофер - это профессиональный водитель. Именно лушее знание автомобиля и умение выполнить мелкий ремонт отличает его от просто водителя.

Под "работать" я подразумевал - выполнять основные команды Linux в образовательных целях. Собранный в статье Linux можно использовать в качестве основы для более сложных сборок. Я намеренно это не делал в статье, чтобы статья получилась проще для восприятия основных концепций.

Вы имеете ввиду Linux, который собирается в статье? В нем используется mdev (легковесный аналог udev, который входит в состав BusyBox). Но я в ядре вообще не включал поддержку USB. Я проверял работу Linux на ноутбуках, на всех тех, которые у меня были - PS/2 клавиатура. Сейчас проверил как работает с USB-клавиатурой на стационарном компьютере, сканкоды приходят от клавиатуры, но трактуются неверно, есть в чем ещё разобраться. Спасибо за внимательное чтение и подсказанную идею.

Полностью с вами согласен и думаю над продолжением. Это просто учебный пример. Но с сетью, как я понимаю, так универсально и минимально не получится, так как нужны еще драйвера и firmware для сетевых карт. А в случае WiFi еще и USB, а также программы для userspace. Может даже лучше сделать для какого-нибудь одноплатника.

Это точно тема отдельной статьи и дополнительного исследования. Вы не привели название для слабого железа, которое слабее Raspberry, поэтому сложно ответить на этот вопрос, но думаю на большинстве существующих одноплатников такой подход работать будет, так как несжатое ядро вместе с initramfs занимает до 6 мегабайт. Похожее минимальное ядро для Raspberry Pi 3 или Raspberry Pi 4 занимало больше, но не критично.

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

У меня точно грузится лицензионная Windows 10 с отключенным Secure Boot. В моем понимании Secure Boot - это когда UEFI проверяет на то, что запускаемое приложение (загрузчик) подписан ключом, которому доверяет UEFI. Если ключ неверный, дальнейшая загрузка прекращается. Отключение Secure Boot это отключение этой проверки.

Цель статьи была образовательная и я хотел показать, как собрать Linux для ноутбука или стационарного компьтера. Для роутера немного сложнее будет и менее универсально.

Я не могу точно сказать почему именно здесь я использовал double. Скорее всего это осталось от старого кода, где я пытался с помощью библиотеки math считать sin и cos. Палитра вычисляется один раз при старте, поэтому на производительность это практически не должно влиять. Еще я по привычке использую double для вещественных типов, чтобы меньше думать о преобразованиях типов. Да и переменных немного, они не сильно влияют на обьем используемой памяти.

Спасибо, за подробное дополнение.

С первым утверждением согласен, но нужно перепроверить источники. А со вторым и третьим - нет.

Кадр - это прохождение луча по всем строкам, количество строк в кадре одинаковое и при прогрессивной и при чересстрочной развертке.

Количество кадров в секунду одинаковое при прогрессивной и чересстрочной развертке.

При чересстрочной развертке количество полукадров в секунду в два раза больше, чем количество кадров в секунду.

Возможно я ошибаюсь, но скорость перемещения луча по вертикали постоянная при отрисовке поля. Поэтому за время отрисовки одной строки при прямом ходе луч сдвинется по вертикали больше, чем при обратном ходе.

Если быть более точными, луч будет сдвигаться по вертикали и при прямом ходе и при обратном, только при прямом это более заметно. Если присмотреться к рисунку, что привел @sappience, то там как раз это и видно.

Поправьте, если я неправ.

Как я понимаю, на последней осциллограмме еще и телетекст в VBI есть?

Можете привести формулу какая есть и какая должна быть? Я не смог найти ошибку у себя.

Информация

В рейтинге
51-й
Зарегистрирован
Активность