DietPi операционная система на базе Debian, разрабатываемая преимущественно для одноплатных компьютеров. Отличается своей легковесностью.
Оффициальный сайт: https://dietpi.com/
Нам понадобится 1 sd карта. Один дистрибутив linux. Все команды можно выполнить например на самой Repka Pi3, просто придется переставлять флеш карту.
Repka Pi 3 должна быть подключена к интернету ПО ПРОВОДУ. Через Wifi создание дистрибутива НЕ выполнилось, примерно в середине соединение теряется и образ не создается.
Кратко #
- Скачать образ armbian для repka pi3.
- Загрузить образ на sd карту.
- Загрузиться в armbian.
- Выполнить 3 команды указанные на сайте DietPi.com
apt update
apt install -y curl ca-certificates systemd-sysv
bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')"
Ответить на 6 вопросов и дождаться окончания работы скрипта генерации образа.
- Добавить к образу dtb файл.
Например скопировать:
sun50i-h5-repka-pi3-1.4ghz.dtb → /boot/dtb/allwinner/sun50i-h5-repka-pi3.dtb - [Необязательно] Сделать dump образа.
Подробно #
Действия будем выполнять в 2-х ОС. Будем называть их [host] и [diet].
- [host] уже рабочая система на базе linux. Подойдет Repka Os или любая другая.
- [diet] система которую мы будем собирать, пока что для нее есть только sd карта.
Создадим на [host] каталог dietpi.
Открываем терминал.
cd $HOME
mkdir dietpi
cd $HOME/dietpi
1. Скачать образ armbian [host] #
Выполняется на [host] машине. Нужно скачать образ Armbian.
-
Заходим на официальный сайт https://repka-pi.ru/
- Скролим вниз, находим armbian, жмем Download
- Переходим на gitflick
- Выбираем релизы
- Выбираем релиз. В примере выбран: Armbian v23.05.2 RepkaPi
- Скачиваем образ. В примере выбран: Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img.7z
МОЖНО выбрать любой другой образ, тогда команды будут выполняться в соответствии с ним
Итог шага 1: в каталоге $HOME/dietpi появился файл образа
Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img.7z
2. Запись образа на sd карту [host] #
ВАЖНО: не перепутайте устройство диска sd карты, иначе можно потерять данные на другом диске
В том же терминале выполняем
7z x Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img.7z
Выполнится распаковка архива. В какталоге dietpi будут файлы:
- Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img
- Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img.7z
Вставляем sd карту, запускаем gparted или parted -l определяем имя устроства. На картинке это /dev/sdb
Если флешка не пустая очищаем ее:
sudo parted /dev/sdb mklabel msdos
Записываем образ на диск с помощью команды dd
sudo dd if=Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img bs=1M | pv -s 2G | sudo dd of=/dev/sdb bs=1M
# или без прогресс бара
# sudo dd if=Armbian_23.05.1_Repkapi3_bookworm_legacy_5.15.113_minimal.img of=/dev/sdb bs=1M
- часть с pv не обязательная, она нужна для отображения прогресса ключ pv -s 2G значит size 2 gigabyte. Если указать не верный размер не страшно, pv может показывать и < 100% и больше 100%, данные в любом случае будут пересылаться полностью. pv по умолчанию есть далеко не всегда, установить можно, например так: apt-get install pv
dd
-
if откуда копировать может быть устройство или файл
-
bs размер блока 1M = 1024*1024 байт, 1MB = 1000*1000 байт
-
of куда выполнять запись
3. Загрузка в armbian [diet] #
Вставляем sd карту в repka и загружаемся в armbian. Если все делаем на одной репке, то выключаем [host] и меняем карту.
Данную систему дальше будем называть [diet], так как она преобразутся в DietPi.
При первой загрузке в armbian нужно будет ответить на вопросы:
- задать пароль root: [123]
- задать имя пользователя: [user]
- задать пароль пользователя: [123]
- Задать имя пользователя:[User]
- Установить язык согласно локации: [y]
4. Выполнить генерацию DietPi [diet] #
Заходим на:
dietpi.com -> Download -> Other -> View
https://dietpi.com/docs/hardware/#make-your-own-distribution
И следуем инструкции:
- Выполняем команду:
apt update
apt install -y curl ca-certificates systemd-sysv
- Выполняем следующую команду:
bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')"
Начнется загрузка данных и создание DietPi образа. В процессе будут показаны следующие диалоговые окна:
-
Выбор ветки DietPi установщика:
-
master
-
beta
-
dev
В данном примере выбран: **master**.
-
- Задать контактную информацию пользователя, выполняющего создание сборки.
Вводим например: **user**
- Ввести имя базового образа для **DietPi**
В данном случае: **Armbian**
- Выбор устройства на которое выполняется установка
Для Repka Pi 3: **26: Generic Allwinner H5**
- Устанавливать ли пакеты для **Wifi**
В данном примере: **Да**
- Выбор версии **Debian**
В данном примере выбрана стабильная ветка: **Bookworm**
![](https://repka-pi.ru/blog/files/2024/05/1714750238460155_deit_pi_questions.jpg)Далее просто ожидаем пока будет выполнен скрипт установки и **Armbian** будет преобразован в **DietPi**.
Выключаем repka pi 3. **poweroff**
### 5\. Добавить к образу dtb файл \[host\]
Если попробовать загрузиться в новый образ, UBoot выдаст ошибку:
Failed to load ‘/boot/dtb/allwinner/sun50i-h5-repka-pi3.dtb‘
Поэтому: достаем флешку и вставляем ее в \[host\]
В каталог dietpi скачиваем с сайта https://repka-pi.ru/ архив с dtb файлами (полный url может измениться) и распаковываем
````bash
wget “https://download.repka-pi.ru/repka_os/uboot/01.12.23/Uboot-01.12.23.zip”
unzip Uboot-01-12.23.zip
Если флешка не примонтировалась монтируем:
mkdir t/
sudo mount /dev/sda1 t/
Копируем один из файлов в Uboot/DTB/ в boot/dtb/allwinner/
sudo cp Uboot/DTB/sun50i-h5-repka-pi3-1.4ghz.dtb t/boot/allwinner/sun50i-h5-repka-pi3.dtb
Соответственно если нужна конфигурация на 1Ghz
sudo cp Uboot/DTB/sun50i-h5-repka-pi3-1ghz.dtb t/boot/allwinner/sun50i-h5-repka-pi3.dtb
и т.д.
sync
sudo umount t/
6. Создание образа #
6.1. gparted + dd [host] #
Запускаем gparted и уменьшаем размер основного раздела так, чтобы он был немного больше минимально необходимого. Щелкаем правой кнопкой по разделу и выбираем Resize/Move
После изменения размера делаем образ диска:
sudo dd if=/dev/sda bs=1M count=2048 | pv -s 2G | dd of=DietPi_RepkaPi3-ARMv8-Bookworm.img bs=1M
После чего в каталоге появится файл образа, который можно сжать командой
xz DietPi_RepkaPi3-ARMv8-Bookworm.img
Записать полученный образ на диск можно будет командой:
xzcat -k DietPi_RepkaPi3-ARMv8-Bookworm.img.xz | pv -s 2G | sudo dd of=/dev/sda bs=1M
Данный образ при старте автоматически растянется на всю флешку, но можно размер увеличить в gparted, так же как его уменьшали.
Данный способ универсальный и позволяет создать образ любой системы в текущем состоянии
6.2. Команда из генерации образа [host] #
bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-imager')"
Судя по всему данную команду нужно выполнить от root, в примере данная команда выполнялась на repka на уже собранной версии dietpi.
При выполнении команды будет поднято 6 окон с вопросами:
- Выбрать где хранится образ: Drive
- Выбрать устройство с образом: /dev/sda
- Выбрать раздел в Операционной системой: /dev/sda1
- Метод копирования dd или CloneZilla: dd
- Ввести имя образа: DietPi_RepkaPi3-ARMv8-Bookworm
- [Опционально] Посмотреть и отредактировать содержимое раздела: Пропускаем И запускаем генерацию образа.
Ждем пока скрипты отработают и в текущем каталоге появятся 3 файла:
- DietPi_RepkaPi3-ARMv8-Bookworm.img
- DietPi_RepkaPi3-ARMv8-Bookworm.img.xz
- DietPi_RepkaPi3-ARMv8-Bookworm.img.xz.sha256
Копируем файлы образов.
Готовый образ выложен тут: