Skip to content

Commit

Permalink
Support of alternative boards/SBCs (pikvm#19)
Browse files Browse the repository at this point in the history
* adding rock64 board

* fix file permissions

* disable atx gpio for rock64 (breaks ethernet); restore package url; fix install

* added gpio pin definitions to config

* renamed rock64 board to generic

* udev rule for generic board, improved device detection

* this udev fix should work for most boards: it skips video0 if it's not on USB, and doesn't select video2

* cleanup

* improved usb video device selection
  • Loading branch information
Yura80 authored Dec 12, 2020
1 parent 0a75d88 commit 273f90e
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 2 deletions.
1 change: 1 addition & 0 deletions PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ _variants=(
v2-hdmi:rpi4

v2-hdmiusb:rpi4
v2-hdmiusb:generic
)


Expand Down
70 changes: 70 additions & 0 deletions configs/kvmd/main/v2-hdmiusb-generic.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Don't touch this file otherwise your device may stop working.
# Use override.yaml to modify required settings.
# You can find a working configuration in /usr/share/kvmd/configs.default/kvmd.

override: !include override.yaml

logging: !include logging.yaml

kvmd:
server:
unix: /run/kvmd/kvmd.sock

auth: !include auth.yaml

hid:
type: otg
keyboard:
device: /dev/kvmd-hid-keyboard
mouse:
device: /dev/kvmd-hid-mouse

atx:
type: disabled

msd:
type: otg

streamer:
quality: 0
resolution: 1920x1080
available_resolutions:
- 1920x1080
- 1600x1200
- 1360x768
- 1280x1024
- 1280x960
- 1280x720
- 1024x768
- 800x600
- 720x576
- 720x480
- 640x480
unix: /run/kvmd/ustreamer.sock
cmd:
- "/usr/bin/ustreamer"
- "--device=/dev/kvmd-video"
- "--persistent"
- "--format=jpeg"
- "--resolution={resolution}"
- "--desired-fps={desired_fps}"
- "--drop-same-frames=30"
- "--last-as-blank=0"
- "--unix={unix}"
- "--unix-rm"
- "--unix-mode=0660"
- "--exit-on-parent-death"
- "--process-name-prefix={process_name_prefix}"
- "--notify-parent"
- "--no-log-colors"

ipmi:
kvmd:
unix: /run/kvmd/kvmd.sock

vnc:
kvmd:
unix: /run/kvmd/kvmd.sock

streamer:
unix: /run/kvmd/ustreamer.sock
5 changes: 5 additions & 0 deletions configs/os/udev/v2-hdmiusb-generic.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name
# https://wiki.archlinux.org/index.php/Udev#Setting_static_device_names
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTR{index}=="0", GROUP="kvmd", SYMLINK+="kvmd-video"
KERNEL=="hidg0", GROUP="kvmd", SYMLINK+="kvmd-hid-keyboard"
KERNEL=="hidg1", GROUP="kvmd", SYMLINK+="kvmd-hid-mouse"
4 changes: 2 additions & 2 deletions kvmd.install
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ post_upgrade() {
chown kvmd /var/lib/kvmd/msd || true

echo "==> Patching configs ..."
sed -i -e 's/^dtoverlay=pi3-disable-bt$/dtoverlay=disable-bt/g' /boot/config.txt
sed -i -e 's/^dtoverlay=dwc2$/dtoverlay=dwc2,dr_mode=peripheral/g' /boot/config.txt
[ ! -f /boot/config.txt ] || sed -i -e 's/^dtoverlay=pi3-disable-bt$/dtoverlay=disable-bt/g' /boot/config.txt
[ ! -f /boot/config.txt ] || sed -i -e 's/^dtoverlay=dwc2$/dtoverlay=dwc2,dr_mode=peripheral/g' /boot/config.txt
}

0 comments on commit 273f90e

Please sign in to comment.