
Для реализации данного проекта понадобится:
h96max: https://ali.click/zoe101z?erid=2SDnjf4157o
Карта захвата: https://ali.click/cre1014?erid=2SDnjcAUokm
KVM на 4 порта: https://ali.click/bue1014?erid=2SDnjcq2V5j
usb/ttl: https://ali.click/jwe1018?erid=2SDnjdEkHbF
Примерно год назад делал статью о том, как практически из любого одноплатного компьютера сделать ipKVM:
По сути все там хорошо, за исключением как по мне одной детали. Это ip kvm получается на 1 host, чего часто не хватает. Но есть вариант расширить функционал этого pikvm до 4рех хостов.
Для pikvm существуют kvm (расширители) готовые, специально под этот продукт, но весьма дорогие как например BLISWITCH: https://ali.click/jhexzb?erid=2SDnjc67suT
И тут удалось найти точно такой-же KVM на 4 порта https://ali.click/bue1014?erid=2SDnjcq2V5j, но гораздо дешевле, который тоже будет работать с pikvm, но после переделок небольших.
У этого KVM есть пульт выносной с 4рмя кнопками, которыми и переключаемся между хостами:

Дело в том, что это не обычные кнопки, которые замыкают нужные провода, которые идут на саму KVM. А тут прям контроллер, который по uart интерфейсу отправляет команды на сам KVM при нажатии кнопки.
Команды по uart выглядят так:
SW1\r\nG01gA – первый канал
SW2\r\nG02gA – второй канал
SW3\r\nG03gA – третий канал
SW4\r\nG04gA – четвертый канал
А контроллер этих кнопок выглядит следующим образом:

а сам Pikvm так и общается с KVM, по uart интерфейсу. По этому этот пульт убираем в сторону, откусываем один конец USB A от провода, который предназначен для подключения пульта этого. Оголяем 3 провода из 4рех. А именно белый, зеленый и черный:

Эти три провода, нам нужно будет припаять к usb/ttl переходнику: https://ali.click/jwe1018?erid=2SDnjdEkHbF
Припаивать по схеме:
| USB провод | USB ttl |
| Черный | GND |
| Белый | TX |
| Зеленый | RX |
У меня это выглядит как всегда калхозно) да еще и usb/ttl старенький из запасов весь окисленых.

Далее этот USB вставляем в USB сервера Pikvm.
Если взять пример моей присттавки H96Max, на которой я это все проворачивал, там всего 2 USB. причем один OTG, а во второй вставлена карта видеозахвата. И вот в этот USB я вставил usb hub, и уже к этому USB хабу подключил карту захвата и usb/ttl:

Теперь что касается конфига Pikvm. Идём в /etc/kvmd/override.yaml
nano /etc/kvmd/override.yaml
И тут нужно добавить новый блок gpio:
gpio:
drivers:
hk:
type: xh_hk4401
device: /dev/ttyUSB0
scheme:
ch0_led:
driver: hk
pin: 0
mode: input
ch1_led:
driver: hk
pin: 1
mode: input
ch2_led:
driver: hk
pin: 2
mode: input
ch3_led:
driver: hk
pin: 3
mode: input
ch0_button:
driver: hk
pin: 0
mode: output
switch: false
ch1_button:
driver: hk
pin: 1
mode: output
switch: false
ch2_button:
driver: hk
pin: 2
mode: output
switch: false
ch3_button:
driver: hk
pin: 3
mode: output
switch: false
view:
table:
- ["#Input 1", ch0_led, ch0_button]
- ["#Input 2", ch1_led, ch1_button]
- ["#Input 3", ch2_led, ch2_button]
- ["#Input 4", ch3_led, ch3_button]
Конфиг взят отсюда: https://www.blikvm.com/docs/device-guides/BliSwitch-v1-guide/
Обязательно проверяйте все отступы, чтоб все было одинаково, иначе не заработает.
Выглядеть конфиг по отступам должен вот так:

После добавления конфига, перегружаем сервер, ну или службу kvmd
По итогу в web интерфейсе появится дополнительный блок “GPIO” и в нём будет 4 кнопки, которые переключают KVM:
