添加 KVM 切换器支持

This commit is contained in:
mofeng-git 2024-10-04 15:46:51 +00:00
parent df6da8e3d7
commit 74dfc74dd2
4 changed files with 56 additions and 2 deletions

View File

@ -89,6 +89,7 @@ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
#服务自启
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
cat /One-KVM/configs/os/sudoers/v2-hdmiusb >> /etc/sudoers \
&& cat /One-KVM/configs/os/udev/v2-hdmiusb-generic.rules > /etc/udev/rules.d/99-kvmd.rules \
&& echo 'libcomposite' >> /etc/modules \
&& mv /usr/local/bin/kvmd* /usr/bin \
&& cp /One-KVM/configs/os/services/* /etc/systemd/system/ \

View File

@ -14,6 +14,7 @@ if [ ! -f /etc/kvmd/.init_flag ]; then
&& mv /etc/kvmd_backup/* /etc/kvmd/ \
&& touch /etc/kvmd/.docker_flag \
&& sed -i 's/localhost.localdomain/docker/g' /etc/kvmd/meta.yaml \
&& sed -i 's/localhost/localhost:4430/g' /etc/kvmd/kvm_input.sh \
&& /usr/share/kvmd/kvmd-gencert --do-the-thing \
&& /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc \
|| echo -e "${RED}One-KVM config moving and self-signed SSL certificates init failed.${NC}"

32
configs/kvmd/kvm_input.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# Written by @srepac FILENAME: input.sh
# Input switcher script for use with KVM switches that use CTRL+CTRL+#
# ... pass in # into the script
#
usage() {
echo "usage: $0 <#> <pikvm-name-or-ip> where # is the input number on the KVM switch"
exit 1
}
password=admin
#HOTKEY="ScrollLock"
HOTKEY="ControlLeft"
if [[ "$1" == "" ]]; then
usage
else
NUM="$1"
fi
if [[ "$2" == "" ]]; then
IP="localhost"
else
IP="$2"
fi
OSD=$( echo $HOTKEY | sed -e 's/ControlLeft/CTRL/g' )
echo "Sending $OSD + $OSD + $NUM to $IP"
curl -X POST -k -u admin:$password "https://$IP/api/hid/events/send_key?key=$HOTKEY" 2> /dev/null
curl -X POST -k -u admin:$password "https://$IP/api/hid/events/send_key?key=$HOTKEY" 2> /dev/null
curl -X POST -k -u admin:$password "https://$IP/api/hid/events/send_key?key=Digit${NUM}" 2> /dev/null

View File

@ -59,6 +59,12 @@ kvmd:
reset_press:
type: cmd
cmd: [/etc/kvmd/atx.sh, reset]
input1:
type: cmd
cmd: [/etc/kvmd/kvm_input.sh, 1]
input2:
type: cmd
cmd: [/etc/kvmd/kvm_input.sh, 2]
scheme:
wol_server1:
driver: wol_server1
@ -80,18 +86,32 @@ kvmd:
pin: 0
mode: output
switch: false
input1-button:
driver: input1
pin: 0
mode: output
switch: false
input2-button:
driver: input2
pin: 0
mode: output
switch: false
view:
header:
title: 电源管理
title: 高级功能
table:
- ["#电源管理"]
- []
- ["#短按(开/关机):", short_button|按下]
- ["#长按(强制关机):", long_button|按下]
- ["#重启:", reset_button|按下]
- []
- ["#网络唤醒"]
- ["#被控机设备", wol_server1|网络唤醒]
- []
- ["#KVM 切换"]
- ["#HDMI 1", input1-button|切换]
- ["#HDMI 2", input2-button|切换]
vnc:
keymap: /usr/share/kvmd/keymaps/ru