user
user
1242 просмотров0 комментариев

Портирование DietPi на Repka Pi3

Содержание


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

Оффициальный сайт: https://dietpi.com/

Нам понадобится 1 sd карта. Один дистрибутив linux. Все команды можно выполнить например на самой Repka Pi3, просто придется переставлять флеш карту.

Repka Pi 3 должна быть подключена к интернету ПО ПРОВОДУ. Через Wifi создание дистрибутива НЕ выполнилось, примерно в середине соединение теряется и образ не создается.

Кратко #

  1. Скачать образ armbian для repka pi3.
  2. Загрузить образ на sd карту.
  3. Загрузиться в armbian.
  4. Выполнить 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 вопросов и дождаться окончания работы скрипта генерации образа.

  1. Добавить к образу dtb файл.
    Например скопировать:
    sun50i-h5-repka-pi3-1.4ghz.dtb → /boot/dtb/allwinner/sun50i-h5-repka-pi3.dtb
  2. [Необязательно] Сделать dump образа.

Подробно #

Действия будем выполнять в 2-х ОС. Будем называть их [host] и [diet].

  • [host] уже рабочая система на базе linux. Подойдет Repka Os или любая другая.
  • [diet] система которую мы будем собирать, пока что для нее есть только sd карта.

Создадим на [host] каталог dietpi.

Открываем терминал.

cd $HOME
mkdir dietpi
cd $HOME/dietpi

1. Скачать образ armbian [host] #

Выполняется на [host] машине. Нужно скачать образ Armbian.

  1. Заходим на официальный сайт 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

И следуем инструкции:

  1. Выполняем команду:
apt update
apt install -y curl ca-certificates systemd-sysv

  1. Выполняем следующую команду:
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 окон с вопросами:

  1. Выбрать где хранится образ: Drive
  2. Выбрать устройство с образом: /dev/sda
  3. Выбрать раздел в Операционной системой: /dev/sda1
  4. Метод копирования dd или CloneZilla: dd
  5. Ввести имя образа: DietPi_RepkaPi3-ARMv8-Bookworm
  6. [Опционально] Посмотреть и отредактировать содержимое раздела: Пропускаем И запускаем генерацию образа.

Ждем пока скрипты отработают и в текущем каталоге появятся 3 файла:

  • DietPi_RepkaPi3-ARMv8-Bookworm.img
  • DietPi_RepkaPi3-ARMv8-Bookworm.img.xz
  • DietPi_RepkaPi3-ARMv8-Bookworm.img.xz.sha256

Копируем файлы образов.

Готовый образ выложен тут:

Скачать


Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Темы

Навигация

ВойтиРегистрация