OrangePi 5 с Proxmox 8

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В прошлой статье (https://habr.com/ru/articles/789654/) я описал начальную настройку загрузчика для OrangePI 5b (для OrangePI 5 тоже сработает), а так же настройку и запуск Proxmox 7 до состояния "оно запустилось". Виртуалки там я не пробовал и оказалось, что они и не работают без дополнительных телодвижений. В этой статье я опишу как настроить уже Proxmox 8.1.3 и довести до полностью работоспособного состояния.


Предполагается, что из прошлой статьи у вас уже настроен EDK II загрузчик и вы можете свободно загружатся откуда угодно, а значит дело только в том что бы подготовить образ и настроить proxmox. Этим и займемся.

В качестве базового дистрибутива я выбрал Armbian образ с названием /Armbian_23.11.1_Orangepi5_bookworm_legacy_5.10.160.img.xz, тому есть несколько причин. 1. Он пользуется репозиториями дебиана, а значит обновляется.
2. Линуксовое ядро у них содержит модуль fuse, которого в ядре в составе дистрибутива от авторов OIrange PI5 нет, а он нужен для proxmox. Без этого модуля proxmox не установится.
3. Ядро в данном образе 5.10, для rk5588s еще нет версии ядра 6.1, производитель только делает.

Образ нужно подготовить для UEFI загрузки, что бы его EDK II легко увидел. В прошлой статье я писал, что SSD у меня подключен в USB 3 порт на Orange PI5b так что я просто переткнул его в ноутбук. Так как я пользуюсь linux, то просто в nautilus нажал правую кнопку на образе и выбрал "запись образа" после чего указал, что его надо записать на SSD. Есть много способов залить образ на SSD диск. После того как образ записан на SSD нужно смонтировать разделы оттуда

mount /dev/sde1 /mnt/1
mount /dev/sde2 /mnt/2

С первого раздела надо все перенести на второй в папку /boot. Там ядро с вышеописанным модулем fuse и прочие нужные для загрузки файлы в том числе папка dtb в которой лежат файлы с описанием оборудования на вашей версии OrangePI 5(b) обратите внимание, что нужно будет указать в grub.cfg и armbianEnv.txt верный файл.

Далее берем образ где есть UEFI загрузчик, например я взял его с debian-bookworm-live-arm64.hybrid.iso как писал в прошлой статье. Копируем папки /EFI и /boot/grub с этого образа на первый раздел SSD диска, который там после записи туда armbian образа появился. После чего нужно отредактировать /boot/grub/grub.cfg сделав его таким.

search --no-floppy --fs-uuid b5d4f702-2288-4851-be51-175a746d1b05 --set=root --hint hd0,gpt2
devicetree /boot/dtb/rockchip/rk3588s-orangepi-5b.dtb
linux /boot/Image root=UUID=b5d4f702-2288-4851-be51-175a746d1b05 ro rootwait rootfstype=ext4
initrd /boot/initrd.img-5.10.160-legacy-rk35xx
boot

Меню я делать не стал. Обратите внимание, что b5d4f702-2288-4851-be51-175a746d1b05 это UUID root файловой системы с конкретного образа armbian, если у вас другой, то UUID будет другой, узнать его можно с помощью команды blkid или gparted. Так же важно, что бы файл rk3588s-orangepi-5b.dtb был для вашей версии железа, в моем случае это именно 5b.dtb, в папке dtb много вариантов.

Загрузчик готов, можно переходить к подготовке armbian к работе с proxmox. Для этого отредактируем файлы armbianEnv.txt armbian_first_run.txt.template не уверен, что это обязательно, но я сделал. Содержимое файлов такое

armbianEnv.txt Обратите внимание, что UUID и dtb нужны тоже верные.

verbosity=0
bootlogo=false
overlay_prefix=rockchip-rk3588
fdtfile=rockchip/rk3588s-orangepi-5b.dtb
rootdev=UUID=b5d4f702-2288-4851-be51-175a746d1b05
rootfstype=ext4

armbian_first_run.txt.template

FR_general_delete_this_file_after_completion=1
FR_net_ethernet_enabled=1
FR_net_wifi_enabled=1
FR_net_wifi_ssid='имя вашего вайфая'
FR_net_wifi_key='пароль к вашему вайфаю'
FR_net_wifi_countrycode='GB'
FR_net_use_static=1
FR_net_static_ip='192.168.1.130'
FR_net_static_mask='255.255.255.0'
FR_net_static_gateway='192.168.1.1'
FR_net_static_dns='8.8.8.8 8.8.4.4'

Тут важно отметить, что адрес 192.168.1.130 мне выдал мой роутер с DHCP сервером и я на нем закрепил этот адрес сразу за MAC адресом данной Orange PI5b сетевой карты. Для proxmox важно что бы адреса были статические. Но мы в любом случае далее сделам все статическим.

В соответствии с инструкцией в статье (https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm) редактируем файл /etc/hosts

127.0.0.1   localhost
192.168.1.130   orangepi5.proxmox.com orangepi5
::1         localhost orangepi5 ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

В этом файле тот же адрес 192.168.1.130 имя хоста orangepi5 оно такое по умолчанию в Armbian. При этом обязательно надо удалить запись 127.0.1.1 иначе вероятно у proxmox будут проблемы. В целом редактирование этого файла обязательная процедура, без этого Proxmox не установится скорее всего.

Переходим к файлу /etc/apt/sources.list в него нужно добавить репозиторий

deb [arch=arm64] https://mirrors.apqa.cn/proxmox/debian/pve bookworm port

Собственно там лежит порт Proxmox 8.1.3. Так же нужно добавить в папку /etc/apt/trusted.gpg файл с ключом

sudo curl https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg 

Переходим к файлу /etc/network/interfaces его содержимое

source /etc/network/interfaces.d/*
auto lo end1
iface lo inet loopback

iface end1 inet6 auto
iface end1 inet static
        address 192.168.1.130
        netmask 255.255.255.0
        gateway 192.168.1.1

Статический адрес все тот же, что мне выдал роутер 192.168.1.130. Все файлы готовы. Далее можно отмонтировать SSD и подключить его к OrangePI 5b. EDK II найдет его сам или можно выбрать в его меню диск и загрузится с него. Начальную настройку Armbian описывать не буду она совсем простая. После того как Armbian загружен нужно сначала отключить NetworkManager с ним у Proxmox проблемы, он сам рулит сетевыми интерфейсами.

sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service

После чего я перезагрузился для надежности. В силу вступят настройки сетевого интерфейса из /etc/network/interfaces. Далее обновляем репозитории и устанавливаем собственно proxmox

sudo aptitude update
sudo aptitude install ifupdown2 proxmox-ve open-iscsi

aptitude в процессе разрешит конфликты в зависимостях и предложит удалить пакет vlan, я согласился. После чего Proxmox 8.1.3 был благополучно установлен на OrangePI 5b. Но это еще не все. Если не откатить пакет с прошивками то виртуалки работать не станут, просто будут грузить CPU на 100% и висеть.

apt download pve-edk2-firmware-aarch64=3.20220526-rockchip
dpkg -i pve-edk2-firmware-aarch64_3.20220526-rockchip_all.deb

После того как это сделано можно перезагрузить девайс и с ноутбука зайти в консоль по адресу https://192.168.1.130:8006 конкретный айпишник у вас будет свой конечно же. Логопас такое же для рута как вы задали при настройке Armbian. На этом настройка еще не завершена.

Нужно создать bridge, а так как теперь proxmox рулит в /etc/network/interfaces настройками сети, а за счет ifupdown2 девайс для смены настроек не надо перегружать, то в консоли надо сначала удалить IP и Gateway у интерфеса end1 (см. Datacenter->orangepi5->System->Network) не применяя настроек, это очень важно, иначе сеть отвалится, кнопку Apply Configuration нажимать нельзя! После чего нужно создать Linux Bridge задав ему тот же адрес что выдал вам роутер 192.168.1.130, гейт 192.168.1.1 (которые вы отняли у end1) и Bridge ports end1. Вот только потом можно нажать Apply Configuration и оба действия будут выполнены вместе на стороне OrangePI 5b. С этого момента у вас в консоли появится два сетевых интерфейса как на картинке.

Далее создадим первую виртуалку, ее тоже надо настроить строго определенным образом (https://github.com/jiangcuo/Proxmox-Arm64/wiki/Qemu-VM). Сначала закачаем iso дистра, который хотим поставить. Разберетесь как в proxmox заливать данные в хранилище. В моем случае это ubuntu-22.04.3-live-server-arm64.iso. Потом создаем виртуальную машину указав, что в CD привод надо этот образ воткнуть. Обратите внимание, что когда грузить его будете надо подождать, он стартует долго. Другие настройки виртуальной машины на картинке

Тут важно отметить, что если вы собираетесь использовать несколько ядер в виртуалке, то нужно указать к каким ядрам rk3588s привязать эту виртуалку как на картинке там видно, что я выбрал 2 ядра и указал, что виртуальные ядра надо привязать к физическим ядрам процессора из диапазона 0-1. Дело в том, что ядра в SoC разного типа, одни мощные, вторые нет и нельзя запустить виртуалку на одном мощном, а втором слабом так что обязательно надо указать affinity. Для одноядерных виртуалок это не нужно.

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

Источник: https://habr.com/ru/articles/794508/


Интересные статьи

Интересные статьи

Всем привет, я не блогер и не люблю писать посты и блоги, пока. Решил найти решение для Terraform и Proxmox. После не долгих поисков нашёл провайдер под названием terraform-provider-proxmox. Так как н...
Буквально вчера вышел Proxmox Virtual Environment 7.4, и вот что обещают его авторы в виде списка изменений:- Debian 11.6 "Bullseye", но с использованием более нового ядра Linux 5.15 или ядра 6.2 (опц...
Как говорится, "не прошло и года", а прошло всего 202 дня, а авторы Proxmox Virtual Environment (более известного, как Proxmox VE, или просто PVE) - замечательного дистрибутива для развертывания хосто...
Отличный дистрибутив PVE релизнулся в виде версии 7.2. Она построена на базе Debian 11.3 (Bullseye), однако использует более новое ядро Linux 5.15.30, и включает обновления версий ПО: QEMU 6.2.0, LXC ...
Доброго времени суток, Хабр! Предлагаю вниманию краткую историю переезда одного сервера виртуализации на базе Proxmox из Hetzner в РФ на сервер виртуализации, расположенный в стойке в оф...