Я обнаружил, что неоднократно настраивал все свои пи с помощью raspbian почти одинаково, используя raspi-config.
Есть ли способ извлечь все настройки, которые я сделал с помощью raspi-config, в исполняемый скрипт, который я могу загрузить с помощью wget для каждого нового пи, который я настроил?
Аналогичное решение с тем же эффектом также будет оценено. Думаю, я мог бы попробовать одну из реализаций док-станции rpi, но я не очень хотел бы выяснить, насколько остро стоит этот вопрос.
/usr/bin
, если это поможет. Если вы хотите отключить его, начиная с свежих изображений, удалите/etc/init.d/apply_noobs_os_config
и ссылку в/etc/rc2.d
.Ответы:
По крайней мере, в наши дни,
raspi-config
похоже, поддерживается неинтерактивный режим:при этом вы можете написать сценарии установки, которые могут делать все, что вы могли бы делать с помощью интерактивной команды, и она будет делать точно такие же вещи. Вам нужно будет найти соответствующие команды и их использование из исходного кода скрипта.
источник
Это все еще нигде не задокументировано, но инструмент rc_gui (я предполагаю, что это был бы графический интерфейс пользователя для raspi-config, если бы я когда-либо устанавливал полный рабочий стол) использует параметры командной строки для сценария bash raspi-config. Вы можете увидеть полный список опций в
исходном коде C. ОБНОВЛЕНИЕ: официальный репо по какой-то причине исчез. Это самая активная вилка, которую я мог найти.ОБНОВЛЕНИЕ: я замечаю, что там нет ничего о настройке локали или клавиатуры. Итак, это говорит мне о том, что мы должны изучить источник
raspi-config
. К счастью, у нас есть много примеров выше, чтобы понять, как эффективно использовать этот скриптnonint
. Итак, что мне нужно сделать, чтобы решить эту проблему без головы:Переменные - это значения, которые я бы выбрал в интерфейсе curses. Параметры локали - это первое поле в файле
/usr/share/i18n/SUPPORTED
. Параметры раскладки клавиатуры - это имена каталогов в/usr/share/X11/xkb/symbols/
. Находясь в США, я используюen_US.UTF-8
иus
. YMMVисточник
sudo raspi-config nonint do_audio %d
для выбора аудио выхода (0 = авто, 1 = разъем, 2 = HDMI)do_audio
. Но это действительно функция, найденная вcurl -sL https://github.com/RPi-Distro/raspi-config/raw/master/raspi-config | grep -E '(do|get)_[a-zA-Z0-9_ ]+\(' | sort | uniq
Все, что
raspi-config
нужно сделать - это отредактировать несколько файлов конфигурации, которые вы также можете редактировать с помощью скрипта. Проверьтеsed
руководство, чтобы увидеть, как такие изменения могут быть эффективно сделаны.Если у вас есть много изменений, которые можно применить таким образом, я бы рассмотрел настройку чистого образа RPi так, как вы хотите,
diff
его полную файловую систему * по сравнению с ванильным образом, а затем применил изменения,patch
когда вам нужно установить новый установка.Наконец, взгляните на такие инструменты, как
etckeeper
- те, которые специально предназначены для манипулирования изменениями конфигурации и могут отслеживать тонкие изменения, которыеdiff
могут пропустить простые , такие как разрешения. Обратите внимание, что, в отличие от его имени,etckeeper
не ограничивается/etc
, например, при запускеetckeeper -d /boot init; etckeeper -d /boot commit
будет создана резервная копия файлов в/boot
.(*) По-видимому, это не очевидно , поэтому, чтобы устранить все недоразумения, я имею в виду, что вы должны запустить что-то вроде,
diff -r /etc /mnt/vanilla_root/etc > etc.diff
аdiff -r /boot /mnt/vanilla_boot > boot.diff
неdiff my.img vanilla.img
.источник
Используйте dd (или аналогичный) для копирования рабочего изображения Pi на ваш компьютер.
Используйте dd (или аналогичный), чтобы скопировать скопированное изображение с вашего компьютера на Pi.
человек дд
источник
У меня есть 1 SD-карта, на 100% настроенная на мои желания, которую я использую в качестве основы для всех новых установок.
При настройке нового Pi я просто клонирую эту SD-карту вместо того, чтобы начинать с нуля.
источник