Nano Hash - криптовалюты, майнинг, программирование

Изменить образ Debian для raspberry pi

Мне нужно изменить образ Raspbian для использования с Raspberry Pi в коммерческих условиях. Таким образом, мне не придется впоследствии изменять значения по умолчанию для каждого отдельного пи. Я хочу установить клавиатуру по умолчанию в США, отключить автоматический вход в систему и загрузиться в командной строке, а не в графическом интерфейсе. Можно ли модифицировать образ с этими настройками перед прошивкой каждой карты? Если да, то как?

01.08.2016

Ответы:


1

Самый простой способ — заставить один Raspi вести себя именно так, как вы хотите (называемый золотым мастером), затем выключить его, вытащить карту и сделать что-то похожее на следующее на SD-карте вашего ПК. читатель (из которого я предполагаю, что вы испекли первую карту):

sudo dd if=/dev/<sddevice> bs=1k | gzip -c > myProduct-1.0-master.bin.gz

Затем просто запеките это изображение на карту №2, №3...#n, используя:

zcat myProduct-1.0-master.bin.gz | sudo dd of=/dev/<sddevice> bs=1k

NB о размерах карт: всегда убедитесь, что ваша золотая мастер-карта ЗНАЧИТЕЛЬНО Меньше, чем ваши целевые карты (в идеале в 2 раза, например, 8 вместо 16 ГБ). Причины этого двояки:

  • Если обе карты имеют размер «8 ГБ», цель может быть немного меньше исходной (в этом случае вы получите усечение файловой системы и, возможно, странности тонким и непредсказуемым образом).
  • Контроллеры SD-карт имеют ЧРЕЗВЫЧАЙНО ПРИМИТИВНОЕ выравнивание износа, и dd'ing над кучей нулей полностью побеждает его (что означает, что карты могут умереть, если вы, например, выполняете кучу журналов). Сохранение большого количества неиспользуемого пространства означает, что у вас есть пустые ячейки, которые можно использовать для выравнивания износа (обратите внимание, что современные твердотельные накопители имеют гораздо более сложное выравнивание износа и по большей части не страдают от этой проблемы).

Не так давно я создал продукт, который делал именно это: мастером была полноразмерная карта на 8 ГБ, а мишенями были все микрокарты на 16 ГБ. Мы помещали мастер в массовый копировальный аппарат, затем мишени и нажимали большую кнопку дублировать. Поскольку у карт был разный хранилище, у нас было около 50% нехватки ресурсов (что давало нам много места на уровне износа), а поскольку карты были разных физических размеров, мы никогда не смешивали их вверх :-)

(Да, я до смешного консервативен в вопросе выравнивания износа — по моему мнению, нет ничего хуже, чем смерть встроенной карты в полевых условиях и необходимость ползать через черт знает что, чтобы заменить деталь за 8 долларов, которая не должна была выйти из строя в процессе эксплуатации. первое место...)

Также стоит создать файл VERSION на вашем мастере, чтобы при обновлении продукта вы знали, какая версия установлена ​​(вы можете отредактировать /etc/issue, чтобы отобразить это в приглашении для входа в систему, или просто отредактируйте любой другой произвольный текстовый файл) .

Можно создавать образы с нуля для RasPi с более жестко контролируемым дистрибутивом ОС, но если вы настраиваете только пару файлов, самый простой способ — это то, что я описываю.

Да, и не забудьте сохранить эти версионные образы в безопасном месте, например, git LFS (например, https://git-lfs.github.com/).

01.08.2016

2
  1. Внесите все необходимые изменения на Raspberry Pi.
  2. Выясните, где SD-карты монтируются на вашем компьютере. В Linux это будет что-то вроде /dev/sdb, в Mac — что-то вроде /dev/rdisk2.
  3. Возьмите свой образ pi, вставьте его в компьютер и сделайте образ диска dd if=/dev/<sd_path> of=~/raspi.img bs=1m
  4. Покажите свои другие карты: dd if=~/raspi.img of=/dev/<sd_path> bs=1m
01.08.2016
  • Спасибо! Работает отлично! 01.08.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..