PiKVM <==> Pi4
25/10/2024

Ще се опитам да Ви представя въможността сами да направите IP-KVM устройство, или поне да опитате. За целта реших да използвам едно налично Raspberry Pi4. Идеята е да мога да управлявам отдалечено една малка конфигурация на ASRock N100DC-ITX, която "приютява" Proxmox инсталация.
Това се оказва възможно благодарение на Максим Деваев - софтуерен инженер, Open Source ентусиаст и създател на проекта PiKVM. Именно PiKVM е това, което ни позволява да направим сами IP-KVM устройство. Ако не ви се занимава сами да се "борите" със задачата, то може да закупите и готова конфигурация ето тук.
Преди самото представяне на процеса на направа на PiKVM нека да започнем с малко описание що е то IP-KVM, макар, че ако знаете какво е Raspberry Pi, то едва ли има нужда от обясняване какво е IP-KVM и т.н.
И така, какво е IP-KVM?
IP-KVM предоставя възможност за отдалечен достъп до контролите на клавиатурата, видеото и мишката (KVM) на компютър, сякаш работите на място.
IP-KVM е технология, която използва интернет протокол (IP) за пренасяне на информация от точка А до точка Б чрез стандартни мрежови комутатори.
В допълнение, IP-KVM може да осигури и възможност на потребителя да командва захранването, както и да инсталира операционна система на отдалечения компютър.
Едно доста семпло представяне на IP-KVM
И така, нека да започваме.
Както стана ясно, ще използваме възможността сами да направиме PiKVM, като за целта следваме стъпките от инструкцията за DIY PiKVM V2.
Необходими компоненти
1. MicroSD карта минимум 16Gb клас 10.
2. Raspberry Pi4 2Gb - Няма смисъл да се купува Raspberry Pi4 с повече памет от 2Gb, тъй като софтуерът PiKVM използва много малко ресурси.
3. Видео кепчър - HDMI към CSI, базиран на чип TC358743.
Поддържа H.264 видео кодиране, автоматичен избор на разделителна способност и възможно най-ниска латентност. Може също да се използва и HDMI-USB кепчър, но ще бъде само MJPEG видео, без разпознаване на разделителна способност, голяма латентност в сравнение с HDMI-CSI. Някои потребители съобщават за хардуерни проблеми: кепчърът може да не работи в BIOS или просто да спре да работи след известно време. Това е черна кутия и никой не знае какво има вътре. Ако имате проблеми с него, няма да е възможно да ги поправите.
4. Специфични елементи: захранване, USB свързаност и др.
За захранване на Raspberry Pi4 може би е най-добре да се използва официалният захранващ адаптер.
При Raspberry Pi4 само USB-C портът, който се използва за захранване, може да действа като USB устройство. Другите USB портове могат да действат само като USB хостове. Следователно трябва да се използва специален кабел към USB-C захранващия порт, за да може едновременно да действа като USB устройство и да получава външно захранване. Най-лесният начин е да се поръча готово решение, от Алиекспрес например.
МОЛЯ, ОБЪРНЕТЕ ВНИМАНИЕ - тези платки могат да се използва само с 5V захранване. Модулът не отговаря на спецификацията за USB-C. Той е предназначен за използване с официалното USB-C захранване за Raspberry Pi4, използването с други захранвания/зарядни устройства може да доведе до проблеми/повреди.
Но може и сами да направите такъв разделител от няколко USB кабела. Из интернет може да откриете информация как. За мен е по-сигурно и лесно с готовото решение.
5. ATX контролер за управление на захранването на отдалечения компютър. С този елемент ще можете дистанционно да включвате, изключвате или рестартирате отдалечения компютър!
За целта са необходими 4 MOSFET релета OMRON G3VM-61A1 или OMRON G3VM-61AY1.
Не използвайте произволни релета или произволни оптрони! Някои от тях може да не са достатъчно чувствителни за Raspberry Pi, други може да са с ниско ниво на задействане. Или използвайте релета, които се активират от високо логическо ниво, или използвайте предоставенате схема и купете OMRON.
Настройка на хардуера
HDMI-CSI модул - Поставете гъвкавия плосък кабел на HDMI-CSI модула в белия конектор на Raspberry Pi4. Ще откриете надпис CAMERA. За да поставите, първо трябва да отворите конектора. От страната на Raspberry Pi4 можете леко да повдигнете черната част нагоре и малко настрани:
Ако всичко е наред, то свързаният към Raspberry Pi4 HDMI-CSI модул би изглеждал така:
Захранване и USB свързаност - свързването на всички компоненти би трябвало да изглежда по сходен начин на показаната снимка.
Видео режими - Представената по-горе хардуерна версия на PiKVM може да работи с максимална разделителна на способност 1920x1080@50Hz, 60Hz не се поддържа поради хардуерно ограничение на HDMI-CSI модула. Можете да използвате всяка друга резолюция, по-малка от посочената, например 1280x720@60Hz.
Първо стартиране и използване
1. Проверете дали правилно сте сглобили всички компоненти и се уверете, че сте свързали всички необходими кабели: захранване, USB, HDMI и ATX (ако искате да управлявате захранването).
2. Инсталирайте PiKVM на картата с памет и я поставете в Raspberry Pi4.
За целта, за Raspberry Pi4 DIY PiKVM V2 изтеглете имиджа за HDMI-CSI ==> v2-hdmi-rpi4-aarch64-latest. Най-лесният и бърз начин за инсталиране на PiKVM на картата с памет е чрез RPi Imager. Наличен е за Linux, MacOS и Windows.
Стартирайте RPi Imager и изберете устройство
Натиснете No filtering
Натиснете Choose OS
Натиснете Use custom и изберете *.img или *.img.xz файла
Натиснете Choose storage и изберете SD картата
Натиснете No:
Персонализирането е предназначено за Raspberry OS и няма да работи в PiKVM OS. Ако приложите персонализирани настройки, това ще доведе до неправилно функциониране.
Натиснете Yes

Изчакайте процеса да приключи. Бъдете търпеливи :) Процесът може да "заспи" на 99% за дълго време, това е добре, просто изчакайте да завърши.
След успешно завършване извадете картата. Ако по време на флашването възникне грешка или зареждане на PiKVM не се получи, повторете процеса. Ако не успеете отново след повторянето на процеса, пробвайте с друга SD карта.
3. Включете устройството и не  го изключвайте, докато не зареди PiKVM OS напълно. След включване на захранването, PiKVM OS ще генерира уникални SSH ключове и сертификати и ще извърши всички необходими операции на SD картата. Отнема няколко минути.
Получаване на достъп до PiKVM
По подразбиране PiKVM трябва да получи IP адрес от вашия DHCP сървър. Да допуснем, че PiKVM е получил адрес 192.168.0.100.

1. Достъп до PiKVM уеб интерфейс
Препоръката на разработчика е да използвате Google Chrome или Chromium, тъй като те поддържат най-голям брой PiKVM функции. Safari и Firefox са на второ място. Internet Explorer и версиите на Microsoft Edge преди Chromium не се поддържат.

За първи път е по-добре да използвате браузър без разширения или инкогнито режим, тъй като някои разширения могат да нарушат работата на PiKVM.

Въведете https://192.168.0.100/ или https://pikvm/. Потребителят по подразбиране е admin, паролата също е admin и няма 2FA код. След като влезете, ще получите достъп до менюто с основните функции. С помощта на уеб терминала можете да промените системните настройки и пароли.

2. Достъп до PiKVM чрез SSH
SSH е най-разпространеният метод за отдалечен достъп в света на Linux. PiKVM е достъпен и чрез SSH.

За Linux отворете един терминал и стартирайте: ssh root@192.168.0.100 или ssh root@pikvm. За Windows използвайте PuTTY.

Паролата за
root по подразбиране е root. Ако сте влезли през SSH, най-вероятно вече сте root. А за да получите root в уеб терминала, използвайте командата su - и въведете паролата за root.
Актуализиране на PiKVM OS

PiKVM OS често получава софтуерни актуализации. След инсталирането има смисъл да актуализирате ОС. Най-добре е да направите това, когато имате физически достъп до устройството, защото ако нещо се обърка (например спре захранването по време на актуализацията), ще трябва да преинсталирате SD картата.
За да актуализирате, изпълнете следните команди като
root:
[root@pikvm ~]#  pikvm-update

Ако срещнете грешка като:
[root@pikvm ~]# pikvm-update
bash: pikvm-update: command not found

Най-вероятно имате стара версия на операционната система, която можете да актуализирате чрез:
[root@pikvm ~]# rw
[root@pikvm ~]# pacman -Syy
[root@pikvm ~]# pacman -S pikvm-os-updater
[root@pikvm ~]# pikvm-update
И така, накрая е време за ***Смяна на паролите***

PiKVM идва с двa независими акаунта, със следните пароли по подразбиране:

Linux (SSH, конзола и т.н.): потребител
root, парола root.
PiKVM уеб интерфейс (API, VNC...): потребител
root, парола admin, без 2FA код.

За да промените паролите, ще трябва да използвате конзолния достъп през SSH или уеб терминала. Ако използвате уеб терминала, въведете
su -, за да получите достъп като root (въведете паролата за root потребител):
[root@pikvm ~]# rw
[root@pikvm ~]# passwd root
[root@pikvm ~]# kvmd-htpasswd set admin
[root@pikvm ~]# ro

Ако искате да добавите допълнителен потребител за достъп до уеб интерфейса, използвайте следното:
[root@pikvm ~]# kvmd-htpasswd set <user> # Set a new user with password or change of an existing one
[root@pikvm ~]# kvmd-htpasswd del <user> # Remove/delete a user
Конфигуриране на PiKVM

Повечето настройки на PiKVM се извършват чрез конфигурационни файлове. Всички промени в конфигурацията трябва да се правят от
root потребител (т.е. администратор).

Картата с памет при PiKVM е в режим само за четене. По този начин се предпазва файловата система от повреда в случай на внезапно прекъсване на захранването. За да редактирате всякакви файлове и да правите промени, е необходимо да промените файловата система в режим на четене и запис.
[root@pikvm ~]# rw #enable write-mode
[root@pikvm ~]# ro
#disable write-mode

Ако искате да добавите допълнителен потребител за достъп до уеб интерфейса, използвайте следното:
[root@pikvm ~]# kvmd-htpasswd set <user> # Set a new user with password or change of an existing one
[root@pikvm ~]# kvmd-htpasswd del <user> # Remove/delete a user

Повечето от конфигурационните файлове на PiKVM се намират в директорията
/etc/kvmd.

Файлът
/etc/kvmd/main.yaml дефинира конфигурацията на платформата и никога не трябва да го редактирате.
За да предефинирате системните параметри, използвайте файла
/etc/kvmd/override.yaml. Всички други файлове, които също не се препоръчват за редактиране, имат разрешения само за четене.
Това е .....

Ако черна котка не Ви е минала пътя, то би трябвало да се радвате на работеща система. При мен изглежда ето така:

Представеното по-горе е опит за сравнително кратко, и може би ясно представяне на процеса сами да изградиме IP-KVM устройство.

Подробна информация може да намерите ==> DIY PiKVM V2
Ако имате въпроси или се сблъскате с проблеми ==> ЧЗВ
За всяка друга помощ и поддръжка можете да се свържете с разработчика чрез чата в Discord

Успех..........