mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
Merge remote-tracking branch 'origin/dev'
This commit is contained in:
commit
6d1002a80b
19
.bumpversion.cfg
Normal file
19
.bumpversion.cfg
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[bumpversion]
|
||||||
|
commit = True
|
||||||
|
tag = True
|
||||||
|
current_version = 4.3
|
||||||
|
parse = (?P<major>\d+)\.(?P<minor>\d+)(\.(?P<patch>\d+)(\-(?P<release>[a-z]+))?)?
|
||||||
|
serialize =
|
||||||
|
{major}.{minor}
|
||||||
|
|
||||||
|
[bumpversion:file:kvmd/__init__.py]
|
||||||
|
search = __version__ = "{current_version}"
|
||||||
|
replace = __version__ = "{new_version}"
|
||||||
|
|
||||||
|
[bumpversion:file:setup.py]
|
||||||
|
search = version="{current_version}"
|
||||||
|
replace = version="{new_version}"
|
||||||
|
|
||||||
|
[bumpversion:file:PKGBUILD]
|
||||||
|
search = pkgver={current_version}
|
||||||
|
replace = pkgver={new_version}
|
||||||
23
.dockerignore
Normal file
23
.dockerignore
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/pkg/
|
||||||
|
/src/
|
||||||
|
/site/
|
||||||
|
/dist/
|
||||||
|
/kvmd.egg-info/
|
||||||
|
/testenv/run/
|
||||||
|
/testenv/.tox/
|
||||||
|
/testenv/.mypy_cache/
|
||||||
|
/testenv/.ssl/
|
||||||
|
/hid/arduino/.pio/
|
||||||
|
/hid/arduino/.platformio/
|
||||||
|
/hid/pico/.pico-sdk.tmp/
|
||||||
|
/hid/pico/.pico-sdk/
|
||||||
|
/hid/pico/.tinyusb.tmp/
|
||||||
|
/hid/pico/.tinyusb/
|
||||||
|
/hid/pico/.build/
|
||||||
|
/hid/pico/*.uf2
|
||||||
|
/.git/
|
||||||
|
/v*.tar.gz
|
||||||
|
/*.pkg.tar.xz
|
||||||
|
/*.pkg.tar.zst
|
||||||
|
/*.egg-info
|
||||||
|
/*kvmd-*.tar.gz
|
||||||
10
.editorconfig
Normal file
10
.editorconfig
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_file = lf
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.{py,yaml}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
4
.github/FUNDING.yml
vendored
Normal file
4
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
patreon: pikvm
|
||||||
|
custom: https://paypal.me/pikvm
|
||||||
23
.github/workflows/arduino-hid.yml
vendored
Normal file
23
.github/workflows/arduino-hid.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
name: Arduino HID CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
container:
|
||||||
|
image: python
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Prepare platformio
|
||||||
|
run: pip install platformio
|
||||||
|
|
||||||
|
- name: Build all
|
||||||
|
run: make -C hid/arduino _build_all
|
||||||
41
.github/workflows/pico-hid-release.yml
vendored
Normal file
41
.github/workflows/pico-hid-release.yml
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
name: Pico HID Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Installing deps ...
|
||||||
|
run: sudo apt-get install cmake gcc-arm-none-eabi build-essential
|
||||||
|
|
||||||
|
- name: Building ...
|
||||||
|
run: make -C hid/pico all
|
||||||
|
|
||||||
|
- name: Releasing ...
|
||||||
|
id: create_release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: ${{ github.ref }}
|
||||||
|
release_name: Release ${{ github.ref }}
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
|
|
||||||
|
- name: Uploading firmware ...
|
||||||
|
id: upload-release-asset
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: ./hid/pico/hid.uf2
|
||||||
|
asset_name: pico-hid.uf2
|
||||||
|
asset_content_type: application/octet-stream
|
||||||
20
.github/workflows/pico-hid.yml
vendored
Normal file
20
.github/workflows/pico-hid.yml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
name: Pico HID CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Installing deps ...
|
||||||
|
run: sudo apt-get install cmake gcc-arm-none-eabi build-essential
|
||||||
|
|
||||||
|
- name: Running tests ...
|
||||||
|
run: make -C hid/pico all
|
||||||
20
.github/workflows/tox.yml
vendored
Normal file
20
.github/workflows/tox.yml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
name: TOX CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Building testenv ...
|
||||||
|
run: make testenv
|
||||||
|
|
||||||
|
- name: Running tests ...
|
||||||
|
run: make tox CMD="tox -c testenv/tox.ini"
|
||||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/pkg/
|
||||||
|
/src/
|
||||||
|
/site/
|
||||||
|
/dist/
|
||||||
|
/kvmd.egg-info/
|
||||||
|
/config.mk
|
||||||
|
/testenv/.tox/
|
||||||
|
/testenv/.mypy_cache/
|
||||||
|
/testenv/.coverage*
|
||||||
|
/testenv/run/*.sock
|
||||||
|
/testenv/run/*.pid
|
||||||
|
/testenv/.ssl/
|
||||||
|
/v*.tar.gz
|
||||||
|
/*.pkg.tar.xz
|
||||||
|
/*.pkg.tar.zst
|
||||||
|
/*.egg-info
|
||||||
|
/*kvmd-*.tar.gz
|
||||||
|
*.pyc
|
||||||
|
*.swp
|
||||||
|
/venv/
|
||||||
@ -1,15 +0,0 @@
|
|||||||
更新日志
|
|
||||||
- V0.61:对于用户:KVMD主程序从3.198升级至3.291,Ustreamer升级至6.12,Linux内核升级至6.6.34-current-meson;支持CH9329键鼠驱动;网页界面和翻译的优化;实装h.264视频转码服务,可手动开启:systemctl start kvmd-ffmpeg;对于开发者:基于srepac/kvmd-armbian项目重构安装脚本,主程序和依赖软件版本升级;资源本地化,减小网络原因的影响;添加kvmd-ffmpeg和kvmd-display服务及服务安装脚本;内核去除2.2G CD-ROM镜像文件限制(暂未做软件适配)
|
|
||||||
- V0.58: 增强通用性,取消内核和设备树修改,系统配置操作放在/etc/rc.local,修改便捷;更新内核至 6.6.32-current-meson
|
|
||||||
- V0.57: [build]mac固定,第一次启动时随机生成;解决armbain源因密钥无法使用;解决sd启动配置问题
|
|
||||||
- V0.56:[Build-Armbian]回退5.9内核版本(V0.52),目前运行最稳定的内核版本;支持docker;此前高内核的累积更新
|
|
||||||
- V0.55: [build]使用lanlan Uboot,通电按重置键可进入线刷模式;HDM可用,WIFI模块已编译;预装armbian-config实用工具;Webterm和VNC修复(tighervnc存在兼容问题,可尝试使用uvnc viewer),添加状态信息显示
|
|
||||||
- V0.54: [build]内核切换至xdarklight/linux/tree/meson-mx-integration-6.7-20231221,系统运行更加稳定;包含armbian-config等实用工具
|
|
||||||
- V0.53: [build]修复高内核OTG拔插内核崩溃问题;切换至更新的Linux内核(6.6.15-current-meson);去除线刷镜像分区校验
|
|
||||||
- V0.52:[Build-Armbian]添加MSD内核补丁;完全使用hzyitc的uboot,减小boot分区从512M至128M,引导和分区表使用UUID,默认关闭线刷刷机;dtb切换为外围设备模式;led颜色修改,红色(UBoot)-紫色(内核)-绿色(完全启动);调整dts CPU频率和版本,添加H.264支持(来自群友 自.知 )
|
|
||||||
- V0.51: [Build-Armbian]5.9内核构建,初步完成直刷镜像构建。
|
|
||||||
- V0.5:通过锁定CPU频率修复ustreamer mjpeg视频流异常的问题;屏蔽主程序找不到温度传感器的报错;优化中文翻译;更新VNC依赖;优化安装流程。
|
|
||||||
- V0.4:利用玩客云自动GPIO实现ATX开关机物理控制功能;初步建立飞书使用文档;制作一键安装脚本,优化安装流程。
|
|
||||||
- V0.3:添加简体中文补丁;实现MSD功能在EMMC和TF卡上的使用;添加WOL和中文OCR功能;优化了安装流程。
|
|
||||||
- V0.2:通过替换系统解决OTG拔插死机问题;初步实现MSD功能;修改启动分区解决开机卡线刷检测;优化安装流程。
|
|
||||||
- V0.1:PiKVM在玩客云上初步运行。
|
|
||||||
18
LICENSE
18
LICENSE
@ -1,7 +1,11 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 3, 29 June 2007
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
=======
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
>>>>>>> origin/dev
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -645,7 +649,11 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
|
<<<<<<< HEAD
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
=======
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
@ -664,11 +672,19 @@ might be different; for a GUI interface, you would use an "about box".
|
|||||||
You should also get your employer (if you work as a programmer) or school,
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
For more information on this, and how to apply and follow the GNU GPL, see
|
||||||
|
<<<<<<< HEAD
|
||||||
<https://www.gnu.org/licenses/>.
|
<https://www.gnu.org/licenses/>.
|
||||||
|
=======
|
||||||
|
<http://www.gnu.org/licenses/>.
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
The GNU General Public License does not permit incorporating your program
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
<<<<<<< HEAD
|
||||||
|
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||||
|
=======
|
||||||
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|||||||
314
Makefile
Normal file
314
Makefile
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
-include config.mk
|
||||||
|
|
||||||
|
TESTENV_IMAGE ?= kvmd-testenv
|
||||||
|
TESTENV_HID ?= /dev/ttyS10
|
||||||
|
TESTENV_VIDEO ?= /dev/video0
|
||||||
|
TESTENV_GPIO ?= /dev/gpiochip0
|
||||||
|
TESTENV_RELAY ?= $(if $(shell ls /dev/hidraw0 2>/dev/null || true),/dev/hidraw0,)
|
||||||
|
|
||||||
|
LIBGPIOD_VERSION ?= 1.6.3
|
||||||
|
|
||||||
|
USTREAMER_MIN_VERSION ?= $(shell grep -o 'ustreamer>=[^"]\+' PKGBUILD | sed 's/ustreamer>=//g')
|
||||||
|
|
||||||
|
DEFAULT_PLATFORM ?= v2-hdmiusb-rpi4
|
||||||
|
|
||||||
|
DOCKER ?= docker
|
||||||
|
|
||||||
|
|
||||||
|
# =====
|
||||||
|
define optbool
|
||||||
|
$(filter $(shell echo $(1) | tr A-Z a-z),yes on 1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
# =====
|
||||||
|
all:
|
||||||
|
@ echo "Useful commands:"
|
||||||
|
@ echo " make # Print this help"
|
||||||
|
@ echo " make testenv # Build test environment"
|
||||||
|
@ echo " make tox # Run tests and linters"
|
||||||
|
@ echo " make tox E=pytest # Run selected test environment"
|
||||||
|
@ echo " make gpio # Create gpio mockup"
|
||||||
|
@ echo " make run # Run kvmd"
|
||||||
|
@ echo " make run CMD=... # Run specified command inside kvmd environment"
|
||||||
|
@ echo " make run-cfg # Run kvmd -m"
|
||||||
|
@ echo " make run-ipmi # Run kvmd-ipmi"
|
||||||
|
@ echo " make run-ipmi CMD=... # Run specified command inside kvmd-ipmi environment"
|
||||||
|
@ echo " make run-vnc # Run kvmd-vnc"
|
||||||
|
@ echo " make run-vnc CMD=... # Run specified command inside kvmd-vnc environment"
|
||||||
|
@ echo " make regen # Regen some sources like keymap"
|
||||||
|
@ echo " make bump # Bump minor version"
|
||||||
|
@ echo " make bump V=major # Bump major version"
|
||||||
|
@ echo " make release # Publish the new release (include bump minor)"
|
||||||
|
@ echo " make clean # Remove garbage"
|
||||||
|
@ echo " make clean-all # Remove garbage and test results"
|
||||||
|
@ echo
|
||||||
|
@ echo "Also you can add option NC=1 to rebuild docker test environment"
|
||||||
|
|
||||||
|
|
||||||
|
testenv:
|
||||||
|
$(DOCKER) build \
|
||||||
|
$(if $(call optbool,$(NC)),--no-cache,) \
|
||||||
|
--rm \
|
||||||
|
--tag $(TESTENV_IMAGE) \
|
||||||
|
--build-arg LIBGPIOD_VERSION=$(LIBGPIOD_VERSION) \
|
||||||
|
--build-arg USTREAMER_MIN_VERSION=$(USTREAMER_MIN_VERSION) \
|
||||||
|
-f testenv/Dockerfile .
|
||||||
|
test -d testenv/.ssl || $(DOCKER) run --rm \
|
||||||
|
--volume `pwd`:/src:ro \
|
||||||
|
--volume `pwd`/testenv:/src/testenv:rw \
|
||||||
|
-t $(TESTENV_IMAGE) bash -c " \
|
||||||
|
groupadd kvmd-nginx \
|
||||||
|
&& groupadd kvmd-vnc \
|
||||||
|
&& /src/scripts/kvmd-gencert --do-the-thing \
|
||||||
|
&& /src/scripts/kvmd-gencert --do-the-thing --vnc \
|
||||||
|
&& chown -R root:root /etc/kvmd/{nginx,vnc}/ssl \
|
||||||
|
&& chmod 664 /etc/kvmd/{nginx,vnc}/ssl/* \
|
||||||
|
&& chmod 775 /etc/kvmd/{nginx,vnc}/ssl \
|
||||||
|
&& mkdir /src/testenv/.ssl \
|
||||||
|
&& mv /etc/kvmd/nginx/ssl /src/testenv/.ssl/nginx \
|
||||||
|
&& mv /etc/kvmd/vnc/ssl /src/testenv/.ssl/vnc \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
tox: testenv
|
||||||
|
time $(DOCKER) run --rm \
|
||||||
|
--volume `pwd`:/src:ro \
|
||||||
|
--volume `pwd`/testenv:/src/testenv:rw \
|
||||||
|
--volume `pwd`/testenv/tests:/src/testenv/tests:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
-t $(TESTENV_IMAGE) bash -c " \
|
||||||
|
cp -a /src/testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /src/testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& cp /src/testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /src/testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& cd /src \
|
||||||
|
&& $(if $(CMD),$(CMD),tox -q -c testenv/tox.ini $(if $(E),-e $(E),-p auto)) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
$(TESTENV_GPIO):
|
||||||
|
test ! -e $(TESTENV_GPIO)
|
||||||
|
sudo modprobe gpio-mockup gpio_mockup_ranges=0,40
|
||||||
|
test -c $(TESTENV_GPIO)
|
||||||
|
|
||||||
|
|
||||||
|
run: testenv $(TESTENV_GPIO)
|
||||||
|
- $(DOCKER) run --rm --name kvmd \
|
||||||
|
--privileged \
|
||||||
|
--volume `pwd`/testenv/run:/run/kvmd:rw \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/testenv/env.py:/kvmd/env.py:ro \
|
||||||
|
--volume `pwd`/web:/usr/share/kvmd/web:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
|
||||||
|
--device $(TESTENV_GPIO):$(TESTENV_GPIO) \
|
||||||
|
$(if $(TESTENV_RELAY),--device $(TESTENV_RELAY):$(TESTENV_RELAY),) \
|
||||||
|
--publish 8080:8080/tcp \
|
||||||
|
--publish 4430:4430/tcp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
mkdir -p /tmp/kvmd-nginx \
|
||||||
|
&& mount -t debugfs none /sys/kernel/debug \
|
||||||
|
&& test -d /sys/kernel/debug/gpio-mockup/`basename $(TESTENV_GPIO)`/ || (echo \"Missing GPIO mockup\" && exit 1) \
|
||||||
|
&& (socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \
|
||||||
|
&& cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \
|
||||||
|
&& cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& cp /testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& ln -s /testenv/web.css /etc/kvmd/web.css \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf \
|
||||||
|
&& nginx -c /etc/kvmd/nginx/nginx.conf -g 'user http; error_log stderr;' \
|
||||||
|
&& ln -s $(TESTENV_VIDEO) /dev/kvmd-video \
|
||||||
|
&& ln -s $(TESTENV_GPIO) /dev/kvmd-gpio \
|
||||||
|
&& $(if $(CMD),$(CMD),python -m kvmd.apps.kvmd --run) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
run-cfg: testenv
|
||||||
|
- $(DOCKER) run --rm --name kvmd-cfg \
|
||||||
|
--volume `pwd`/testenv/run:/run/kvmd:rw \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& cp /testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& $(if $(CMD),$(CMD),python -m kvmd.apps.kvmd -m) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
run-ipmi: testenv
|
||||||
|
- $(DOCKER) run --rm --name kvmd-ipmi \
|
||||||
|
--volume `pwd`/testenv/run:/run/kvmd:rw \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
--publish 6230:623/udp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& cp /testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& $(if $(CMD),$(CMD),python -m kvmd.apps.ipmi --run) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
run-vnc: testenv
|
||||||
|
- $(DOCKER) run --rm --name kvmd-vnc \
|
||||||
|
--volume `pwd`/testenv/run:/run/kvmd:rw \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
--publish 5900:5900/tcp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& cp /testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& $(if $(CMD),$(CMD),python -m kvmd.apps.vnc --run) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
regen: keymap pug
|
||||||
|
|
||||||
|
|
||||||
|
keymap: testenv
|
||||||
|
$(DOCKER) run --user `id -u`:`id -g` --rm \
|
||||||
|
--volume `pwd`:/src \
|
||||||
|
-it $(TESTENV_IMAGE) bash -c "cd src \
|
||||||
|
&& ./genmap.py keymap.csv kvmd/keyboard/mappings.py.mako kvmd/keyboard/mappings.py \
|
||||||
|
&& ./genmap.py keymap.csv hid/arduino/lib/drivers/usb-keymap.h.mako hid/arduino/lib/drivers/usb-keymap.h \
|
||||||
|
&& ./genmap.py keymap.csv hid/arduino/lib/drivers-avr/ps2/keymap.h.mako hid/arduino/lib/drivers-avr/ps2/keymap.h \
|
||||||
|
&& ./genmap.py keymap.csv hid/pico/src/ph_usb_keymap.h.mako hid/pico/src/ph_usb_keymap.h \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
pug: testenv
|
||||||
|
$(DOCKER) run --user `id -u`:`id -g` --rm \
|
||||||
|
--volume `pwd`:/src \
|
||||||
|
-it $(TESTENV_IMAGE) bash -c "cd src \
|
||||||
|
&& pug --pretty web/index.pug -o web \
|
||||||
|
&& pug --pretty web/login/index.pug -o web/login \
|
||||||
|
&& pug --pretty web/kvm/index.pug -o web/kvm \
|
||||||
|
&& pug --pretty web/ipmi/index.pug -o web/ipmi \
|
||||||
|
&& pug --pretty web/vnc/index.pug -o web/vnc \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
release:
|
||||||
|
make clean
|
||||||
|
make tox
|
||||||
|
make clean
|
||||||
|
make push
|
||||||
|
make bump V=$(V)
|
||||||
|
make push
|
||||||
|
make clean
|
||||||
|
|
||||||
|
|
||||||
|
bump:
|
||||||
|
bumpversion $(if $(V),$(V),minor)
|
||||||
|
|
||||||
|
|
||||||
|
push:
|
||||||
|
git push
|
||||||
|
git push --tags
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf testenv/run/*.{pid,sock} build site dist pkg src v*.tar.gz *.pkg.tar.{xz,zst} *.egg-info kvmd-*.tar.gz
|
||||||
|
find kvmd testenv/tests -name __pycache__ | xargs rm -rf
|
||||||
|
make -C hid/arduino clean
|
||||||
|
make -C hid/pico clean
|
||||||
|
|
||||||
|
|
||||||
|
clean-all: testenv clean
|
||||||
|
make -C hid/arduino clean-all
|
||||||
|
make -C hid/pico clean-all
|
||||||
|
- $(DOCKER) run --rm \
|
||||||
|
--volume `pwd`:/src \
|
||||||
|
-it $(TESTENV_IMAGE) bash -c "cd src && rm -rf testenv/{.ssl,.tox,.mypy_cache,.coverage}"
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: testenv
|
||||||
|
|
||||||
|
run-build:
|
||||||
|
$(DOCKER) buildx build -t registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd:dev \
|
||||||
|
--allow security.insecure --progress plain \
|
||||||
|
--platform linux/amd64,linux/arm64,linux/arm/v7 \
|
||||||
|
-f build/Dockerfile . \
|
||||||
|
--push
|
||||||
|
|
||||||
|
run-nogpio: testenv
|
||||||
|
- $(DOCKER) run --rm --name kvmd \
|
||||||
|
--privileged \
|
||||||
|
--volume `pwd`/testenv/run:/run/kvmd:rw \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/testenv/env.py:/kvmd/env.py:ro \
|
||||||
|
--volume `pwd`/web:/usr/share/kvmd/web:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
|
||||||
|
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
|
||||||
|
$(if $(TESTENV_RELAY),--device $(TESTENV_RELAY):$(TESTENV_RELAY),) \
|
||||||
|
--publish 8080:8080/tcp \
|
||||||
|
--publish 4430:4430/tcp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
mkdir -p /tmp/kvmd-nginx \
|
||||||
|
&& mount -t debugfs none /sys/kernel/debug \
|
||||||
|
&& (socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \
|
||||||
|
&& cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \
|
||||||
|
&& cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \
|
||||||
|
&& cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \
|
||||||
|
&& touch /etc/kvmd/.docker_flag \
|
||||||
|
&& cp /testenv/platform /usr/share/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \
|
||||||
|
&& ln -s /testenv/web.css /etc/kvmd/web.css \
|
||||||
|
&& mkdir -p /etc/kvmd/override.d \
|
||||||
|
&& cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \
|
||||||
|
&& python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf \
|
||||||
|
&& nginx -c /etc/kvmd/nginx/nginx.conf -g 'user http; error_log stderr;' \
|
||||||
|
&& $(if $(CMD),$(CMD),python -m kvmd.apps.kvmd --run) \
|
||||||
|
"
|
||||||
265
PKGBUILD
Normal file
265
PKGBUILD
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
# Contributor: Maxim Devaev <mdevaev@gmail.com>
|
||||||
|
# Author: Maxim Devaev <mdevaev@gmail.com>
|
||||||
|
|
||||||
|
|
||||||
|
_variants=(
|
||||||
|
v0-hdmi:zero2w
|
||||||
|
v0-hdmi:rpi2
|
||||||
|
v0-hdmi:rpi3
|
||||||
|
|
||||||
|
v0-hdmiusb:zero2w
|
||||||
|
v0-hdmiusb:rpi2
|
||||||
|
v0-hdmiusb:rpi3
|
||||||
|
|
||||||
|
v1-hdmi:zero2w
|
||||||
|
v1-hdmi:rpi2
|
||||||
|
v1-hdmi:rpi3
|
||||||
|
|
||||||
|
v1-hdmiusb:zero2w
|
||||||
|
v1-hdmiusb:rpi2
|
||||||
|
v1-hdmiusb:rpi3
|
||||||
|
|
||||||
|
v2-hdmi:zero2w
|
||||||
|
v2-hdmi:rpi3
|
||||||
|
v2-hdmi:rpi4
|
||||||
|
|
||||||
|
v2-hdmiusb:rpi4
|
||||||
|
|
||||||
|
v3-hdmi:rpi4
|
||||||
|
|
||||||
|
v4mini-hdmi:rpi4
|
||||||
|
v4plus-hdmi:rpi4
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
pkgname=(kvmd)
|
||||||
|
for _variant in "${_variants[@]}"; do
|
||||||
|
_platform=${_variant%:*}
|
||||||
|
_board=${_variant#*:}
|
||||||
|
pkgname+=(kvmd-platform-$_platform-$_board)
|
||||||
|
done
|
||||||
|
pkgbase=kvmd
|
||||||
|
pkgver=4.3
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="The main PiKVM daemon"
|
||||||
|
url="https://github.com/pikvm/kvmd"
|
||||||
|
license=(GPL)
|
||||||
|
arch=(any)
|
||||||
|
depends=(
|
||||||
|
"python>=3.12"
|
||||||
|
"python<3.13"
|
||||||
|
python-yaml
|
||||||
|
python-aiohttp
|
||||||
|
python-aiofiles
|
||||||
|
python-async-lru
|
||||||
|
python-passlib
|
||||||
|
python-pyotp
|
||||||
|
python-qrcode
|
||||||
|
python-periphery
|
||||||
|
python-pyserial
|
||||||
|
python-pyserial-asyncio
|
||||||
|
python-spidev
|
||||||
|
python-setproctitle
|
||||||
|
python-psutil
|
||||||
|
python-netifaces
|
||||||
|
python-systemd
|
||||||
|
python-dbus
|
||||||
|
python-dbus-next
|
||||||
|
python-pygments
|
||||||
|
python-pyghmi
|
||||||
|
python-pam
|
||||||
|
python-pillow
|
||||||
|
python-xlib
|
||||||
|
libxkbcommon
|
||||||
|
python-hidapi
|
||||||
|
python-six
|
||||||
|
python-pyrad
|
||||||
|
python-ldap
|
||||||
|
python-zstandard
|
||||||
|
python-mako
|
||||||
|
"libgpiod>=2.1"
|
||||||
|
freetype2
|
||||||
|
"v4l-utils>=1.22.1-1"
|
||||||
|
"nginx-mainline>=1.25.1"
|
||||||
|
openssl
|
||||||
|
sudo
|
||||||
|
iptables
|
||||||
|
iproute2
|
||||||
|
dnsmasq
|
||||||
|
ipmitool
|
||||||
|
"janus-gateway-pikvm>=0.14.2-3"
|
||||||
|
certbot
|
||||||
|
platform-io-access
|
||||||
|
raspberrypi-utils
|
||||||
|
"ustreamer>=6.11"
|
||||||
|
|
||||||
|
# Systemd UDEV bug
|
||||||
|
"systemd>=248.3-2"
|
||||||
|
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2035802
|
||||||
|
# https://archlinuxarm.org/forum/viewtopic.php?f=15&t=15725&start=40
|
||||||
|
"zstd>=1.5.1-2.1"
|
||||||
|
|
||||||
|
# Possible hotfix for the new os update
|
||||||
|
openssl-1.1
|
||||||
|
|
||||||
|
# Bootconfig
|
||||||
|
dos2unix
|
||||||
|
parted
|
||||||
|
e2fsprogs
|
||||||
|
openssh
|
||||||
|
# FIXME:
|
||||||
|
# - https://archlinuxarm.org/forum/viewtopic.php?f=15&t=17007&p=72789
|
||||||
|
# - https://github.com/pikvm/pikvm/issues/1375
|
||||||
|
wpa_supplicant-pikvm
|
||||||
|
run-parts
|
||||||
|
|
||||||
|
# fsck for /boot
|
||||||
|
dosfstools
|
||||||
|
|
||||||
|
# pgrep for kvmd-udev-restart-pass
|
||||||
|
procps-ng
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
hostapd
|
||||||
|
)
|
||||||
|
optdepends=(
|
||||||
|
tesseract
|
||||||
|
)
|
||||||
|
conflicts=(
|
||||||
|
python-pikvm
|
||||||
|
python-aiohttp-pikvm
|
||||||
|
platformio
|
||||||
|
avrdude-pikvm
|
||||||
|
)
|
||||||
|
makedepends=(
|
||||||
|
python-setuptools
|
||||||
|
python-pip
|
||||||
|
)
|
||||||
|
source=("$url/archive/v$pkgver.tar.gz")
|
||||||
|
md5sums=(SKIP)
|
||||||
|
backup=(
|
||||||
|
etc/kvmd/{override,logging,auth,meta}.yaml
|
||||||
|
etc/kvmd/{ht,ipmi,vnc}passwd
|
||||||
|
etc/kvmd/totp.secret
|
||||||
|
etc/kvmd/nginx/{kvmd.ctx-{http,server},certbot.ctx-server}.conf
|
||||||
|
etc/kvmd/nginx/loc-{login,nocache,proxy,websocket,nobuffering,bigpost}.conf
|
||||||
|
etc/kvmd/nginx/{mime-types,ssl}.conf
|
||||||
|
etc/kvmd/nginx/nginx.conf.mako
|
||||||
|
etc/kvmd/janus/janus{,.plugin.ustreamer,.transport.websockets}.jcfg
|
||||||
|
etc/kvmd/web.css
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
package_kvmd() {
|
||||||
|
install=$pkgname.install
|
||||||
|
|
||||||
|
cd "$srcdir/kvmd-$pkgver"
|
||||||
|
pip install --root="$pkgdir" --no-deps .
|
||||||
|
|
||||||
|
install -Dm755 -t "$pkgdir/usr/bin" scripts/kvmd-{bootconfig,gencert,certbot}
|
||||||
|
|
||||||
|
install -Dm644 -t "$pkgdir/usr/lib/systemd/system" configs/os/services/*
|
||||||
|
install -DTm644 configs/os/sysusers.conf "$pkgdir/usr/lib/sysusers.d/kvmd.conf"
|
||||||
|
install -DTm644 configs/os/tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/kvmd.conf"
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/usr/share/kvmd"
|
||||||
|
cp -r {hid,web,extras,contrib/keymaps} "$pkgdir/usr/share/kvmd"
|
||||||
|
find "$pkgdir/usr/share/kvmd/web" -name '*.pug' -exec rm -f '{}' \;
|
||||||
|
|
||||||
|
local _cfg_default="$pkgdir/usr/share/kvmd/configs.default"
|
||||||
|
mkdir -p "$_cfg_default"
|
||||||
|
cp -r configs/* "$_cfg_default"
|
||||||
|
|
||||||
|
find "$pkgdir" -name ".gitignore" -delete
|
||||||
|
find "$_cfg_default" -type f -exec chmod 444 '{}' \;
|
||||||
|
chmod 400 "$_cfg_default/kvmd"/*passwd
|
||||||
|
chmod 400 "$_cfg_default/kvmd"/*.secret
|
||||||
|
chmod 750 "$_cfg_default/os/sudoers"
|
||||||
|
chmod 400 "$_cfg_default/os/sudoers"/*
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/etc/kvmd/"{nginx,vnc}"/ssl"
|
||||||
|
chmod 755 "$pkgdir/etc/kvmd/"{nginx,vnc}"/ssl"
|
||||||
|
install -Dm444 -t "$pkgdir/etc/kvmd/nginx" "$_cfg_default/nginx"/*.conf*
|
||||||
|
chmod 644 "$pkgdir/etc/kvmd/nginx/"{nginx,ssl}.conf*
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/etc/kvmd/janus"
|
||||||
|
chmod 755 "$pkgdir/etc/kvmd/janus"
|
||||||
|
install -Dm444 -t "$pkgdir/etc/kvmd/janus" "$_cfg_default/janus"/*.jcfg
|
||||||
|
|
||||||
|
install -Dm644 -t "$pkgdir/etc/kvmd" "$_cfg_default/kvmd"/*.yaml
|
||||||
|
install -Dm600 -t "$pkgdir/etc/kvmd" "$_cfg_default/kvmd"/*passwd
|
||||||
|
install -Dm600 -t "$pkgdir/etc/kvmd" "$_cfg_default/kvmd"/*.secret
|
||||||
|
install -Dm644 -t "$pkgdir/etc/kvmd" "$_cfg_default/kvmd"/web.css
|
||||||
|
mkdir -p "$pkgdir/etc/kvmd/override.d"
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/var/lib/kvmd/"{msd,pst}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for _variant in "${_variants[@]}"; do
|
||||||
|
_platform=${_variant%:*}
|
||||||
|
_board=${_variant#*:}
|
||||||
|
_base=${_platform%-*}
|
||||||
|
_video=${_platform#*-}
|
||||||
|
eval "package_kvmd-platform-$_platform-$_board() {
|
||||||
|
cd \"kvmd-\$pkgver\"
|
||||||
|
|
||||||
|
pkgdesc=\"PiKVM platform configs - $_platform for $_board\"
|
||||||
|
depends=(kvmd=$pkgver-$pkgrel \"linux-rpi-pikvm>=6.6.21-3\")
|
||||||
|
|
||||||
|
backup=(
|
||||||
|
etc/sysctl.d/99-kvmd.conf
|
||||||
|
etc/udev/rules.d/99-kvmd.rules
|
||||||
|
etc/kvmd/main.yaml
|
||||||
|
)
|
||||||
|
|
||||||
|
if [[ $_base == v0 ]]; then
|
||||||
|
depends=(\"\${depends[@]}\" platformio-core avrdude make patch)
|
||||||
|
elif [[ $_base == v4plus ]]; then
|
||||||
|
depends=(\"\${depends[@]}\" flashrom-pikvm)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $_platform =~ ^.*-hdmiusb$ ]]; then
|
||||||
|
install -Dm755 -t \"\$pkgdir/usr/bin\" scripts/kvmd-udev-hdmiusb-check
|
||||||
|
fi
|
||||||
|
if [[ $_base == v4plus ]]; then
|
||||||
|
install -Dm755 -t \"\$pkgdir/usr/bin\" scripts/kvmd-udev-restart-pass
|
||||||
|
fi
|
||||||
|
|
||||||
|
install -DTm644 configs/os/sysctl.conf \"\$pkgdir/etc/sysctl.d/99-kvmd.conf\"
|
||||||
|
install -DTm644 configs/os/udev/common.rules \"\$pkgdir/usr/lib/udev/rules.d/99-kvmd-common.rules\"
|
||||||
|
install -DTm644 configs/os/udev/$_platform-$_board.rules \"\$pkgdir/etc/udev/rules.d/99-kvmd.rules\"
|
||||||
|
install -DTm444 configs/kvmd/main/$_platform-$_board.yaml \"\$pkgdir/etc/kvmd/main.yaml\"
|
||||||
|
|
||||||
|
if [ -f configs/kvmd/fan/$_platform.ini ]; then
|
||||||
|
backup=(\"\${backup[@]}\" etc/kvmd/fan.ini)
|
||||||
|
depends=(\"\${depends[@]}\" \"kvmd-fan>=0.18\")
|
||||||
|
install -DTm444 configs/kvmd/fan/$_platform.ini \"\$pkgdir/etc/kvmd/fan.ini\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f configs/os/modules-load/$_platform.conf ]; then
|
||||||
|
backup=(\"\${backup[@]}\" etc/modules-load.d/kvmd.conf)
|
||||||
|
install -DTm644 configs/os/modules-load/$_platform.conf \"\$pkgdir/etc/modules-load.d/kvmd.conf\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f configs/os/sudoers/$_platform ]; then
|
||||||
|
backup=(\"\${backup[@]}\" etc/sudoers.d/99_kvmd)
|
||||||
|
install -DTm440 configs/os/sudoers/$_platform \"\$pkgdir/etc/sudoers.d/99_kvmd\"
|
||||||
|
chmod 750 \"\$pkgdir/etc/sudoers.d\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $_platform =~ ^.*-hdmi$ ]]; then
|
||||||
|
backup=(\"\${backup[@]}\" etc/kvmd/tc358743-edid.hex)
|
||||||
|
install -DTm444 configs/kvmd/edid/$_base.hex \"\$pkgdir/etc/kvmd/tc358743-edid.hex\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p \"\$pkgdir/usr/share/kvmd\"
|
||||||
|
local _platform=\"\$pkgdir/usr/share/kvmd/platform\"
|
||||||
|
rm -f \"\$_platform\"
|
||||||
|
echo PIKVM_MODEL=$_base > \"\$_platform\"
|
||||||
|
echo PIKVM_VIDEO=$_video >> \"\$_platform\"
|
||||||
|
echo PIKVM_BOARD=$_board >> \"\$_platform\"
|
||||||
|
chmod 444 \"\$_platform\"
|
||||||
|
}"
|
||||||
|
done
|
||||||
64
README.md
64
README.md
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
### 介绍
|
### 介绍
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
One-KVM 是基于廉价计算机硬件(目前为玩客云和 X64 兼容机)和PiKVM软件的硬件级远程控制项目。KVM over IP 可以远程管理服务器或工作站,实现无侵入式控制,无论被控机为什么操作系统或是否安装了操作系统,具有更广泛的适用性。此项目基于 [PiKVM](https://github.com/pikvm/pikvm),和基于远控软件的远程管理方式不同,无需在被控电脑安装任何软件,实现无侵入式控制。
|
One-KVM 是基于廉价计算机硬件(目前为玩客云和 X64 兼容机)和PiKVM软件的硬件级远程控制项目。KVM over IP 可以远程管理服务器或工作站,实现无侵入式控制,无论被控机为什么操作系统或是否安装了操作系统,具有更广泛的适用性。此项目基于 [PiKVM](https://github.com/pikvm/pikvm),和基于远控软件的远程管理方式不同,无需在被控电脑安装任何软件,实现无侵入式控制。
|
||||||
|
|
||||||
### 快速开始
|
### 快速开始
|
||||||
@ -43,12 +44,58 @@ sudo bash kvmd_h264_install.sh
|
|||||||
```bash
|
```bash
|
||||||
#使用示例:
|
#使用示例:
|
||||||
docker run -itd -p443:443 -p80:80 --name pikvm-docker --device=/dev/ttyUSB0:/dev/kvmd-hid --device=/dev/video0:/dev/kvmd-video silentwind0/pikvm-ch9329:0.61
|
docker run -itd -p443:443 -p80:80 --name pikvm-docker --device=/dev/ttyUSB0:/dev/kvmd-hid --device=/dev/video0:/dev/kvmd-video silentwind0/pikvm-ch9329:0.61
|
||||||
|
=======
|
||||||
|
One-KVM 是基于廉价计算机硬件和PiKVM软件的硬件级远程控制项目。KVM over IP 可以远程管理服务器或工作站,实现无侵入式控制,无论被控机为什么操作系统或是否安装了操作系统,具有更广泛的适用性。此项目基于 [PiKVM](https://github.com/pikvm/pikvm),和基于远控软件的远程管理方式不同,无需在被控电脑安装任何软件,实现无侵入式控制。
|
||||||
|
|
||||||
|
### 快速开始
|
||||||
|
|
||||||
|
**方式一:Docker 镜像部署(推荐)**
|
||||||
|
|
||||||
|
目前 Docker 版只能使用 CH9329 作为虚拟 HID ,支持 amd64、arm64、armv7 架构的 Linux 系统安装。
|
||||||
|
|
||||||
|
当前只有dev分支,尚未发布稳定版本,演示网站(账号密码:admin/admin):https://kvmd-demo.mofeng.run/
|
||||||
|
|
||||||
|
部署命令:
|
||||||
|
```bash
|
||||||
|
sudo docker run --name kvmd -itd \
|
||||||
|
--device /dev/video0:/dev/kvmd-video \
|
||||||
|
--device /dev/ttyUSB0:/dev/kvmd-hid \
|
||||||
|
-p 8080:8080 -p 4430:4430 -p 5900:5900 -p 623:623 \
|
||||||
|
registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd:dev
|
||||||
|
```
|
||||||
|
|
||||||
|
部署完成访问 http://IP:8080 即可开始使用,默认密码:admin/admin。如无法访问可以使用 `sudo docker logs kvmd` 命令查看日志尝试修复、提交 issue 或在 QQ 群内寻求帮助。
|
||||||
|
|
||||||
|
如果暂时相关没有 USB 设备或只想要查看新版特性,可以使用以下命令启动一个无 USB 硬件的应用(演示模式):
|
||||||
|
```bash
|
||||||
|
sudo docker run --name kvmd -itd \
|
||||||
|
--device /dev/tty10:/dev/kvmd-hid \
|
||||||
|
-p 8080:8080 -p 4430:4430 -p 5900:5900 -p 623:623 \
|
||||||
|
registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd:dev
|
||||||
|
>>>>>>> origin/dev
|
||||||
```
|
```
|
||||||
|
|
||||||
详细内容可以参照 [One-KVM文档](https://one-kvm.mofeng.run/)。
|
详细内容可以参照 [One-KVM文档](https://one-kvm.mofeng.run/)。
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
### 功能特性
|
### 功能特性
|
||||||
|
|
||||||
|
=======
|
||||||
|
**方式二:直刷 One-KVM 镜像**
|
||||||
|
|
||||||
|
对于玩客云设备,本项目 Releases 页可以找到适配玩客云的 One-KVM 预编译镜像。镜像名称带 One-KVM 前缀、burn 后缀的为线刷镜像,可使用 USB_Burning_Tool 软件线刷至玩客云。预编译线刷镜像为开箱即用,刷好后启动设备就可以开始使用 One-KVM。
|
||||||
|
|
||||||
|
**方式三:One-KVM 脚本安装**(暂停维护)
|
||||||
|
|
||||||
|
**作者目前只是个人业余开发者,能力有限,难以覆盖和测试多种多样硬件设备和系统,故此一键脚本暂时停止维护。**
|
||||||
|
|
||||||
|
目前已将开发中心转移至 Docker 平台,推荐使用 Docker 方式部署。若仍有需要可通过 Releases 页找到项目历史存档。
|
||||||
|
|
||||||
|
### 功能特性
|
||||||
|
|
||||||
|
**Docker 版本中以下特性尚未全部实现,但包含在将来的开发计划中**
|
||||||
|
|
||||||
|
>>>>>>> origin/dev
|
||||||
主要功能比较,TinyPilot 社区版本、PiKVMv3 版本出现在这里仅做比较目的。
|
主要功能比较,TinyPilot 社区版本、PiKVMv3 版本出现在这里仅做比较目的。
|
||||||
| 功能 | One-KVM | TinyPilot 社区版本 | PiKVMv3版本 |
|
| 功能 | One-KVM | TinyPilot 社区版本 | PiKVMv3版本 |
|
||||||
| :------------: | :---------------------: | :----------------: | :----------: |
|
| :------------: | :---------------------: | :----------------: | :----------: |
|
||||||
@ -69,6 +116,7 @@ docker run -itd -p443:443 -p80:80 --name pikvm-docker --device=/dev/ttyUSB0:/dev
|
|||||||
| 最大视频分辨率 | 1920x1080 | 1920x1080 | 1920x1080 |
|
| 最大视频分辨率 | 1920x1080 | 1920x1080 | 1920x1080 |
|
||||||
|
|
||||||
### 已测试设备
|
### 已测试设备
|
||||||
|
<<<<<<< HEAD
|
||||||
- 玩客云
|
- 玩客云
|
||||||
- X64 主机
|
- X64 主机
|
||||||
|
|
||||||
@ -81,6 +129,13 @@ docker run -itd -p443:443 -p80:80 --name pikvm-docker --device=/dev/ttyUSB0:/dev
|
|||||||
2. 资源本地化,减小网络原因的影响
|
2. 资源本地化,减小网络原因的影响
|
||||||
3. 添加kvmd-ffmpeg和kvmd-display服务安装脚本
|
3. 添加kvmd-ffmpeg和kvmd-display服务安装脚本
|
||||||
4. HTML汉化和一些微调
|
4. HTML汉化和一些微调
|
||||||
|
=======
|
||||||
|
|
||||||
|
- 玩客云
|
||||||
|
- X64 主机
|
||||||
|
- Vmare 虚拟机
|
||||||
|
- VPS(仅演示模式)
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|
||||||
|
|
||||||
**赞助**
|
**赞助**
|
||||||
@ -120,16 +175,25 @@ Will
|
|||||||
......
|
......
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
**更新日志**
|
**更新日志**
|
||||||
|
|
||||||
[One-KVM/ChangeLogs.txt](https://github.com/mofeng-git/One-KVM/blob/main/ChangeLogs.txt)
|
[One-KVM/ChangeLogs.txt](https://github.com/mofeng-git/One-KVM/blob/main/ChangeLogs.txt)
|
||||||
|
=======
|
||||||
|
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|
||||||
**Star历史**
|
**Star历史**
|
||||||
|
|
||||||
[](https://star-history.com/#mofeng-git/One-KVM&Date)
|
[](https://star-history.com/#mofeng-git/One-KVM&Date)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
本项目间接或直接使用了下下列开源项目:
|
本项目间接或直接使用了下下列开源项目:
|
||||||
1. [pikvm/pikvm: Open and inexpensive DIY IP-KVM based on Raspberry Pi (github.com)](https://github.com/pikvm/pikvm)
|
1. [pikvm/pikvm: Open and inexpensive DIY IP-KVM based on Raspberry Pi (github.com)](https://github.com/pikvm/pikvm)
|
||||||
2. [hzyitc/armbian-onecloud: Armbian for onecloud. 玩客云用armbian (github.com)](https://github.com/hzyitc/armbian-onecloud/)
|
2. [hzyitc/armbian-onecloud: Armbian for onecloud. 玩客云用armbian (github.com)](https://github.com/hzyitc/armbian-onecloud/)
|
||||||
3. [jacobbar/fruity-pikvm: Install Pi-KVM on debian SBCs such as Orange Pi, Banana Pi, Mango Pi, etc (github.com)](https://github.com/jacobbar/fruity-pikvm)
|
3. [jacobbar/fruity-pikvm: Install Pi-KVM on debian SBCs such as Orange Pi, Banana Pi, Mango Pi, etc (github.com)](https://github.com/jacobbar/fruity-pikvm)
|
||||||
4. [kvmd-armbian/install.sh at master · srepac/kvmd-armbian (github.com)](https://github.com/srepac/kvmd-armbian/blob/master/install.sh)
|
4. [kvmd-armbian/install.sh at master · srepac/kvmd-armbian (github.com)](https://github.com/srepac/kvmd-armbian/blob/master/install.sh)
|
||||||
|
=======
|
||||||
|
本项目使用了下列开源项目:
|
||||||
|
1. [pikvm/pikvm: Open and inexpensive DIY IP-KVM based on Raspberry Pi (github.com)](https://github.com/pikvm/pikvm)
|
||||||
|
>>>>>>> origin/dev
|
||||||
|
|||||||
BIN
aiofiles.tar
BIN
aiofiles.tar
Binary file not shown.
@ -1,24 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
if [ -e /etc/update-motd.d/10-armbian-header ]; then /etc/update-motd.d/10-armbian-header; fi
|
|
||||||
if [ -e /etc/update-motd.d/30-armbian-sysinfo ]; then /etc/update-motd.d/30-armbian-sysinfo; fi
|
|
||||||
if [ -e /etc/update-motd.d/41-armbian-config ]; then /etc/update-motd.d/41-armbian-config; fi
|
|
||||||
|
|
||||||
printf " 欢迎使用 One-KVM,基于开源程序 PiKVM 的 IP-KVM 应用
|
|
||||||
____________________________________________________________________________
|
|
||||||
|
|
||||||
要阻止内核消息输出到终端,可以使用命令\"dmesg -n 1\"
|
|
||||||
|
|
||||||
要修改默认账户 admin 的密码可使用命令 \"kvmd-htpasswd set admin\"
|
|
||||||
|
|
||||||
项目链接:
|
|
||||||
* https://pikvm.org
|
|
||||||
* https://github.com/srepac/kvmd-armbian
|
|
||||||
* https://github.com/mofeng-git/One-KVM
|
|
||||||
|
|
||||||
文档链接:
|
|
||||||
* https://docs.pikvm.org
|
|
||||||
* https://one-kvm.mofeng.run
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
if [ -e /etc/motd.custom ]; then cat /etc/motd.custom; fi
|
|
||||||
@ -1,206 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright (c) Authors: http://www.armbian.com/authors
|
|
||||||
#
|
|
||||||
# This file is licensed under the terms of the GNU General Public
|
|
||||||
# License version 2. This program is licensed "as is" without any
|
|
||||||
# warranty of any kind, whether express or implied.
|
|
||||||
#
|
|
||||||
|
|
||||||
# DO NOT EDIT THIS FILE but add config options to /etc/default/armbian-motd
|
|
||||||
# generate system information
|
|
||||||
|
|
||||||
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
||||||
|
|
||||||
THIS_SCRIPT="sysinfo"
|
|
||||||
MOTD_DISABLE=""
|
|
||||||
STORAGE=/dev/sda1
|
|
||||||
SHOW_IP_PATTERN="^bond.*|^[ewr].*|^br.*|^lt.*|^umts.*|^lan.*"
|
|
||||||
|
|
||||||
CPU_TEMP_LIMIT=60
|
|
||||||
HDD_TEMP_LIMIT=60
|
|
||||||
AMB_TEMP_LIMIT=40
|
|
||||||
|
|
||||||
[[ -f /etc/default/armbian-motd ]] && . /etc/default/armbian-motd
|
|
||||||
|
|
||||||
for f in $MOTD_DISABLE; do
|
|
||||||
[[ $f == $THIS_SCRIPT ]] && exit 0
|
|
||||||
done
|
|
||||||
|
|
||||||
# don't edit below here
|
|
||||||
|
|
||||||
function display() {
|
|
||||||
# $1=name $2=value $3=red_limit $4=minimal_show_limit $5=unit $6=after $7=acs/desc{
|
|
||||||
# battery red color is opposite, lower number
|
|
||||||
if [[ "$1" == "Battery" ]]; then local great="<"; else local great=">"; fi
|
|
||||||
if [[ -n "$2" && "$2" > "0" && (( "${2%.*}" -ge "$4" )) ]]; then
|
|
||||||
printf "%-14s%s" "$1:"
|
|
||||||
if awk "BEGIN{exit ! ($2 $great $3)}"; then echo -ne "\e[0;91m $2"; else echo -ne "\e[0;92m $2"; fi
|
|
||||||
printf "%-1s%s\x1B[0m" "$5"
|
|
||||||
printf "%-11s%s\t" "$6"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
} # display
|
|
||||||
|
|
||||||
function getboardtemp() {
|
|
||||||
if [ -f /etc/armbianmonitor/datasources/soctemp ]; then
|
|
||||||
read raw_temp </etc/armbianmonitor/datasources/soctemp 2>/dev/null
|
|
||||||
if [ ! -z $(echo "$raw_temp" | grep -o "^[1-9][0-9]*\.\?[0-9]*$") ] && (( $(echo "${raw_temp} < 200" |bc -l) )); then
|
|
||||||
# Allwinner legacy kernels output degree C
|
|
||||||
board_temp=${raw_temp}
|
|
||||||
else
|
|
||||||
board_temp=$(awk '{printf("%d",$1/1000)}' <<<${raw_temp})
|
|
||||||
fi
|
|
||||||
elif [ -f /etc/armbianmonitor/datasources/pmictemp ]; then
|
|
||||||
# fallback to PMIC temperature
|
|
||||||
board_temp=$(awk '{printf("%d",$1/1000)}' </etc/armbianmonitor/datasources/pmictemp)
|
|
||||||
fi
|
|
||||||
} # getboardtemp
|
|
||||||
|
|
||||||
function batteryinfo() {
|
|
||||||
# Battery info for Allwinner
|
|
||||||
mainline_dir="/sys/power/axp_pmu"
|
|
||||||
legacy_dir="/sys/class/power_supply"
|
|
||||||
if [[ -e "$mainline_dir" ]]; then
|
|
||||||
read status_battery_connected < $mainline_dir/battery/connected 2>/dev/null
|
|
||||||
if [[ "$status_battery_connected" == "1" ]]; then
|
|
||||||
read status_battery_charging < $mainline_dir/charger/charging
|
|
||||||
read status_ac_connect < $mainline_dir/ac/connected
|
|
||||||
read battery_percent< $mainline_dir/battery/capacity
|
|
||||||
# dispay charging / percentage
|
|
||||||
if [[ "$status_ac_connect" == "1" && "$battery_percent" -lt "100" ]]; then
|
|
||||||
status_battery_text=" charging"
|
|
||||||
elif [[ "$status_ac_connect" == "1" && "$battery_percent" -eq "100" ]]; then
|
|
||||||
status_battery_text=" charged"
|
|
||||||
else
|
|
||||||
status_battery_text=" discharging"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
elif [[ -e "$legacy_dir/axp813-ac" ]]; then
|
|
||||||
read status_battery_connected < $legacy_dir/axp20x-battery/present
|
|
||||||
if [[ "$status_battery_connected" == "1" ]]; then
|
|
||||||
status_battery_text=" "$(awk '{print tolower($0)}' < $legacy_dir/axp20x-battery/status)
|
|
||||||
read status_ac_connect < $legacy_dir/axp813-ac/present
|
|
||||||
read battery_percent< $legacy_dir/axp20x-battery/capacity
|
|
||||||
fi
|
|
||||||
elif [[ -e "$legacy_dir/battery" ]]; then
|
|
||||||
if [[ (("$(cat $legacy_dir/battery/voltage_now)" -gt "5" )) ]]; then
|
|
||||||
status_battery_text=" "$(awk '{print tolower($0)}' < $legacy_dir/battery/status)
|
|
||||||
read battery_percent <$legacy_dir/battery/capacity
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
} # batteryinfo
|
|
||||||
|
|
||||||
function ambienttemp() {
|
|
||||||
# define where w1 usually shows up
|
|
||||||
W1_DIR="/sys/devices/w1_bus_master1/"
|
|
||||||
if [ -f /etc/armbianmonitor/datasources/ambienttemp ]; then
|
|
||||||
read raw_temp </etc/armbianmonitor/datasources/ambienttemp 2>/dev/null
|
|
||||||
amb_temp=$(awk '{printf("%d",$1/1000)}' <<<${raw_temp})
|
|
||||||
echo $amb_temp
|
|
||||||
elif [[ -d $W1_DIR && $ONE_WIRE == yes ]]; then
|
|
||||||
device=$(ls -1 $W1_DIR | grep -Eo '^[0-9]{1,4}' | head -1)
|
|
||||||
if [[ -n $device ]]; then
|
|
||||||
if [[ -d ${W1_DIR}${device}/hwmon/hwmon0 ]]; then hwmon=0; else hwmon=1; fi
|
|
||||||
read raw_temp < ${W1_DIR}${device}/hwmon/hwmon${hwmon}/temp1_input 2>/dev/null
|
|
||||||
amb_temp=$(awk '{printf("%d",$1/1000)}' <<<${raw_temp})
|
|
||||||
echo $amb_temp
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# read ambient temperature from USB device if available
|
|
||||||
if [[ ! -f /usr/bin/temper ]]; then
|
|
||||||
echo ""
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
amb_temp=$(temper -c 2>/dev/null)
|
|
||||||
case ${amb_temp} in
|
|
||||||
*"find the USB device"*)
|
|
||||||
echo ""
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
amb_temp=$(awk '{print $NF}' <<<$amb_temp | sed 's/C//g')
|
|
||||||
echo -n "scale=1;${amb_temp}/1" | grep -oE "\-?[[:digit:]]+\.[[:digit:]]"
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
} # ambienttemp
|
|
||||||
|
|
||||||
function get_ip_addresses() {
|
|
||||||
local ips=()
|
|
||||||
for f in /sys/class/net/*; do
|
|
||||||
local intf=$(basename $f)
|
|
||||||
# match only interface names starting with e (Ethernet), br (bridge), w (wireless), r (some Ralink drivers use ra<number> format)
|
|
||||||
if [[ $intf =~ $SHOW_IP_PATTERN ]]; then
|
|
||||||
local tmp=$(ip -4 addr show dev $intf | awk '/inet/ {print $2}' | cut -d'/' -f1)
|
|
||||||
# add both name and IP - can be informative but becomes ugly with long persistent/predictable device names
|
|
||||||
#[[ -n $tmp ]] && ips+=("$intf: $tmp")
|
|
||||||
# add IP only
|
|
||||||
[[ -n $tmp ]] && ips+=("$tmp")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "${ips[@]}"
|
|
||||||
} # get_ip_addresses
|
|
||||||
|
|
||||||
function storage_info() {
|
|
||||||
# storage info
|
|
||||||
RootInfo=$(df -h /)
|
|
||||||
root_usage=$(awk '/\// {print $(NF-1)}' <<<${RootInfo} | sed 's/%//g')
|
|
||||||
root_total=$(awk '/\// {print $(NF-4)}' <<<${RootInfo})
|
|
||||||
StorageInfo=$(df -h $STORAGE 2>/dev/null | grep $STORAGE)
|
|
||||||
if [[ -n "${StorageInfo}" && ${RootInfo} != *$STORAGE* ]]; then
|
|
||||||
storage_usage=$(awk '/\// {print $(NF-1)}' <<<${StorageInfo} | sed 's/%//g')
|
|
||||||
storage_total=$(awk '/\// {print $(NF-4)}' <<<${StorageInfo})
|
|
||||||
if [[ -n "$(command -v smartctl)" ]]; then
|
|
||||||
DISK="${STORAGE::-1}"
|
|
||||||
storage_temp+=$(sudo smartctl -A $DISK 2> /dev/null | grep -i temperature | awk '{print $(NF-2)}')
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
} # storage_info
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# query various systems and send some stuff to the background for overall faster execution.
|
|
||||||
# Works only with ambienttemp and batteryinfo since A20 is slow enough :)
|
|
||||||
amb_temp=$(ambienttemp &)
|
|
||||||
ip_address=$(get_ip_addresses &)
|
|
||||||
batteryinfo
|
|
||||||
storage_info
|
|
||||||
getboardtemp
|
|
||||||
critical_load=80
|
|
||||||
|
|
||||||
# get uptime, logged in users and load in one take
|
|
||||||
UPTIME=$(LC_ALL=C uptime)
|
|
||||||
UPT1=${UPTIME#*'up '}
|
|
||||||
UPT2=${UPT1%'user'*}
|
|
||||||
users=${UPT2//*','}
|
|
||||||
users=${users//' '}
|
|
||||||
time=${UPT2%','*}
|
|
||||||
time=${time//','}
|
|
||||||
time=$(echo $time | xargs)
|
|
||||||
load=${UPTIME#*'load average: '}
|
|
||||||
load=${load//','}
|
|
||||||
load=$(echo $load | cut -d" " -f1)
|
|
||||||
[[ $load == 0.0* ]] && load=0.10
|
|
||||||
cpucount=$(grep -c processor /proc/cpuinfo)
|
|
||||||
|
|
||||||
load=$(awk '{printf("%.0f",($1/$2) * 100)}' <<< "$load $cpucount")
|
|
||||||
|
|
||||||
# memory and swap
|
|
||||||
mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem")
|
|
||||||
memory_usage=$(awk '{printf("%.0f",(($2-($4+$6+$7))/$2) * 100)}' <<<${mem_info})
|
|
||||||
mem_info=$(echo $mem_info | awk '{print $2}')
|
|
||||||
memory_total=$(( mem_info / 1024 ))
|
|
||||||
swap_info=$(LC_ALL=C free -m | grep "^Swap")
|
|
||||||
swap_usage=$( (awk '/Swap/ { printf("%3.0f", $3/$2*100) }' <<<${swap_info} 2>/dev/null || echo 0) | tr -c -d '[:digit:]')
|
|
||||||
swap_total=$(awk '{print $(2)}' <<<${swap_info})
|
|
||||||
if [[ ${memory_total} -gt 1000 ]]; then
|
|
||||||
memory_total=$(awk '{printf("%.2f",$1/1024)}' <<<${memory_total})"G"
|
|
||||||
else
|
|
||||||
memory_total+="M"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${swap_total} -gt 500 ]]; then
|
|
||||||
swap_total=$(awk '{printf("%.2f",$1/1024)}' <<<${swap_total})"G"
|
|
||||||
else
|
|
||||||
swap_total+="M"
|
|
||||||
fi
|
|
||||||
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
cd `dirname $0`
|
|
||||||
source armbian-sysinfo
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
get_throttled) echo "throttled=0x0";;
|
|
||||||
# measure_temp) echo "temp=$board_temp'C";;
|
|
||||||
get_config)
|
|
||||||
case $2 in
|
|
||||||
total_mem)
|
|
||||||
NUM=$( free -m | grep Mem: | awk '{print $2}' )
|
|
||||||
if [ -e /var/log/dmesg ]; then
|
|
||||||
KB=$( sudo grep 'Memory:' /var/log/dmesg | awk '{print $5}' | cut -d'/' -f2 | sed 's/K//g' | head -1 )
|
|
||||||
else
|
|
||||||
KB=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$KB" == "" ]]; then
|
|
||||||
GB=`echo "( $NUM + 256 ) / 256" | bc`
|
|
||||||
MB=$( echo "${GB} * 256" | bc )
|
|
||||||
else
|
|
||||||
GB=$( echo "($KB + 2048) / 1024 / 256" | bc )
|
|
||||||
MB=$( echo "${GB} * 256" | bc )
|
|
||||||
fi
|
|
||||||
echo "total_mem=$MB"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "invalid option";;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
measure_clock)
|
|
||||||
case ${2} in
|
|
||||||
arm)
|
|
||||||
# awk is probably overkill....
|
|
||||||
value=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{print $1 * 1000}'`
|
|
||||||
echo 'frequency(45)='${value}
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
core)
|
|
||||||
value=0 # TODO / FIXME
|
|
||||||
echo 'frequency(1)='${value}
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
# TODO anything else thrown an error/debug
|
|
||||||
esac
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
measure_temp)
|
|
||||||
# awk is probably overkill....
|
|
||||||
value=`cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1 / 1000}'`
|
|
||||||
echo 'temp='${value}"'C"
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
measure_volts)
|
|
||||||
case ${2} in
|
|
||||||
core)
|
|
||||||
value=1 # TODO / FIXME
|
|
||||||
echo 'volt='${value}'.0000V'
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
# TODO anything else thrown an error/debug
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
version)
|
|
||||||
echo 'Nov 4 2018 16:31:07'
|
|
||||||
echo 'Copyright (c) 2012 rock64'
|
|
||||||
echo 'version rock64_TODO (clean) (release)'
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
96
build/Dockerfile
Normal file
96
build/Dockerfile
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# syntax = docker/dockerfile:experimental
|
||||||
|
FROM python:3.12.0rc2-slim-bookworm AS builder
|
||||||
|
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list.d/debian.sources \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends build-essential libssl-dev libffi-dev python3-dev libevent-dev libjpeg-dev libbsd-dev libudev-dev git pkg-config wget curl
|
||||||
|
|
||||||
|
COPY build/cargo_config /tmp/config
|
||||||
|
|
||||||
|
RUN --security=insecure pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
|
||||||
|
&& if [ ${TARGETARCH} = arm ]; then \
|
||||||
|
mkdir -p /root/.cargo \
|
||||||
|
&& chmod 777 /root/.cargo && mount -t tmpfs none /root/.cargo \
|
||||||
|
&& export RUSTUP_DIST_SERVER="https://mirrors.tuna.tsinghua.edu.cn/rustup" \
|
||||||
|
&& export RUSTUP_UPDATE_ROOT="https://mirrors.ustc.edu.cn/rust-static/rustup" \
|
||||||
|
&& wget https://sh.rustup.rs -O /root/rustup-init.sh \
|
||||||
|
&& sh /root/rustup-init.sh -y \
|
||||||
|
&& export PATH=$PATH:/root/.cargo/bin \
|
||||||
|
&& cp /tmp/config /root/.cargo/config.toml; \
|
||||||
|
fi \
|
||||||
|
&& pip wheel --wheel-dir=/tmp/wheel/ cryptography
|
||||||
|
|
||||||
|
RUN pip install --no-cache-dir --root-user-action=ignore --disable-pip-version-check build \
|
||||||
|
&& pip wheel --wheel-dir=/tmp/wheel/ aiofiles aiohttp appdirs asn1crypto async_lru async-timeout bottle cffi chardet click colorama \
|
||||||
|
dbus_next gpiod hidapi idna mako marshmallow more-itertools multidict netifaces packaging passlib pillow ply psutil pycparser \
|
||||||
|
pyelftools pyghmi pygments pyparsing pyotp qrcode requests semantic-version setproctitle setuptools six spidev \
|
||||||
|
tabulate urllib3 wrapt xlib yarl pyserial pyyaml zstandard supervisor
|
||||||
|
|
||||||
|
RUN git clone --depth=1 https://gh.xmly.dev/https://github.com/pikvm/ustreamer /tmp/ustreamer \
|
||||||
|
#&& git clone --depth=1 https://github.com/pikvm/ustreamer /tmp/ustreamer \
|
||||||
|
&& make -j WITH_PYTHON=1 -C /tmp/ustreamer \
|
||||||
|
&& /tmp/ustreamer/ustreamer -v
|
||||||
|
|
||||||
|
RUN mkdir /tmp/lib \
|
||||||
|
&& cp /lib/*-linux-*/libevent_core-*.so.7 /lib/*-linux-*/libbsd.so.0 /lib/*-linux-*/libevent_pthreads-*.so.7 \
|
||||||
|
/lib/*-linux-*/libevent-*.so.7 /lib/*-linux-*/libjpeg.so.62 /tmp/lib/ \
|
||||||
|
&& cp /tmp/ustreamer/python/dist/*.whl /tmp/wheel/
|
||||||
|
|
||||||
|
FROM python:3.12.0rc2-slim-bookworm
|
||||||
|
|
||||||
|
LABEL maintainer="mofeng654321@hotmail.com"
|
||||||
|
|
||||||
|
COPY --from=builder /tmp/lib/* /tmp/lib/
|
||||||
|
COPY --from=builder /tmp/ustreamer/ustreamer /tmp/ustreamer/ustreamer-dump /usr/local/bin/
|
||||||
|
COPY --from=builder /tmp/wheel/*.whl /tmp/wheel/
|
||||||
|
|
||||||
|
ENV PYTHONDONTWRITEBYTECODE 1
|
||||||
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
|
||||||
|
|
||||||
|
RUN cp /tmp/lib/* /lib/*-linux-*/ \
|
||||||
|
&& pip install --no-cache-dir --root-user-action=ignore --disable-pip-version-check /tmp/wheel/*.whl \
|
||||||
|
&& rm -rf /tmp/lib /tmp/wheel
|
||||||
|
|
||||||
|
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list.d/debian.sources \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends libxkbcommon-x11-0 nginx tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim iptables sudo \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p \
|
||||||
|
/etc/kvmd/nginx \
|
||||||
|
/etc/kvmd/vnc \
|
||||||
|
/etc/kvmd/override.d\
|
||||||
|
/etc/kvmd/hw_info/ \
|
||||||
|
/var/lib/kvmd/msd \
|
||||||
|
/var/lib/kvmd/pst/data \
|
||||||
|
/opt/vc/bin \
|
||||||
|
/run/kvmd \
|
||||||
|
/tmp/kvmd-nginx
|
||||||
|
|
||||||
|
COPY testenv/fakes/vcgencmd /usr/bin/
|
||||||
|
COPY extras/ /usr/share/kvmd/extras/
|
||||||
|
COPY web/ /usr/share/kvmd/web/
|
||||||
|
COPY testenv/web.css /etc/kvmd/
|
||||||
|
COPY build/platform scripts/kvmd-gencert /usr/share/kvmd/
|
||||||
|
COPY contrib/keymaps /usr/share/kvmd/keymaps
|
||||||
|
COPY kvmd/ /kvmd
|
||||||
|
COPY configs/kvmd/*.yaml configs/kvmd/*passwd build/supervisord.conf /etc/kvmd/
|
||||||
|
COPY configs/nginx/* /etc/kvmd/nginx/
|
||||||
|
COPY configs/hw_info/* /etc/kvmd/hw_info/
|
||||||
|
COPY build/v2-hdmiusb-rpi4.override.yaml /etc/kvmd/override.yaml
|
||||||
|
COPY configs/kvmd/main/v2-hdmiusb-rpi4.yaml /etc/kvmd/main.yaml
|
||||||
|
|
||||||
|
RUN touch /run/kvmd/ustreamer.sock /etc/kvmd/.docker_flag \
|
||||||
|
&& touch /etc/kvmd/totp.secret \
|
||||||
|
&& /usr/share/kvmd/kvmd-gencert --do-the-thing \
|
||||||
|
&& /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc \
|
||||||
|
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
||||||
|
&& python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf
|
||||||
|
|
||||||
|
#RUN supervisord -c /etc/kvmd/supervisord.conf
|
||||||
|
|
||||||
|
EXPOSE 4430
|
||||||
|
CMD ["supervisord", "-c", "/etc/kvmd/supervisord.conf"]
|
||||||
5
build/cargo_config
Normal file
5
build/cargo_config
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[source.crates-io]
|
||||||
|
replace-with = 'ustc'
|
||||||
|
|
||||||
|
[source.ustc]
|
||||||
|
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
|
||||||
3
build/platform
Normal file
3
build/platform
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PIKVM_MODEL=docker_model
|
||||||
|
PIKVM_VIDEO=docker_video
|
||||||
|
PIKVM_BOARD=docker_board
|
||||||
58
build/supervisord.conf
Normal file
58
build/supervisord.conf
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
[unix_http_server]
|
||||||
|
file=/tmp/supervisor.sock
|
||||||
|
|
||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
user=root
|
||||||
|
|
||||||
|
[rpcinterface:supervisor]
|
||||||
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||||
|
|
||||||
|
[inet_http_server]
|
||||||
|
port=127.0.0.1:9001
|
||||||
|
|
||||||
|
[supervisorctl]
|
||||||
|
serverurl=unix:///tmp/supervisor.sock
|
||||||
|
|
||||||
|
[program:kvmd]
|
||||||
|
command=python -m kvmd.apps.kvmd --run
|
||||||
|
directory=/
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=10
|
||||||
|
stopasgroup=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes = 0
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
[program:kvmd-vnc]
|
||||||
|
command=python -m kvmd.apps.vnc --run
|
||||||
|
directory=/
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=11
|
||||||
|
stopasgroup=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes = 0
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
[program:kvmd-ipmi]
|
||||||
|
command=python -m kvmd.apps.ipmi --run
|
||||||
|
directory=/
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=12
|
||||||
|
stopasgroup=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes = 0
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
[program:kvmd-nginx]
|
||||||
|
command=nginx -c /etc/kvmd/nginx/nginx.conf -g 'daemon off;user root; error_log stderr;'
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=100
|
||||||
|
stopasgroup=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes = 0
|
||||||
|
redirect_stderr=true
|
||||||
65
build/v2-hdmiusb-rpi4.override.yaml
Normal file
65
build/v2-hdmiusb-rpi4.override.yaml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
kvmd:
|
||||||
|
server:
|
||||||
|
unix_mode: 0666
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: ch9329
|
||||||
|
device: /dev/kvmd-hid
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
cmd:
|
||||||
|
- "/usr/local/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--last-as-blank=0"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0666"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
keymap: /usr/share/kvmd/keymaps/ru
|
||||||
|
|
||||||
|
auth:
|
||||||
|
vncauth:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: ""
|
||||||
|
h264:
|
||||||
|
sink: ""
|
||||||
|
|
||||||
|
otgnet:
|
||||||
|
commands:
|
||||||
|
post_start_cmd:
|
||||||
|
- "/bin/true"
|
||||||
|
pre_stop_cmd:
|
||||||
|
- "/bin/true"
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
http:
|
||||||
|
port: 8080
|
||||||
|
https:
|
||||||
|
port: 4430
|
||||||
|
|
||||||
|
janus:
|
||||||
|
cmd:
|
||||||
|
- "/bin/true"
|
||||||
|
|
||||||
|
languages:
|
||||||
|
console: zh
|
||||||
|
web: zh
|
||||||
@ -1,81 +0,0 @@
|
|||||||
####################################################################
|
|
||||||
# #
|
|
||||||
# Override Pi-KVM system settings. This file uses the YAML syntax. #
|
|
||||||
# #
|
|
||||||
# https://github.com/pikvm/pikvm/blob/master/pages/config.md #
|
|
||||||
# #
|
|
||||||
# All overridden parameters will be applied AFTER other configs #
|
|
||||||
# and "!include" directives and BEFORE validation. #
|
|
||||||
# Not: Sections should be combined under shared keys. #
|
|
||||||
# #
|
|
||||||
####################################################################
|
|
||||||
vnc:
|
|
||||||
# See https://github.com/pikvm/pikvm/blob/master/pages/vnc.md
|
|
||||||
keymap: /usr/share/kvmd/keymaps/ru # Set russian keymap
|
|
||||||
auth:
|
|
||||||
vncauth:
|
|
||||||
enabled: true # Enable auth via /etc/kvmd/vncpasswd
|
|
||||||
kvmd:
|
|
||||||
hid:
|
|
||||||
mouse_alt:
|
|
||||||
device: /dev/kvmd-hid-mouse-alt # allow relative mouse mode
|
|
||||||
msd:
|
|
||||||
type: disabled
|
|
||||||
atx:
|
|
||||||
type: disabled
|
|
||||||
gpio:
|
|
||||||
drivers:
|
|
||||||
wol_server1:
|
|
||||||
type: wol
|
|
||||||
mac: 2c:56:dc:db:7c:1e
|
|
||||||
short_press:
|
|
||||||
type: cmd
|
|
||||||
cmd: [/usr/bin/sudo, onecloud_gpio.sh, short]
|
|
||||||
long_press:
|
|
||||||
type: cmd
|
|
||||||
cmd: [/usr/bin/sudo, onecloud_gpio.sh, long]
|
|
||||||
reset_press:
|
|
||||||
type: cmd
|
|
||||||
cmd: [/usr/bin/sudo, onecloud_gpio.sh, reset]
|
|
||||||
scheme:
|
|
||||||
wol_server1:
|
|
||||||
driver: wol_server1
|
|
||||||
pin: 0
|
|
||||||
mode: output
|
|
||||||
switch: false
|
|
||||||
short_button:
|
|
||||||
driver: short_press
|
|
||||||
pin: 0
|
|
||||||
mode: output
|
|
||||||
switch: false
|
|
||||||
long_button:
|
|
||||||
driver: long_press
|
|
||||||
pin: 0
|
|
||||||
mode: output
|
|
||||||
switch: false
|
|
||||||
reset_button:
|
|
||||||
driver: reset_press
|
|
||||||
pin: 0
|
|
||||||
mode: output
|
|
||||||
switch: false
|
|
||||||
view:
|
|
||||||
header:
|
|
||||||
title: 电源管理
|
|
||||||
table:
|
|
||||||
- ["#电源管理"]
|
|
||||||
- []
|
|
||||||
- ["#短按(开/关机):", short_button|按下]
|
|
||||||
- ["#长按(强制关机):", long_button|按下]
|
|
||||||
- ["#重启:", reset_button|按下]
|
|
||||||
- []
|
|
||||||
- ["#网络唤醒"]
|
|
||||||
- ["#被控机设备", wol_server1|网络唤醒]
|
|
||||||
streamer:
|
|
||||||
#forever: true
|
|
||||||
cmd_append: [--slowdown]
|
|
||||||
resolution:
|
|
||||||
default: 1280x720
|
|
||||||
desired_fps:
|
|
||||||
default: 30
|
|
||||||
max: 60
|
|
||||||
min: 0
|
|
||||||
1
configs/hw_info/model
Normal file
1
configs/hw_info/model
Normal file
@ -0,0 +1 @@
|
|||||||
|
Docker
|
||||||
1
configs/hw_info/serial-number
Normal file
1
configs/hw_info/serial-number
Normal file
@ -0,0 +1 @@
|
|||||||
|
docker1000000000
|
||||||
18
configs/janus/janus.jcfg
Normal file
18
configs/janus/janus.jcfg
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
general: {
|
||||||
|
debug_level = 4
|
||||||
|
}
|
||||||
|
nat: {
|
||||||
|
nice_debug = false
|
||||||
|
ignore_mdns = true
|
||||||
|
}
|
||||||
|
media: {
|
||||||
|
ipv6 = true
|
||||||
|
ipv6_linklocal = true
|
||||||
|
min_nack_queue = 2000
|
||||||
|
rtp_port_range = "20000-40000"
|
||||||
|
no_media_timer = 0
|
||||||
|
slowlink_threshold = 10
|
||||||
|
twcc_period = 100
|
||||||
|
dtls_timeout = 1000
|
||||||
|
nack_optimizations = true
|
||||||
|
}
|
||||||
7
configs/janus/janus.plugin.ustreamer.jcfg
Normal file
7
configs/janus/janus.plugin.ustreamer.jcfg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
video: {
|
||||||
|
sink = "kvmd::ustreamer::h264"
|
||||||
|
}
|
||||||
|
audio: {
|
||||||
|
device = "hw:0,0"
|
||||||
|
tc358743 = "/dev/kvmd-video"
|
||||||
|
}
|
||||||
4
configs/janus/janus.transport.websockets.jcfg
Normal file
4
configs/janus/janus.transport.websockets.jcfg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
general: {
|
||||||
|
ws = true
|
||||||
|
ws_unix = "/run/kvmd/janus-ws.sock"
|
||||||
|
}
|
||||||
1
configs/kvmd/auth.yaml
Normal file
1
configs/kvmd/auth.yaml
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
16
configs/kvmd/edid/_1080p-by-default.hex
Normal file
16
configs/kvmd/edid/_1080p-by-default.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8717701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714FEE2C80A070381A403020
|
||||||
|
3500404421000002000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D2056330A20202020012B
|
||||||
|
020317314A049F13223E213D203C0167
|
||||||
|
030C001000802DEE2C80A070381A4030
|
||||||
|
203500404421000002011D007251D01E
|
||||||
|
206E2835000F282100001E0000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
000000000000000000000000000000CD
|
||||||
16
configs/kvmd/edid/_no-1920x1200.hex
Normal file
16
configs/kvmd/edid/_no-1920x1200.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8737701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F023A801871382D40582C
|
||||||
|
45000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D20563420506C7573012D
|
||||||
|
020320714B90041F13223E213D203C01
|
||||||
|
67030C001000802D23097F0783010000
|
||||||
|
023A801871382D40582C45000F282100
|
||||||
|
001E011D007251D01E206E2855000F28
|
||||||
|
2100001E023A80D072382D40102C4580
|
||||||
|
0F282100001E00000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000042
|
||||||
16
configs/kvmd/edid/v0.hex
Normal file
16
configs/kvmd/edid/v0.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8707701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F011D007251D01E206E28
|
||||||
|
55000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D0A20202020202020018D
|
||||||
|
020317314A841F13223E213D203C0167
|
||||||
|
030C001000802D011D007251D01E206E
|
||||||
|
2855000F282100001E00000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000015
|
||||||
16
configs/kvmd/edid/v1.hex
Normal file
16
configs/kvmd/edid/v1.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8707701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F011D007251D01E206E28
|
||||||
|
55000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D0A20202020202020018D
|
||||||
|
020317314A841F13223E213D203C0167
|
||||||
|
030C001000802D011D007251D01E206E
|
||||||
|
2855000F282100001E00000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000015
|
||||||
16
configs/kvmd/edid/v2.hex
Normal file
16
configs/kvmd/edid/v2.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8707701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F011D007251D01E206E28
|
||||||
|
55000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D0A20202020202020018D
|
||||||
|
020317314A841F13223E213D203C0167
|
||||||
|
030C001000802D011D007251D01E206E
|
||||||
|
2855000F282100001E00000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000015
|
||||||
16
configs/kvmd/edid/v3.hex
Normal file
16
configs/kvmd/edid/v3.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8717701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F011D007251D01E206E28
|
||||||
|
55000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D2056330A202020200143
|
||||||
|
020317314A841F13223E213D203C0167
|
||||||
|
030C001000802D011D007251D01E206E
|
||||||
|
2855000F282100001E00000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000015
|
||||||
16
configs/kvmd/edid/v4mini.hex
Normal file
16
configs/kvmd/edid/v4mini.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8727701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F023A801871382D40582C
|
||||||
|
45000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D205634204D696E690145
|
||||||
|
020320714B90041F13223E213D203C01
|
||||||
|
67030C001000802D23097F0783010000
|
||||||
|
023A801871382D40582C45000F282100
|
||||||
|
001E011D007251D01E206E2855000F28
|
||||||
|
2100001E023A80D072382D40102C4580
|
||||||
|
0F282100001E283C80A070B023403020
|
||||||
|
360006442100001A0000000000000000
|
||||||
|
00000000000000000000000000000030
|
||||||
16
configs/kvmd/edid/v4plus.hex
Normal file
16
configs/kvmd/edid/v4plus.hex
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00FFFFFFFFFFFF0031D8737701010101
|
||||||
|
231A010380351E780E0565A756529C27
|
||||||
|
0F50543FED00B300A9C0950090408180
|
||||||
|
814081C0714F023A801871382D40582C
|
||||||
|
45000F282100001E000000FF00434146
|
||||||
|
45424142452020202020000000FD0032
|
||||||
|
4B0F5211000A202020202020000000FC
|
||||||
|
0050694B564D20563420506C7573012D
|
||||||
|
020320714B90041F13223E213D203C01
|
||||||
|
67030C001000802D23097F0783010000
|
||||||
|
023A801871382D40582C45000F282100
|
||||||
|
001E011D007251D01E206E2855000F28
|
||||||
|
2100001E023A80D072382D40102C4580
|
||||||
|
0F282100001E283C80A070B023403020
|
||||||
|
360006442100001A0000000000000000
|
||||||
|
00000000000000000000000000000030
|
||||||
4
configs/kvmd/fan/v3-hdmi.ini
Normal file
4
configs/kvmd/fan/v3-hdmi.ini
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[server]
|
||||||
|
unix = /run/kvmd/fan.sock
|
||||||
|
unix_rm = 1
|
||||||
|
unix_mode = 666
|
||||||
12
configs/kvmd/fan/v4mini-hdmi.ini
Normal file
12
configs/kvmd/fan/v4mini-hdmi.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[main]
|
||||||
|
pwm_pin = 13
|
||||||
|
hall_pin = 16
|
||||||
|
|
||||||
|
[speed]
|
||||||
|
idle = 27
|
||||||
|
low = 27
|
||||||
|
|
||||||
|
[server]
|
||||||
|
unix = /run/kvmd/fan.sock
|
||||||
|
unix_rm = 1
|
||||||
|
unix_mode = 666
|
||||||
12
configs/kvmd/fan/v4plus-hdmi.ini
Normal file
12
configs/kvmd/fan/v4plus-hdmi.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[main]
|
||||||
|
pwm_pin = 13
|
||||||
|
hall_pin = 16
|
||||||
|
|
||||||
|
[speed]
|
||||||
|
idle = 27
|
||||||
|
low = 27
|
||||||
|
|
||||||
|
[server]
|
||||||
|
unix = /run/kvmd/fan.sock
|
||||||
|
unix_rm = 1
|
||||||
|
unix_mode = 666
|
||||||
1
configs/kvmd/htpasswd
Normal file
1
configs/kvmd/htpasswd
Normal file
@ -0,0 +1 @@
|
|||||||
|
admin:$apr1$.6mu9N8n$xOuGesr4JZZkdiZo/j318.
|
||||||
14
configs/kvmd/ipmipasswd
Normal file
14
configs/kvmd/ipmipasswd
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# This file describes the credentials for IPMI users. The first pair separated by colon
|
||||||
|
# is the login and password with which the user can access to IPMI. The second pair
|
||||||
|
# is the name and password with which the user can access to KVMD API. The arrow is used
|
||||||
|
# as a separator and shows the direction of user registration in the system.
|
||||||
|
#
|
||||||
|
# WARNING! IPMI protocol is completely unsafe by design. In short, the authentication
|
||||||
|
# process for IPMI 2.0 mandates that the server send a salted SHA1 or MD5 hash of the
|
||||||
|
# requested user's password to the client, prior to the client authenticating. Never use
|
||||||
|
# the same passwords for KVMD and IPMI users. This default configuration is shown here
|
||||||
|
# for example only.
|
||||||
|
#
|
||||||
|
# And even better not to use IPMI. Instead, you can directly use KVMD API via curl.
|
||||||
|
|
||||||
|
admin:admin -> admin:admin
|
||||||
20
configs/kvmd/logging.yaml
Normal file
20
configs/kvmd/logging.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
version: 1
|
||||||
|
disable_existing_loggers: false
|
||||||
|
|
||||||
|
formatters:
|
||||||
|
console:
|
||||||
|
(): logging.Formatter
|
||||||
|
style: "{"
|
||||||
|
format: "{name:30.30} {levelname:>7} --- {message}"
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
console:
|
||||||
|
level: DEBUG
|
||||||
|
class: logging.StreamHandler
|
||||||
|
stream: ext://sys.stderr
|
||||||
|
formatter: console
|
||||||
|
|
||||||
|
root:
|
||||||
|
level: INFO
|
||||||
|
handlers:
|
||||||
|
- console
|
||||||
39
configs/kvmd/main/v0-hdmi-rpi2.yaml
Normal file
39
configs/kvmd/main/v0-hdmi-rpi2.yaml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
47
configs/kvmd/main/v0-hdmi-rpi3.yaml
Normal file
47
configs/kvmd/main/v0-hdmi-rpi3.yaml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
55
configs/kvmd/main/v0-hdmi-zero2w.yaml
Normal file
55
configs/kvmd/main/v0-hdmi-zero2w.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
51
configs/kvmd/main/v0-hdmiusb-rpi2.yaml
Normal file
51
configs/kvmd/main/v0-hdmiusb-rpi2.yaml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
59
configs/kvmd/main/v0-hdmiusb-rpi3.yaml
Normal file
59
configs/kvmd/main/v0-hdmiusb-rpi3.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
59
configs/kvmd/main/v0-hdmiusb-zero2w.yaml
Normal file
59
configs/kvmd/main/v0-hdmiusb-zero2w.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: serial
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
48
configs/kvmd/main/v1-hdmi-rpi2.yaml
Normal file
48
configs/kvmd/main/v1-hdmi-rpi2.yaml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
64
configs/kvmd/main/v1-hdmi-rpi3.yaml
Normal file
64
configs/kvmd/main/v1-hdmi-rpi3.yaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
64
configs/kvmd/main/v1-hdmi-zero2w.yaml
Normal file
64
configs/kvmd/main/v1-hdmi-zero2w.yaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
60
configs/kvmd/main/v1-hdmiusb-rpi2.yaml
Normal file
60
configs/kvmd/main/v1-hdmiusb-rpi2.yaml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
68
configs/kvmd/main/v1-hdmiusb-rpi3.yaml
Normal file
68
configs/kvmd/main/v1-hdmiusb-rpi3.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
68
configs/kvmd/main/v1-hdmiusb-zero2w.yaml
Normal file
68
configs/kvmd/main/v1-hdmiusb-zero2w.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: spi
|
||||||
|
chip: 0
|
||||||
|
bus: 0
|
||||||
|
sw_cs_pin: 7
|
||||||
|
sw_cs_per_byte: true
|
||||||
|
reset_pin: 25
|
||||||
|
reset_inverted: true
|
||||||
|
reset_self: true
|
||||||
|
power_detect_pin: 16
|
||||||
|
power_detect_pull_down: true
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: disabled
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
55
configs/kvmd/main/v2-hdmi-rpi3.yaml
Normal file
55
configs/kvmd/main/v2-hdmi-rpi3.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
56
configs/kvmd/main/v2-hdmi-rpi4.yaml
Normal file
56
configs/kvmd/main/v2-hdmi-rpi4.yaml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--buffers=6"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
55
configs/kvmd/main/v2-hdmi-zero2w.yaml
Normal file
55
configs/kvmd/main/v2-hdmi-zero2w.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
@ -11,8 +11,6 @@ kvmd:
|
|||||||
|
|
||||||
hid:
|
hid:
|
||||||
type: otg
|
type: otg
|
||||||
mouse_alt:
|
|
||||||
device: /dev/kvmd-hid-mouse-alt
|
|
||||||
|
|
||||||
atx:
|
atx:
|
||||||
type: disabled
|
type: disabled
|
||||||
@ -23,7 +21,7 @@ kvmd:
|
|||||||
streamer:
|
streamer:
|
||||||
quality: 0
|
quality: 0
|
||||||
resolution:
|
resolution:
|
||||||
default: 1280x720
|
default: 1920x1080
|
||||||
available:
|
available:
|
||||||
- 1920x1080
|
- 1920x1080
|
||||||
- 1600x1200
|
- 1600x1200
|
||||||
@ -44,7 +42,6 @@ kvmd:
|
|||||||
- "--resolution={resolution}"
|
- "--resolution={resolution}"
|
||||||
- "--desired-fps={desired_fps}"
|
- "--desired-fps={desired_fps}"
|
||||||
- "--drop-same-frames=30"
|
- "--drop-same-frames=30"
|
||||||
- "--last-as-blank=0"
|
|
||||||
- "--unix={unix}"
|
- "--unix={unix}"
|
||||||
- "--unix-rm"
|
- "--unix-rm"
|
||||||
- "--unix-mode=0660"
|
- "--unix-mode=0660"
|
||||||
@ -52,8 +49,8 @@ kvmd:
|
|||||||
- "--process-name-prefix={process_name_prefix}"
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
- "--notify-parent"
|
- "--notify-parent"
|
||||||
- "--no-log-colors"
|
- "--no-log-colors"
|
||||||
- "--sink=kvmd::ustreamer::jpeg"
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
- "--sink-mode=0660"
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
vnc:
|
vnc:
|
||||||
59
configs/kvmd/main/v2-hdmiusb-rpi4.yaml
Normal file
59
configs/kvmd/main/v2-hdmiusb-rpi4.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
quality: 0
|
||||||
|
resolution:
|
||||||
|
default: 1920x1080
|
||||||
|
available:
|
||||||
|
- 1920x1080
|
||||||
|
- 1600x1200
|
||||||
|
- 1360x768
|
||||||
|
- 1280x1024
|
||||||
|
- 1280x960
|
||||||
|
- 1280x720
|
||||||
|
- 1024x768
|
||||||
|
- 800x600
|
||||||
|
- 720x576
|
||||||
|
- 720x480
|
||||||
|
- 640x480
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--format=mjpeg"
|
||||||
|
- "--resolution={resolution}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
68
configs/kvmd/main/v3-hdmi-rpi4.yaml
Normal file
68
configs/kvmd/main/v3-hdmi-rpi4.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
info:
|
||||||
|
fan:
|
||||||
|
unix: /run/kvmd/fan.sock
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--buffers=6"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
gpio:
|
||||||
|
scheme:
|
||||||
|
__v3_usb_breaker__:
|
||||||
|
pin: 5
|
||||||
|
mode: output
|
||||||
|
initial: true
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
97
configs/kvmd/main/v4mini-hdmi-rpi4.yaml
Normal file
97
configs/kvmd/main/v4mini-hdmi-rpi4.yaml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
info:
|
||||||
|
hw:
|
||||||
|
ignore_past: true
|
||||||
|
fan:
|
||||||
|
unix: /run/kvmd/fan.sock
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
mouse_alt:
|
||||||
|
device: /dev/kvmd-hid-mouse-alt
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
power_led_pin: 4
|
||||||
|
hdd_led_pin: 5
|
||||||
|
power_switch_pin: 23
|
||||||
|
reset_switch_pin: 27
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--buffers=6"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
gpio:
|
||||||
|
drivers:
|
||||||
|
__v4_locator__:
|
||||||
|
type: locator
|
||||||
|
|
||||||
|
scheme:
|
||||||
|
__v3_usb_breaker__:
|
||||||
|
pin: 22
|
||||||
|
mode: output
|
||||||
|
initial: true
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
__v4_locator__:
|
||||||
|
driver: __v4_locator__
|
||||||
|
pin: 12
|
||||||
|
mode: output
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
__v4_const1__:
|
||||||
|
pin: 6
|
||||||
|
mode: output
|
||||||
|
initial: false
|
||||||
|
switch: false
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
|
|
||||||
|
|
||||||
|
otg:
|
||||||
|
remote_wakeup: true
|
||||||
98
configs/kvmd/main/v4plus-hdmi-rpi4.yaml
Normal file
98
configs/kvmd/main/v4plus-hdmi-rpi4.yaml
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
# 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.d, override.yaml]
|
||||||
|
|
||||||
|
logging: !include logging.yaml
|
||||||
|
|
||||||
|
kvmd:
|
||||||
|
auth: !include auth.yaml
|
||||||
|
|
||||||
|
info:
|
||||||
|
hw:
|
||||||
|
ignore_past: true
|
||||||
|
fan:
|
||||||
|
unix: /run/kvmd/fan.sock
|
||||||
|
|
||||||
|
hid:
|
||||||
|
type: otg
|
||||||
|
mouse_alt:
|
||||||
|
device: /dev/kvmd-hid-mouse-alt
|
||||||
|
|
||||||
|
atx:
|
||||||
|
type: gpio
|
||||||
|
power_led_pin: 4
|
||||||
|
hdd_led_pin: 5
|
||||||
|
power_switch_pin: 23
|
||||||
|
reset_switch_pin: 27
|
||||||
|
|
||||||
|
msd:
|
||||||
|
type: otg
|
||||||
|
|
||||||
|
streamer:
|
||||||
|
h264_bitrate:
|
||||||
|
default: 5000
|
||||||
|
cmd:
|
||||||
|
- "/usr/bin/ustreamer"
|
||||||
|
- "--device=/dev/kvmd-video"
|
||||||
|
- "--persistent"
|
||||||
|
- "--dv-timings"
|
||||||
|
- "--format=uyvy"
|
||||||
|
- "--format-swap-rgb"
|
||||||
|
- "--buffers=8"
|
||||||
|
- "--encoder=m2m-image"
|
||||||
|
- "--workers=3"
|
||||||
|
- "--quality={quality}"
|
||||||
|
- "--desired-fps={desired_fps}"
|
||||||
|
- "--drop-same-frames=30"
|
||||||
|
- "--unix={unix}"
|
||||||
|
- "--unix-rm"
|
||||||
|
- "--unix-mode=0660"
|
||||||
|
- "--exit-on-parent-death"
|
||||||
|
- "--process-name-prefix={process_name_prefix}"
|
||||||
|
- "--notify-parent"
|
||||||
|
- "--no-log-colors"
|
||||||
|
- "--jpeg-sink=kvmd::ustreamer::jpeg"
|
||||||
|
- "--jpeg-sink-mode=0660"
|
||||||
|
- "--h264-sink=kvmd::ustreamer::h264"
|
||||||
|
- "--h264-sink-mode=0660"
|
||||||
|
- "--h264-bitrate={h264_bitrate}"
|
||||||
|
- "--h264-gop={h264_gop}"
|
||||||
|
|
||||||
|
gpio:
|
||||||
|
drivers:
|
||||||
|
__v4_locator__:
|
||||||
|
type: locator
|
||||||
|
|
||||||
|
scheme:
|
||||||
|
__v3_usb_breaker__:
|
||||||
|
pin: 22
|
||||||
|
mode: output
|
||||||
|
initial: true
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
__v4_locator__:
|
||||||
|
driver: __v4_locator__
|
||||||
|
pin: 12
|
||||||
|
mode: output
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
__v4_const1__:
|
||||||
|
pin: 6
|
||||||
|
mode: output
|
||||||
|
initial: false
|
||||||
|
switch: false
|
||||||
|
pulse: false
|
||||||
|
|
||||||
|
|
||||||
|
vnc:
|
||||||
|
memsink:
|
||||||
|
jpeg:
|
||||||
|
sink: "kvmd::ustreamer::jpeg"
|
||||||
|
h264:
|
||||||
|
sink: "kvmd::ustreamer::h264"
|
||||||
|
|
||||||
|
|
||||||
|
otg:
|
||||||
|
remote_wakeup: true
|
||||||
9
configs/kvmd/meta.yaml
Normal file
9
configs/kvmd/meta.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# You can write down any information and it will be available
|
||||||
|
# at the address /api/info (if you use default nginx config).
|
||||||
|
# If server.host (str) will be defined then this value
|
||||||
|
# will be displayed in the web interface.
|
||||||
|
|
||||||
|
server:
|
||||||
|
host: localhost.localdomain
|
||||||
|
|
||||||
|
kvm: {}
|
||||||
39
configs/kvmd/override.yaml
Normal file
39
configs/kvmd/override.yaml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
###############################################################################
|
||||||
|
# #
|
||||||
|
# Override KVMD settings. #
|
||||||
|
# #
|
||||||
|
# * https://docs.pikvm.org/first_steps/#structure-of-configuration-files #
|
||||||
|
# #
|
||||||
|
# This file uses YAML syntax. All overridden parameters will be applied #
|
||||||
|
# AFTER other configs and "!include" directives, and BEFORE validation. #
|
||||||
|
# Values should be combined under common sections. #
|
||||||
|
# #
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
#########
|
||||||
|
# Wrong #
|
||||||
|
#########
|
||||||
|
#kvmd:
|
||||||
|
# gpio:
|
||||||
|
# drivers: ...
|
||||||
|
#kvmd:
|
||||||
|
# gpio:
|
||||||
|
# scheme: ...
|
||||||
|
#
|
||||||
|
###########
|
||||||
|
# Correct #
|
||||||
|
###########
|
||||||
|
#kvmd:
|
||||||
|
# gpio:
|
||||||
|
# drivers: ...
|
||||||
|
# scheme: ...
|
||||||
|
#
|
||||||
|
###########
|
||||||
|
# Example #
|
||||||
|
###########
|
||||||
|
#vnc:
|
||||||
|
# # See https://docs.pikvm.org/vnc
|
||||||
|
# keymap: /usr/share/kvmd/keymaps/ru # Set russian keymap
|
||||||
|
# auth:
|
||||||
|
# vncauth:
|
||||||
|
# enabled: true # Enable auth via /etc/kvmd/vncpasswd
|
||||||
0
configs/kvmd/totp.secret
Normal file
0
configs/kvmd/totp.secret
Normal file
12
configs/kvmd/vncpasswd
Normal file
12
configs/kvmd/vncpasswd
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# This file describes the credentials for VNCAuth. The left part before arrow is a passphrase
|
||||||
|
# for VNCAuth. The right part is username and password with which the user can access to KVMD API.
|
||||||
|
# The arrow is used as a separator and shows the relationship of user registrations on the system.
|
||||||
|
#
|
||||||
|
# Never use the same passwords for VNC and IPMI users. This default configuration is shown here
|
||||||
|
# for example only.
|
||||||
|
#
|
||||||
|
# If this file does not contain any entries, VNCAuth will be disabled and you will only be able
|
||||||
|
# to login in using your KVMD username and password using VeNCrypt methods.
|
||||||
|
|
||||||
|
# pa$$phr@se -> admin:password
|
||||||
|
admin -> admin:admin
|
||||||
1
configs/kvmd/web.css
Normal file
1
configs/kvmd/web.css
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* Here you can customize the Web UI */
|
||||||
5
configs/nginx/certbot.ctx-server.conf
Normal file
5
configs/nginx/certbot.ctx-server.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
location /.well-known/acme-challenge {
|
||||||
|
root /run/kvmd-certbot/webroot;
|
||||||
|
include /etc/kvmd/nginx/loc-nocache.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
7
configs/nginx/kvmd.ctx-http.conf
Normal file
7
configs/nginx/kvmd.ctx-http.conf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
upstream kvmd {
|
||||||
|
server unix:/run/kvmd/kvmd.sock fail_timeout=0s max_fails=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream ustreamer {
|
||||||
|
server unix:/run/kvmd/ustreamer.sock fail_timeout=0s max_fails=0;
|
||||||
|
}
|
||||||
131
configs/nginx/kvmd.ctx-server.conf
Normal file
131
configs/nginx/kvmd.ctx-server.conf
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
absolute_redirect off;
|
||||||
|
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
auth_request /auth_check;
|
||||||
|
|
||||||
|
location = /auth_check {
|
||||||
|
internal;
|
||||||
|
proxy_pass http://kvmd/auth/check;
|
||||||
|
proxy_pass_request_body off;
|
||||||
|
proxy_set_header Content-Length "";
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/kvmd/web;
|
||||||
|
include /etc/kvmd/nginx/loc-login.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-nocache.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @login {
|
||||||
|
return 302 /login;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /login {
|
||||||
|
root /usr/share/kvmd/web;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /share {
|
||||||
|
root /usr/share/kvmd/web;
|
||||||
|
include /etc/kvmd/nginx/loc-nocache.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /share/css/user.css {
|
||||||
|
alias /etc/kvmd/web.css;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /favicon.ico {
|
||||||
|
alias /usr/share/kvmd/web/favicon.ico;
|
||||||
|
include /etc/kvmd/nginx/loc-nocache.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /robots.txt {
|
||||||
|
alias /usr/share/kvmd/web/robots.txt;
|
||||||
|
include /etc/kvmd/nginx/loc-nocache.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/ws {
|
||||||
|
rewrite ^/api/ws$ /ws break;
|
||||||
|
rewrite ^/api/ws\?(.*)$ /ws?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-websocket.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/hid/print {
|
||||||
|
rewrite ^/api/hid/print$ /hid/print break;
|
||||||
|
rewrite ^/api/hid/print\?(.*)$ /hid/print?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-bigpost.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/msd/read {
|
||||||
|
rewrite ^/api/msd/read$ /msd/read break;
|
||||||
|
rewrite ^/api/msd/read\?(.*)$ /msd/read?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-nobuffering.conf;
|
||||||
|
proxy_read_timeout 7d;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/msd/write_remote {
|
||||||
|
rewrite ^/api/msd/write_remote$ /msd/write_remote break;
|
||||||
|
rewrite ^/api/msd/write_remote\?(.*)$ /msd/write_remote?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-nobuffering.conf;
|
||||||
|
proxy_read_timeout 7d;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/msd/write {
|
||||||
|
rewrite ^/api/msd/write$ /msd/write break;
|
||||||
|
rewrite ^/api/msd/write\?(.*)$ /msd/write?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-bigpost.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/log {
|
||||||
|
rewrite ^/api/log$ /log break;
|
||||||
|
rewrite ^/api/log\?(.*)$ /log?$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-nobuffering.conf;
|
||||||
|
proxy_read_timeout 7d;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api {
|
||||||
|
rewrite ^/api$ / break;
|
||||||
|
rewrite ^/api/(.*)$ /$1 break;
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /streamer {
|
||||||
|
rewrite ^/streamer$ / break;
|
||||||
|
rewrite ^/streamer\?(.*)$ ?$1 break;
|
||||||
|
rewrite ^/streamer/(.*)$ /$1 break;
|
||||||
|
proxy_pass http://ustreamer;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
include /etc/kvmd/nginx/loc-nobuffering.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /redfish {
|
||||||
|
proxy_pass http://kvmd;
|
||||||
|
include /etc/kvmd/nginx/loc-proxy.conf;
|
||||||
|
auth_request off;
|
||||||
|
}
|
||||||
4
configs/nginx/loc-bigpost.conf
Normal file
4
configs/nginx/loc-bigpost.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
limit_rate 6250k;
|
||||||
|
limit_rate_after 50k;
|
||||||
|
client_max_body_size 0;
|
||||||
|
proxy_request_buffering off;
|
||||||
2
configs/nginx/loc-login.conf
Normal file
2
configs/nginx/loc-login.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
error_page 401 = @login;
|
||||||
|
error_page 403 = @login;
|
||||||
3
configs/nginx/loc-nobuffering.conf
Normal file
3
configs/nginx/loc-nobuffering.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
2
configs/nginx/loc-nocache.conf
Normal file
2
configs/nginx/loc-nocache.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, pre-check=0, post-check=0, max-age=0";
|
||||||
|
expires -1;
|
||||||
6
configs/nginx/loc-proxy.conf
Normal file
6
configs/nginx/loc-proxy.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Forwarded-Port $server_port;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
5
configs/nginx/loc-websocket.conf
Normal file
5
configs/nginx/loc-websocket.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_connect_timeout 7d;
|
||||||
|
proxy_send_timeout 7d;
|
||||||
|
proxy_read_timeout 7d;
|
||||||
912
configs/nginx/mime-types.conf
Normal file
912
configs/nginx/mime-types.conf
Normal file
@ -0,0 +1,912 @@
|
|||||||
|
types {
|
||||||
|
application/A2L a2l;
|
||||||
|
application/AML aml;
|
||||||
|
application/andrew-inset ez;
|
||||||
|
application/ATF atf;
|
||||||
|
application/ATFX atfx;
|
||||||
|
application/ATXML atxml;
|
||||||
|
application/atom+xml atom;
|
||||||
|
application/atomcat+xml atomcat;
|
||||||
|
application/atomdeleted+xml atomdeleted;
|
||||||
|
application/atomsvc+xml atomsvc;
|
||||||
|
application/auth-policy+xml apxml;
|
||||||
|
application/bacnet-xdd+zip xdd;
|
||||||
|
application/calendar+xml xcs;
|
||||||
|
application/cbor cbor;
|
||||||
|
application/cccex c3ex;
|
||||||
|
application/ccmp+xml ccmp;
|
||||||
|
application/ccxml+xml ccxml;
|
||||||
|
application/CDFX+XML cdfx;
|
||||||
|
application/cdmi-capability cdmia;
|
||||||
|
application/cdmi-container cdmic;
|
||||||
|
application/cdmi-domain cdmid;
|
||||||
|
application/cdmi-object cdmio;
|
||||||
|
application/cdmi-queue cdmiq;
|
||||||
|
application/CEA cea;
|
||||||
|
application/cellml+xml cellml cml;
|
||||||
|
application/clue_info+xml clue;
|
||||||
|
application/cms cmsc;
|
||||||
|
application/cpl+xml cpl;
|
||||||
|
application/csrattrs csrattrs;
|
||||||
|
application/dash+xml mpd;
|
||||||
|
application/dashdelta mpdd;
|
||||||
|
application/davmount+xml davmount;
|
||||||
|
application/DCD dcd;
|
||||||
|
application/dicom dcm;
|
||||||
|
application/DII dii;
|
||||||
|
application/DIT dit;
|
||||||
|
application/dskpp+xml xmls;
|
||||||
|
application/dssc+der dssc;
|
||||||
|
application/dssc+xml xdssc;
|
||||||
|
application/dvcs dvc;
|
||||||
|
application/ecmascript es;
|
||||||
|
application/efi efi;
|
||||||
|
application/emma+xml emma;
|
||||||
|
application/emotionml+xml emotionml;
|
||||||
|
application/epub+zip epub;
|
||||||
|
application/exi exi;
|
||||||
|
application/fastinfoset finf;
|
||||||
|
application/fdt+xml fdt;
|
||||||
|
application/font-tdpfr pfr;
|
||||||
|
application/geo+json geojson;
|
||||||
|
application/gml+xml gml;
|
||||||
|
application/gzip gz tgz;
|
||||||
|
application/hyperstudio stk;
|
||||||
|
application/inkml+xml ink inkml;
|
||||||
|
application/ipfix ipfix;
|
||||||
|
application/its+xml its;
|
||||||
|
application/javascript js;
|
||||||
|
application/jrd+json jrd;
|
||||||
|
application/json json;
|
||||||
|
application/json-patch+json json-patch;
|
||||||
|
application/ld+json jsonld;
|
||||||
|
application/lgr+xml lgr;
|
||||||
|
application/link-format wlnk;
|
||||||
|
application/lost+xml lostxml;
|
||||||
|
application/lostsync+xml lostsyncxml;
|
||||||
|
application/LXF lxf;
|
||||||
|
application/mac-binhex40 hqx;
|
||||||
|
application/mads+xml mads;
|
||||||
|
application/marc mrc;
|
||||||
|
application/marcxml+xml mrcx;
|
||||||
|
application/mathematica nb ma mb;
|
||||||
|
application/mathml+xml mml;
|
||||||
|
application/mbox mbox;
|
||||||
|
application/metalink4+xml meta4;
|
||||||
|
application/mets+xml mets;
|
||||||
|
application/MF4 mf4;
|
||||||
|
application/mmt-usd+xml musd;
|
||||||
|
application/mods+xml mods;
|
||||||
|
application/mp21 m21 mp21;
|
||||||
|
application/msword doc;
|
||||||
|
application/mxf mxf;
|
||||||
|
application/n-quads nq;
|
||||||
|
application/n-triples nt;
|
||||||
|
application/ocsp-request orq;
|
||||||
|
application/ocsp-response ors;
|
||||||
|
application/octet-stream bin lha lzh exe class so dll img iso;
|
||||||
|
application/oda oda;
|
||||||
|
application/ODX odx;
|
||||||
|
application/oebps-package+xml opf;
|
||||||
|
application/ogg ogx;
|
||||||
|
application/oxps oxps;
|
||||||
|
application/p2p-overlay+xml relo;
|
||||||
|
application/pdf pdf;
|
||||||
|
application/PDX pdx;
|
||||||
|
application/pgp-encrypted pgp;
|
||||||
|
application/pgp-signature sig;
|
||||||
|
application/pkcs10 p10;
|
||||||
|
application/pkcs12 p12 pfx;
|
||||||
|
application/pkcs7-mime p7m p7c;
|
||||||
|
application/pkcs7-signature p7s;
|
||||||
|
application/pkcs8 p8;
|
||||||
|
application/pkix-cert cer;
|
||||||
|
application/pkix-crl crl;
|
||||||
|
application/pkix-pkipath pkipath;
|
||||||
|
application/pkixcmp pki;
|
||||||
|
application/pls+xml pls;
|
||||||
|
application/postscript ps eps ai;
|
||||||
|
application/provenance+xml provx;
|
||||||
|
application/prs.cww cw cww;
|
||||||
|
application/prs.hpub+zip hpub;
|
||||||
|
application/prs.nprend rnd rct;
|
||||||
|
application/prs.rdf-xml-crypt rdf-crypt;
|
||||||
|
application/prs.xsf+xml xsf;
|
||||||
|
application/pskc+xml pskcxml;
|
||||||
|
application/rdf+xml rdf;
|
||||||
|
application/route-apd+xml rapd;
|
||||||
|
application/route-s-tsid+xml sls;
|
||||||
|
application/route-usd+xml rusd;
|
||||||
|
application/reginfo+xml rif;
|
||||||
|
application/relax-ng-compact-syntax rnc;
|
||||||
|
application/resource-lists-diff+xml rld;
|
||||||
|
application/resource-lists+xml rl;
|
||||||
|
application/rfc+xml rfcxml;
|
||||||
|
application/rls-services+xml rs;
|
||||||
|
application/rpki-ghostbusters gbr;
|
||||||
|
application/rpki-manifest mft;
|
||||||
|
application/rpki-roa roa;
|
||||||
|
application/rtf rtf;
|
||||||
|
application/scim+json scim;
|
||||||
|
application/scvp-cv-request scq;
|
||||||
|
application/scvp-cv-response scs;
|
||||||
|
application/scvp-vp-request spq;
|
||||||
|
application/scvp-vp-response spp;
|
||||||
|
application/sdp sdp;
|
||||||
|
application/sgml-open-catalog soc;
|
||||||
|
application/shf+xml shf;
|
||||||
|
application/sieve siv sieve;
|
||||||
|
application/simple-filter+xml cl;
|
||||||
|
application/smil+xml smil smi sml;
|
||||||
|
application/sparql-query rq;
|
||||||
|
application/sparql-results+xml srx;
|
||||||
|
application/sql sql;
|
||||||
|
application/srgs gram;
|
||||||
|
application/srgs+xml grxml;
|
||||||
|
application/sru+xml sru;
|
||||||
|
application/ssml+xml ssml;
|
||||||
|
application/tamp-apex-update tau;
|
||||||
|
application/tamp-apex-update-confirm auc;
|
||||||
|
application/tamp-community-update tcu;
|
||||||
|
application/tamp-community-update-confirm cuc;
|
||||||
|
application/tamp-error ter;
|
||||||
|
application/tamp-sequence-adjust tsa;
|
||||||
|
application/tamp-sequence-adjust-confirm sac;
|
||||||
|
application/tamp-update tur;
|
||||||
|
application/tamp-update-confirm tuc;
|
||||||
|
application/tei+xml tei teiCorpus odd;
|
||||||
|
application/thraud+xml tfi;
|
||||||
|
application/timestamp-query tsq;
|
||||||
|
application/timestamp-reply tsr;
|
||||||
|
application/timestamped-data tsd;
|
||||||
|
application/trig trig;
|
||||||
|
application/ttml+xml ttml;
|
||||||
|
application/urc-grpsheet+xml gsheet;
|
||||||
|
application/urc-ressheet+xml rsheet;
|
||||||
|
application/urc-targetdesc+xml td;
|
||||||
|
application/urc-uisocketdesc+xml uis;
|
||||||
|
application/vnd.1000minds.decision-model+xml 1km;
|
||||||
|
application/vnd.3gpp.pic-bw-large plb;
|
||||||
|
application/vnd.3gpp.pic-bw-small psb;
|
||||||
|
application/vnd.3gpp.pic-bw-var pvb;
|
||||||
|
application/vnd.3gpp2.sms sms;
|
||||||
|
application/vnd.3gpp2.tcap tcap;
|
||||||
|
application/vnd.3lightssoftware.imagescal imgcal;
|
||||||
|
application/vnd.3M.Post-it-Notes pwn;
|
||||||
|
application/vnd.accpac.simply.aso aso;
|
||||||
|
application/vnd.accpac.simply.imp imp;
|
||||||
|
application/vnd.acucobol acu;
|
||||||
|
application/vnd.acucorp atc acutc;
|
||||||
|
application/vnd.adobe.flash.movie swf;
|
||||||
|
application/vnd.adobe.formscentral.fcdt fcdt;
|
||||||
|
application/vnd.adobe.fxp fxp fxpl;
|
||||||
|
application/vnd.adobe.xdp+xml xdp;
|
||||||
|
application/vnd.adobe.xfdf xfdf;
|
||||||
|
application/vnd.ahead.space ahead;
|
||||||
|
application/vnd.airzip.filesecure.azf azf;
|
||||||
|
application/vnd.airzip.filesecure.azs azs;
|
||||||
|
application/vnd.amazon.mobi8-ebook azw3;
|
||||||
|
application/vnd.americandynamics.acc acc;
|
||||||
|
application/vnd.amiga.ami ami;
|
||||||
|
application/vnd.anki apkg;
|
||||||
|
application/vnd.anser-web-certificate-issue-initiation cii;
|
||||||
|
application/vnd.anser-web-funds-transfer-initiation fti;
|
||||||
|
application/vnd.apple.installer+xml dist distz pkg mpkg;
|
||||||
|
application/vnd.apple.mpegurl m3u8;
|
||||||
|
application/vnd.aristanetworks.swi swi;
|
||||||
|
application/vnd.astraea-software.iota iota;
|
||||||
|
application/vnd.audiograph aep;
|
||||||
|
application/vnd.autopackage package;
|
||||||
|
application/vnd.balsamiq.bmml+xml bmml;
|
||||||
|
application/vnd.balsamiq.bmpr bmpr;
|
||||||
|
application/vnd.blueice.multipass mpm;
|
||||||
|
application/vnd.bluetooth.ep.oob ep;
|
||||||
|
application/vnd.bluetooth.le.oob le;
|
||||||
|
application/vnd.bmi bmi;
|
||||||
|
application/vnd.businessobjects rep;
|
||||||
|
application/vnd.cendio.thinlinc.clientconf tlclient;
|
||||||
|
application/vnd.chemdraw+xml cdxml;
|
||||||
|
application/vnd.chess-pgn pgn;
|
||||||
|
application/vnd.chipnuts.karaoke-mmd mmd;
|
||||||
|
application/vnd.cinderella cdy;
|
||||||
|
application/vnd.citationstyles.style+xml csl;
|
||||||
|
application/vnd.claymore cla;
|
||||||
|
application/vnd.cloanto.rp9 rp9;
|
||||||
|
application/vnd.clonk.c4group c4g c4d c4f c4p c4u;
|
||||||
|
application/vnd.cluetrust.cartomobile-config c11amc;
|
||||||
|
application/vnd.cluetrust.cartomobile-config-pkg c11amz;
|
||||||
|
application/vnd.coffeescript coffee;
|
||||||
|
application/vnd.comicbook+zip cbz;
|
||||||
|
application/vnd.commerce-battelle ica icf icd ic0 ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8;
|
||||||
|
application/vnd.commonspace csp cst;
|
||||||
|
application/vnd.contact.cmsg cdbcmsg;
|
||||||
|
application/vnd.coreos.ignition+json ign ignition;
|
||||||
|
application/vnd.cosmocaller cmc;
|
||||||
|
application/vnd.crick.clicker clkx;
|
||||||
|
application/vnd.crick.clicker.keyboard clkk;
|
||||||
|
application/vnd.crick.clicker.palette clkp;
|
||||||
|
application/vnd.crick.clicker.template clkt;
|
||||||
|
application/vnd.crick.clicker.wordbank clkw;
|
||||||
|
application/vnd.criticaltools.wbs+xml wbs;
|
||||||
|
application/vnd.ctc-posml pml;
|
||||||
|
application/vnd.cups-ppd ppd;
|
||||||
|
application/vnd.curl curl;
|
||||||
|
application/vnd.dart dart;
|
||||||
|
application/vnd.data-vision.rdz rdz;
|
||||||
|
application/vnd.debian.binary-package deb udeb;
|
||||||
|
application/vnd.dece.data uvf uvvf uvd uvvd;
|
||||||
|
application/vnd.dece.ttml+xml uvt uvvt;
|
||||||
|
application/vnd.dece.unspecified uvx uvvx;
|
||||||
|
application/vnd.dece.zip uvz uvvz;
|
||||||
|
application/vnd.denovo.fcselayout-link fe_launch;
|
||||||
|
application/vnd.desmume.movie dsm;
|
||||||
|
application/vnd.dna dna;
|
||||||
|
application/vnd.document+json docjson;
|
||||||
|
application/vnd.doremir.scorecloud-binary-document scld;
|
||||||
|
application/vnd.dpgraph dpg mwc dpgraph;
|
||||||
|
application/vnd.dreamfactory dfac;
|
||||||
|
application/vnd.dtg.local.flash fla;
|
||||||
|
application/vnd.dvb.ait ait;
|
||||||
|
application/vnd.dvb.service svc;
|
||||||
|
application/vnd.dynageo geo;
|
||||||
|
application/vnd.dzr dzr;
|
||||||
|
application/vnd.ecowin.chart mag;
|
||||||
|
application/vnd.enliven nml;
|
||||||
|
application/vnd.epson.esf esf;
|
||||||
|
application/vnd.epson.msf msf;
|
||||||
|
application/vnd.epson.quickanime qam;
|
||||||
|
application/vnd.epson.salt slt;
|
||||||
|
application/vnd.epson.ssf ssf;
|
||||||
|
application/vnd.ericsson.quickcall qcall qca;
|
||||||
|
application/vnd.espass-espass+zip espass;
|
||||||
|
application/vnd.eszigno3+xml es3 et3;
|
||||||
|
application/vnd.etsi.asic-e+zip asice sce;
|
||||||
|
application/vnd.etsi.asic-s+zip asics;
|
||||||
|
application/vnd.etsi.timestamp-token tst;
|
||||||
|
application/vnd.evolv.ecig.profile ecigprofile;
|
||||||
|
application/vnd.evolv.ecig.settings ecig;
|
||||||
|
application/vnd.evolv.ecig.theme ecigtheme;
|
||||||
|
application/vnd.ezpix-album ez2;
|
||||||
|
application/vnd.ezpix-package ez3;
|
||||||
|
application/vnd.fastcopy-disk-image dim;
|
||||||
|
application/vnd.fdf fdf;
|
||||||
|
application/vnd.fdsn.mseed msd mseed;
|
||||||
|
application/vnd.fdsn.seed seed dataless;
|
||||||
|
application/vnd.filmit.zfc zfc;
|
||||||
|
application/vnd.FloGraphIt gph;
|
||||||
|
application/vnd.fluxtime.clip ftc;
|
||||||
|
application/vnd.font-fontforge-sfd sfd;
|
||||||
|
application/vnd.framemaker fm;
|
||||||
|
application/vnd.frogans.fnc fnc;
|
||||||
|
application/vnd.frogans.ltf ltf;
|
||||||
|
application/vnd.fsc.weblaunch fsc;
|
||||||
|
application/vnd.fujitsu.oasys oas;
|
||||||
|
application/vnd.fujitsu.oasys2 oa2;
|
||||||
|
application/vnd.fujitsu.oasys3 oa3;
|
||||||
|
application/vnd.fujitsu.oasysgp fg5;
|
||||||
|
application/vnd.fujitsu.oasysprs bh2;
|
||||||
|
application/vnd.fujixerox.ddd ddd;
|
||||||
|
application/vnd.fujixerox.docuworks xdw;
|
||||||
|
application/vnd.fujixerox.docuworks.binder xbd;
|
||||||
|
application/vnd.fujixerox.docuworks.container xct;
|
||||||
|
application/vnd.fuzzysheet fzs;
|
||||||
|
application/vnd.genomatix.tuxedo txd;
|
||||||
|
application/vnd.geocube+xml g3 g³;
|
||||||
|
application/vnd.geogebra.file ggb;
|
||||||
|
application/vnd.geogebra.tool ggt;
|
||||||
|
application/vnd.geometry-explorer gex gre;
|
||||||
|
application/vnd.geonext gxt;
|
||||||
|
application/vnd.geoplan g2w;
|
||||||
|
application/vnd.geospace g3w;
|
||||||
|
application/vnd.gmx gmx;
|
||||||
|
application/vnd.google-earth.kml+xml kml;
|
||||||
|
application/vnd.google-earth.kmz kmz;
|
||||||
|
application/vnd.grafeq gqf gqs;
|
||||||
|
application/vnd.groove-account gac;
|
||||||
|
application/vnd.groove-help ghf;
|
||||||
|
application/vnd.groove-identity-message gim;
|
||||||
|
application/vnd.groove-injector grv;
|
||||||
|
application/vnd.groove-tool-message gtm;
|
||||||
|
application/vnd.groove-tool-template tpl;
|
||||||
|
application/vnd.groove-vcard vcg;
|
||||||
|
application/vnd.hal+xml hal;
|
||||||
|
application/vnd.HandHeld-Entertainment+xml zmm;
|
||||||
|
application/vnd.hbci hbci hbc kom upa pkd bpd;
|
||||||
|
application/vnd.hdt hdt;
|
||||||
|
application/vnd.hhe.lesson-player les;
|
||||||
|
application/vnd.hp-HPGL hpgl;
|
||||||
|
application/vnd.hp-hpid hpi hpid;
|
||||||
|
application/vnd.hp-hps hps;
|
||||||
|
application/vnd.hp-jlyt jlt;
|
||||||
|
application/vnd.hp-PCL pcl;
|
||||||
|
application/vnd.hydrostatix.sof-data sfd-hdstx;
|
||||||
|
application/vnd.hzn-3d-crossword x3d;
|
||||||
|
application/vnd.ibm.electronic-media emm;
|
||||||
|
application/vnd.ibm.MiniPay mpy;
|
||||||
|
application/vnd.ibm.modcap list3820 listafp afp pseg3820;
|
||||||
|
application/vnd.ibm.rights-management irm;
|
||||||
|
application/vnd.ibm.secure-container sc;
|
||||||
|
application/vnd.iccprofile icc icm;
|
||||||
|
application/vnd.ieee.1905 1905.1;
|
||||||
|
application/vnd.igloader igl;
|
||||||
|
application/vnd.imagemeter.folder+zip imf;
|
||||||
|
application/vnd.imagemeter.image+zip imi;
|
||||||
|
application/vnd.immervision-ivp ivp;
|
||||||
|
application/vnd.immervision-ivu ivu;
|
||||||
|
application/vnd.ims.imsccv1p1 imscc;
|
||||||
|
application/vnd.insors.igm igm;
|
||||||
|
application/vnd.intercon.formnet xpw xpx;
|
||||||
|
application/vnd.intergeo i2g;
|
||||||
|
application/vnd.intu.qbo qbo;
|
||||||
|
application/vnd.intu.qfx qfx;
|
||||||
|
application/vnd.ipunplugged.rcprofile rcprofile;
|
||||||
|
application/vnd.irepository.package+xml irp;
|
||||||
|
application/vnd.is-xpr xpr;
|
||||||
|
application/vnd.isac.fcs fcs;
|
||||||
|
application/vnd.jam jam;
|
||||||
|
application/vnd.jcp.javame.midlet-rms rms;
|
||||||
|
application/vnd.jisp jisp;
|
||||||
|
application/vnd.joost.joda-archive joda;
|
||||||
|
application/vnd.kahootz ktz ktr;
|
||||||
|
application/vnd.kde.karbon karbon;
|
||||||
|
application/vnd.kde.kchart chrt;
|
||||||
|
application/vnd.kde.kformula kfo;
|
||||||
|
application/vnd.kde.kivio flw;
|
||||||
|
application/vnd.kde.kontour kon;
|
||||||
|
application/vnd.kde.kpresenter kpr kpt;
|
||||||
|
application/vnd.kde.kspread ksp;
|
||||||
|
application/vnd.kde.kword kwd kwt;
|
||||||
|
application/vnd.kenameaapp htke;
|
||||||
|
application/vnd.kidspiration kia;
|
||||||
|
application/vnd.Kinar kne knp sdf;
|
||||||
|
application/vnd.koan skp skd skm skt;
|
||||||
|
application/vnd.kodak-descriptor sse;
|
||||||
|
application/vnd.las.las+json lasjson;
|
||||||
|
application/vnd.las.las+xml lasxml;
|
||||||
|
application/vnd.llamagraphics.life-balance.desktop lbd;
|
||||||
|
application/vnd.llamagraphics.life-balance.exchange+xml lbe;
|
||||||
|
application/vnd.lotus-1-2-3 123 wk4 wk3 wk1;
|
||||||
|
application/vnd.lotus-approach apr vew;
|
||||||
|
application/vnd.lotus-freelance prz pre;
|
||||||
|
application/vnd.lotus-notes nsf ntf ndl ns4 ns3 ns2 nsh nsg;
|
||||||
|
application/vnd.lotus-organizer or3 or2 org;
|
||||||
|
application/vnd.lotus-screencam scm;
|
||||||
|
application/vnd.lotus-wordpro lwp sam;
|
||||||
|
application/vnd.macports.portpkg portpkg;
|
||||||
|
application/vnd.mapbox-vector-tile mvt;
|
||||||
|
application/vnd.marlin.drm.mdcf mdc;
|
||||||
|
application/vnd.maxmind.maxmind-db mmdb;
|
||||||
|
application/vnd.mcd mcd;
|
||||||
|
application/vnd.medcalcdata mc1;
|
||||||
|
application/vnd.mediastation.cdkey cdkey;
|
||||||
|
application/vnd.MFER mwf;
|
||||||
|
application/vnd.mfmp mfm;
|
||||||
|
application/vnd.micrografx.flo flo;
|
||||||
|
application/vnd.micrografx.igx igx;
|
||||||
|
application/vnd.mif mif;
|
||||||
|
application/vnd.Mobius.DAF daf;
|
||||||
|
application/vnd.Mobius.DIS dis;
|
||||||
|
application/vnd.Mobius.MBK mbk;
|
||||||
|
application/vnd.Mobius.MQY mqy;
|
||||||
|
application/vnd.Mobius.MSL msl;
|
||||||
|
application/vnd.Mobius.PLC plc;
|
||||||
|
application/vnd.Mobius.TXF txf;
|
||||||
|
application/vnd.mophun.application mpn;
|
||||||
|
application/vnd.mophun.certificate mpc;
|
||||||
|
application/vnd.mozilla.xul+xml xul;
|
||||||
|
application/vnd.ms-3mfdocument 3mf;
|
||||||
|
application/vnd.ms-artgalry cil;
|
||||||
|
application/vnd.ms-asf asf;
|
||||||
|
application/vnd.ms-cab-compressed cab;
|
||||||
|
application/vnd.ms-excel xls xlm xla xlc xlt xlw;
|
||||||
|
application/vnd.ms-excel.template.macroEnabled.12 xltm;
|
||||||
|
application/vnd.ms-excel.addin.macroEnabled.12 xlam;
|
||||||
|
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb;
|
||||||
|
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm;
|
||||||
|
application/vnd.ms-fontobject eot;
|
||||||
|
application/vnd.ms-htmlhelp chm;
|
||||||
|
application/vnd.ms-ims ims;
|
||||||
|
application/vnd.ms-lrm lrm;
|
||||||
|
application/vnd.ms-officetheme thmx;
|
||||||
|
application/vnd.ms-powerpoint ppt pps pot;
|
||||||
|
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam;
|
||||||
|
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm;
|
||||||
|
application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm;
|
||||||
|
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm;
|
||||||
|
application/vnd.ms-powerpoint.template.macroEnabled.12 potm;
|
||||||
|
application/vnd.ms-project mpp mpt;
|
||||||
|
application/vnd.ms-tnef tnef tnf;
|
||||||
|
application/vnd.ms-word.document.macroEnabled.12 docm;
|
||||||
|
application/vnd.ms-word.template.macroEnabled.12 dotm;
|
||||||
|
application/vnd.ms-works wcm wdb wks wps;
|
||||||
|
application/vnd.ms-wpl wpl;
|
||||||
|
application/vnd.ms-xpsdocument xps;
|
||||||
|
application/vnd.msa-disk-image msa;
|
||||||
|
application/vnd.mseq mseq;
|
||||||
|
application/vnd.multiad.creator crtr;
|
||||||
|
application/vnd.multiad.creator.cif cif;
|
||||||
|
application/vnd.musician mus;
|
||||||
|
application/vnd.muvee.style msty;
|
||||||
|
application/vnd.mynfc taglet;
|
||||||
|
application/vnd.nervana entity request bkm kcm;
|
||||||
|
application/vnd.nitf nitf;
|
||||||
|
application/vnd.neurolanguage.nlu nlu;
|
||||||
|
application/vnd.nintendo.nitro.rom nds;
|
||||||
|
application/vnd.nintendo.snes.rom sfc smc;
|
||||||
|
application/vnd.noblenet-directory nnd;
|
||||||
|
application/vnd.noblenet-sealer nns;
|
||||||
|
application/vnd.noblenet-web nnw;
|
||||||
|
application/vnd.nokia.n-gage.ac+xml ac;
|
||||||
|
application/vnd.nokia.n-gage.data ngdat;
|
||||||
|
application/vnd.nokia.n-gage.symbian.install n-gage;
|
||||||
|
application/vnd.nokia.radio-preset rpst;
|
||||||
|
application/vnd.nokia.radio-presets rpss;
|
||||||
|
application/vnd.novadigm.EDM edm;
|
||||||
|
application/vnd.novadigm.EDX edx;
|
||||||
|
application/vnd.novadigm.EXT ext;
|
||||||
|
application/vnd.oasis.opendocument.chart odc;
|
||||||
|
application/vnd.oasis.opendocument.chart-template otc;
|
||||||
|
application/vnd.oasis.opendocument.database odb;
|
||||||
|
application/vnd.oasis.opendocument.formula odf;
|
||||||
|
application/vnd.oasis.opendocument.graphics odg;
|
||||||
|
application/vnd.oasis.opendocument.graphics-template otg;
|
||||||
|
application/vnd.oasis.opendocument.image odi;
|
||||||
|
application/vnd.oasis.opendocument.image-template oti;
|
||||||
|
application/vnd.oasis.opendocument.presentation odp;
|
||||||
|
application/vnd.oasis.opendocument.presentation-template otp;
|
||||||
|
application/vnd.oasis.opendocument.spreadsheet ods;
|
||||||
|
application/vnd.oasis.opendocument.spreadsheet-template ots;
|
||||||
|
application/vnd.oasis.opendocument.text odt;
|
||||||
|
application/vnd.oasis.opendocument.text-master odm;
|
||||||
|
application/vnd.oasis.opendocument.text-template ott;
|
||||||
|
application/vnd.oasis.opendocument.text-web oth;
|
||||||
|
application/vnd.olpc-sugar xo;
|
||||||
|
application/vnd.oma.dd2+xml dd2;
|
||||||
|
application/vnd.onepager tam;
|
||||||
|
application/vnd.onepagertamp tamp;
|
||||||
|
application/vnd.onepagertamx tamx;
|
||||||
|
application/vnd.onepagertat tat;
|
||||||
|
application/vnd.onepagertatp tatp;
|
||||||
|
application/vnd.onepagertatx tatx;
|
||||||
|
application/vnd.openblox.game+xml obgx;
|
||||||
|
application/vnd.openblox.game-binary obg;
|
||||||
|
application/vnd.openeye.oeb oeb;
|
||||||
|
application/vnd.openofficeorg.extension oxt;
|
||||||
|
application/vnd.openstreetmap.data+xml osm;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.slide sldx;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.template potx;
|
||||||
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
|
||||||
|
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx;
|
||||||
|
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
|
||||||
|
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx;
|
||||||
|
application/vnd.osa.netdeploy ndc;
|
||||||
|
application/vnd.osgeo.mapguide.package mgp;
|
||||||
|
application/vnd.osgi.dp dp;
|
||||||
|
application/vnd.osgi.subsystem esa;
|
||||||
|
application/vnd.oxli.countgraph oxlicg;
|
||||||
|
application/vnd.palm prc pdb pqa oprc;
|
||||||
|
application/vnd.panoply plp;
|
||||||
|
application/vnd.pawaafile paw;
|
||||||
|
application/vnd.pg.format str;
|
||||||
|
application/vnd.pg.osasli ei6;
|
||||||
|
application/vnd.piaccess.application-license pil;
|
||||||
|
application/vnd.picsel efif;
|
||||||
|
application/vnd.pmi.widget wg;
|
||||||
|
application/vnd.pocketlearn plf;
|
||||||
|
application/vnd.powerbuilder6 pbd;
|
||||||
|
application/vnd.preminet preminet;
|
||||||
|
application/vnd.previewsystems.box box vbox;
|
||||||
|
application/vnd.proteus.magazine mgz;
|
||||||
|
application/vnd.publishare-delta-tree qps;
|
||||||
|
application/vnd.pvi.ptid1 ptid;
|
||||||
|
application/vnd.qualcomm.brew-app-res bar;
|
||||||
|
application/vnd.Quark.QuarkXPress qxd qxt qwd qwt qxl qxb;
|
||||||
|
application/vnd.quobject-quoxdocument quox quiz;
|
||||||
|
application/vnd.rainstor.data tree;
|
||||||
|
application/vnd.rar rar;
|
||||||
|
application/vnd.realvnc.bed bed;
|
||||||
|
application/vnd.recordare.musicxml mxl;
|
||||||
|
application/vnd.rig.cryptonote cryptonote;
|
||||||
|
application/vnd.route66.link66+xml link66;
|
||||||
|
application/vnd.sailingtracker.track st;
|
||||||
|
application/vnd.scribus scd sla slaz;
|
||||||
|
application/vnd.sealed.3df s3df;
|
||||||
|
application/vnd.sealed.csf scsf;
|
||||||
|
application/vnd.sealed.doc sdoc sdo s1w;
|
||||||
|
application/vnd.sealed.eml seml sem;
|
||||||
|
application/vnd.sealed.mht smht smh;
|
||||||
|
application/vnd.sealed.ppt sppt s1p;
|
||||||
|
application/vnd.sealed.tiff stif;
|
||||||
|
application/vnd.sealed.xls sxls sxl s1e;
|
||||||
|
application/vnd.sealedmedia.softseal.html stml s1h;
|
||||||
|
application/vnd.sealedmedia.softseal.pdf spdf spd s1a;
|
||||||
|
application/vnd.seemail see;
|
||||||
|
application/vnd.sema sema;
|
||||||
|
application/vnd.semd semd;
|
||||||
|
application/vnd.semf semf;
|
||||||
|
application/vnd.shana.informed.formdata ifm;
|
||||||
|
application/vnd.shana.informed.formtemplate itp;
|
||||||
|
application/vnd.shana.informed.interchange iif;
|
||||||
|
application/vnd.shana.informed.package ipk;
|
||||||
|
application/vnd.sigrok.session sr;
|
||||||
|
application/vnd.SimTech-MindMapper twd twds;
|
||||||
|
application/vnd.smaf mmf;
|
||||||
|
application/vnd.smart.notebook notebook;
|
||||||
|
application/vnd.smart.teacher teacher;
|
||||||
|
application/vnd.software602.filler.form+xml fo;
|
||||||
|
application/vnd.software602.filler.form-xml-zip zfo;
|
||||||
|
application/vnd.solent.sdkm+xml sdkm sdkd;
|
||||||
|
application/vnd.spotfire.dxp dxp;
|
||||||
|
application/vnd.spotfire.sfs sfs;
|
||||||
|
application/vnd.stepmania.package smzip;
|
||||||
|
application/vnd.stepmania.stepchart sm;
|
||||||
|
application/vnd.sun.wadl+xml wadl;
|
||||||
|
application/vnd.sus-calendar sus susp;
|
||||||
|
application/vnd.syncml+xml xsm;
|
||||||
|
application/vnd.syncml.dm+wbxml bdm;
|
||||||
|
application/vnd.syncml.dm+xml xdm;
|
||||||
|
application/vnd.syncml.dmddf+xml ddf;
|
||||||
|
application/vnd.tao.intent-module-archive tao;
|
||||||
|
application/vnd.tcpdump.pcap pcap cap dmp;
|
||||||
|
application/vnd.theqvd qvd;
|
||||||
|
application/vnd.tml vfr viaframe;
|
||||||
|
application/vnd.tmobile-livetv tmo;
|
||||||
|
application/vnd.trid.tpt tpt;
|
||||||
|
application/vnd.triscape.mxs mxs;
|
||||||
|
application/vnd.trueapp tra;
|
||||||
|
application/vnd.ufdl ufdl ufd frm;
|
||||||
|
application/vnd.uiq.theme utz;
|
||||||
|
application/vnd.umajin umj;
|
||||||
|
application/vnd.unity unityweb;
|
||||||
|
application/vnd.uoml+xml uoml uo;
|
||||||
|
application/vnd.uri-map urim urimap;
|
||||||
|
application/vnd.valve.source.material vmt;
|
||||||
|
application/vnd.vcx vcx;
|
||||||
|
application/vnd.vd-study mxi study-inter model-inter;
|
||||||
|
application/vnd.vectorworks vwx;
|
||||||
|
application/vnd.vidsoft.vidconference vsc;
|
||||||
|
application/vnd.visio vsd vst vsw vss;
|
||||||
|
application/vnd.visionary vis;
|
||||||
|
application/vnd.vsf vsf;
|
||||||
|
application/vnd.wap.sic sic;
|
||||||
|
application/vnd.wap.slc slc;
|
||||||
|
application/vnd.wap.wbxml wbxml;
|
||||||
|
application/vnd.wap.wmlc wmlc;
|
||||||
|
application/vnd.wap.wmlscriptc wmlsc;
|
||||||
|
application/vnd.webturbo wtb;
|
||||||
|
application/vnd.wfa.p2p p2p;
|
||||||
|
application/vnd.wfa.wsc wsc;
|
||||||
|
application/vnd.wmc wmc;
|
||||||
|
application/vnd.wolfram.mathematica.package m;
|
||||||
|
application/vnd.wolfram.player nbp;
|
||||||
|
application/vnd.wordperfect wpd;
|
||||||
|
application/vnd.wqd wqd;
|
||||||
|
application/vnd.wt.stf stf;
|
||||||
|
application/vnd.wv.csp+wbxml wv;
|
||||||
|
application/vnd.xara xar;
|
||||||
|
application/vnd.xfdl xfdl xfd;
|
||||||
|
application/vnd.xmpie.cpkg cpkg;
|
||||||
|
application/vnd.xmpie.dpkg dpkg;
|
||||||
|
application/vnd.xmpie.ppkg ppkg;
|
||||||
|
application/vnd.xmpie.xlim xlim;
|
||||||
|
application/vnd.yamaha.hv-dic hvd;
|
||||||
|
application/vnd.yamaha.hv-script hvs;
|
||||||
|
application/vnd.yamaha.hv-voice hvp;
|
||||||
|
application/vnd.yamaha.openscoreformat osf;
|
||||||
|
application/vnd.yamaha.smaf-audio saf;
|
||||||
|
application/vnd.yamaha.smaf-phrase spf;
|
||||||
|
application/vnd.yaoweme yme;
|
||||||
|
application/vnd.yellowriver-custom-menu cmp;
|
||||||
|
application/vnd.zul zir zirz;
|
||||||
|
application/vnd.zzazz.deck+xml zaz;
|
||||||
|
application/voicexml+xml vxml;
|
||||||
|
application/watcherinfo+xml wif;
|
||||||
|
application/widget wgt;
|
||||||
|
application/wsdl+xml wsdl;
|
||||||
|
application/wspolicy+xml wspolicy;
|
||||||
|
application/xcap-att+xml xav;
|
||||||
|
application/xcap-caps+xml xca;
|
||||||
|
application/xcap-diff+xml xdf;
|
||||||
|
application/xcap-el+xml xel;
|
||||||
|
application/xcap-error+xml xer;
|
||||||
|
application/xcap-ns+xml xns;
|
||||||
|
application/xhtml+xml xhtml xhtm xht;
|
||||||
|
application/xml-dtd dtd;
|
||||||
|
application/xop+xml xop;
|
||||||
|
application/xslt+xml xsl xslt;
|
||||||
|
application/xv+xml mxml xhvml xvml xvm;
|
||||||
|
application/yang yang;
|
||||||
|
application/yin+xml yin;
|
||||||
|
application/zip zip;
|
||||||
|
audio/32kadpcm 726;
|
||||||
|
audio/ac3 ac3;
|
||||||
|
audio/AMR amr;
|
||||||
|
audio/AMR-WB awb;
|
||||||
|
audio/asc acn;
|
||||||
|
audio/ATRAC-ADVANCED-LOSSLESS aal;
|
||||||
|
audio/ATRAC-X atx;
|
||||||
|
audio/ATRAC3 at3 aa3 omg;
|
||||||
|
audio/basic au snd;
|
||||||
|
audio/dls dls;
|
||||||
|
audio/EVRC evc;
|
||||||
|
audio/EVRCB evb;
|
||||||
|
audio/EVRCNW enw;
|
||||||
|
audio/EVRCWB evw;
|
||||||
|
audio/iLBC lbc;
|
||||||
|
audio/L16 l16;
|
||||||
|
audio/mobile-xmf mxmf;
|
||||||
|
audio/mp4 m4a;
|
||||||
|
audio/mpeg mp3 mpga mp1 mp2;
|
||||||
|
audio/ogg oga ogg opus spx;
|
||||||
|
audio/prs.sid sid psid;
|
||||||
|
audio/qcelp qcp;
|
||||||
|
audio/SMV smv;
|
||||||
|
audio/vnd.audikoz koz;
|
||||||
|
audio/vnd.dece.audio uva uvva;
|
||||||
|
audio/vnd.digital-winds eol;
|
||||||
|
audio/vnd.dolby.mlp mlp;
|
||||||
|
audio/vnd.dts dts;
|
||||||
|
audio/vnd.dts.hd dtshd;
|
||||||
|
audio/vnd.everad.plj plj;
|
||||||
|
audio/vnd.lucent.voice lvp;
|
||||||
|
audio/vnd.ms-playready.media.pya pya;
|
||||||
|
audio/vnd.nortel.vbk vbk;
|
||||||
|
audio/vnd.nuera.ecelp4800 ecelp4800;
|
||||||
|
audio/vnd.nuera.ecelp7470 ecelp7470;
|
||||||
|
audio/vnd.nuera.ecelp9600 ecelp9600;
|
||||||
|
audio/vnd.presonus.multitrack multitrack;
|
||||||
|
audio/vnd.rip rip;
|
||||||
|
audio/vnd.sealedmedia.softseal.mpeg smp3 smp s1m;
|
||||||
|
font/collection ttc;
|
||||||
|
font/otf otf;
|
||||||
|
font/ttf ttf;
|
||||||
|
font/woff woff;
|
||||||
|
font/woff2 woff2;
|
||||||
|
image/bmp bmp dib;
|
||||||
|
image/cgm cgm;
|
||||||
|
image/dicom-rle drle;
|
||||||
|
image/emf emf;
|
||||||
|
image/fits fits fit fts;
|
||||||
|
image/gif gif;
|
||||||
|
image/ief ief;
|
||||||
|
image/jls jls;
|
||||||
|
image/jp2 jp2 jpg2;
|
||||||
|
image/jpeg jpg jpeg jpe jfif;
|
||||||
|
image/jpm jpm jpgm;
|
||||||
|
image/jpx jpx jpf;
|
||||||
|
image/ktx ktx;
|
||||||
|
image/png png;
|
||||||
|
image/prs.btif btif btf;
|
||||||
|
image/prs.pti pti;
|
||||||
|
image/svg+xml svg svgz;
|
||||||
|
image/t38 t38;
|
||||||
|
image/tiff tiff tif;
|
||||||
|
image/tiff-fx tfx;
|
||||||
|
image/vnd.adobe.photoshop psd;
|
||||||
|
image/vnd.airzip.accelerator.azv azv;
|
||||||
|
image/vnd.dece.graphic uvi uvvi uvg uvvg;
|
||||||
|
image/vnd.djvu djvu djv;
|
||||||
|
image/vnd.dwg dwg;
|
||||||
|
image/vnd.dxf dxf;
|
||||||
|
image/vnd.fastbidsheet fbs;
|
||||||
|
image/vnd.fpx fpx;
|
||||||
|
image/vnd.fst fst;
|
||||||
|
image/vnd.fujixerox.edmics-mmr mmr;
|
||||||
|
image/vnd.fujixerox.edmics-rlc rlc;
|
||||||
|
image/vnd.globalgraphics.pgb pgb;
|
||||||
|
image/vnd.microsoft.icon ico;
|
||||||
|
image/vnd.mozilla.apng apng;
|
||||||
|
image/vnd.ms-modi mdi;
|
||||||
|
image/vnd.radiance hdr rgbe xyze;
|
||||||
|
image/vnd.sealed.png spng spn s1n;
|
||||||
|
image/vnd.sealedmedia.softseal.gif sgif sgi s1g;
|
||||||
|
image/vnd.sealedmedia.softseal.jpg sjpg sjp s1j;
|
||||||
|
image/vnd.tencent.tap tap;
|
||||||
|
image/vnd.valve.source.texture vtf;
|
||||||
|
image/vnd.wap.wbmp wbmp;
|
||||||
|
image/vnd.xiff xif;
|
||||||
|
image/vnd.zbrush.pcx pcx;
|
||||||
|
image/wmf wmf;
|
||||||
|
message/global u8msg;
|
||||||
|
message/global-delivery-status u8dsn;
|
||||||
|
message/global-disposition-notification u8mdn;
|
||||||
|
message/global-headers u8hdr;
|
||||||
|
message/rfc822 eml mail art;
|
||||||
|
model/gltf+json gltf;
|
||||||
|
model/iges igs iges;
|
||||||
|
model/mesh msh mesh silo;
|
||||||
|
model/vnd.collada+xml dae;
|
||||||
|
model/vnd.dwf dwf;
|
||||||
|
model/vnd.gdl gdl gsm win dor lmp rsm msm ism;
|
||||||
|
model/vnd.gtw gtw;
|
||||||
|
model/vnd.moml+xml moml;
|
||||||
|
model/vnd.mts mts;
|
||||||
|
model/vnd.opengex ogex;
|
||||||
|
model/vnd.parasolid.transmit.binary x_b xmt_bin;
|
||||||
|
model/vnd.parasolid.transmit.text x_t xmt_txt;
|
||||||
|
model/vnd.valve.source.compiled-map bsp;
|
||||||
|
model/vnd.vtu vtu;
|
||||||
|
model/vrml wrl vrml;
|
||||||
|
model/x3d+xml x3db;
|
||||||
|
model/x3d-vrml x3dv x3dvz;
|
||||||
|
multipart/vnd.bint.med-plus bmed;
|
||||||
|
multipart/voice-message vpm;
|
||||||
|
text/cache-manifest appcache manifest;
|
||||||
|
text/calendar ics ifb;
|
||||||
|
text/css css;
|
||||||
|
text/csv csv;
|
||||||
|
text/csv-schema csvs;
|
||||||
|
text/dns soa zone;
|
||||||
|
text/html html htm;
|
||||||
|
text/jcr-cnd cnd;
|
||||||
|
text/markdown markdown md;
|
||||||
|
text/mizar miz;
|
||||||
|
text/n3 n3;
|
||||||
|
text/plain txt asc text pm el c h cc hh cxx hxx f90 conf log;
|
||||||
|
text/provenance-notation provn;
|
||||||
|
text/prs.fallenstein.rst rst;
|
||||||
|
text/prs.lines.tag tag dsc;
|
||||||
|
text/richtext rtx;
|
||||||
|
text/sgml sgml sgm;
|
||||||
|
text/tab-separated-values tsv;
|
||||||
|
text/troff t tr roff;
|
||||||
|
text/turtle ttl;
|
||||||
|
text/uri-list uris uri;
|
||||||
|
text/vcard vcf vcard;
|
||||||
|
text/vnd.a a;
|
||||||
|
text/vnd.abc abc;
|
||||||
|
text/vnd.ascii-art ascii;
|
||||||
|
text/vnd.debian.copyright copyright;
|
||||||
|
text/vnd.DMClientScript dms;
|
||||||
|
text/vnd.dvb.subtitle sub;
|
||||||
|
text/vnd.esmertec.theme-descriptor jtd;
|
||||||
|
text/vnd.fly fly;
|
||||||
|
text/vnd.fmi.flexstor flx;
|
||||||
|
text/vnd.graphviz gv dot;
|
||||||
|
text/vnd.in3d.3dml 3dml 3dm;
|
||||||
|
text/vnd.in3d.spot spot spo;
|
||||||
|
text/vnd.ms-mediapackage mpf;
|
||||||
|
text/vnd.net2phone.commcenter.command ccc;
|
||||||
|
text/vnd.si.uricatalogue uric;
|
||||||
|
text/vnd.sun.j2me.app-descriptor jad;
|
||||||
|
text/vnd.trolltech.linguist ts;
|
||||||
|
text/vnd.wap.si si;
|
||||||
|
text/vnd.wap.sl sl;
|
||||||
|
text/vnd.wap.wml wml;
|
||||||
|
text/vnd.wap.wmlscript wmls;
|
||||||
|
text/xml xml xsd rng;
|
||||||
|
text/xml-external-parsed-entity ent;
|
||||||
|
video/3gpp 3gp 3gpp;
|
||||||
|
video/3gpp2 3g2 3gpp2;
|
||||||
|
video/iso.segment m4s;
|
||||||
|
video/mj2 mj2 mjp2;
|
||||||
|
video/mp4 mp4 mpg4 m4v;
|
||||||
|
video/mpeg mpeg mpg mpe m1v m2v;
|
||||||
|
video/ogg ogv;
|
||||||
|
video/quicktime mov qt;
|
||||||
|
video/vnd.dece.hd uvh uvvh;
|
||||||
|
video/vnd.dece.mobile uvm uvvm;
|
||||||
|
video/vnd.dece.mp4 uvu uvvu;
|
||||||
|
video/vnd.dece.pd uvp uvvp;
|
||||||
|
video/vnd.dece.sd uvs uvvs;
|
||||||
|
video/vnd.dece.video uvv uvvv;
|
||||||
|
video/vnd.dvb.file dvb;
|
||||||
|
video/vnd.fvt fvt;
|
||||||
|
video/vnd.mpegurl mxu m4u;
|
||||||
|
video/vnd.ms-playready.media.pyv pyv;
|
||||||
|
video/vnd.nokia.interleaved-multimedia nim;
|
||||||
|
video/vnd.radgamettools.bink bik bk2;
|
||||||
|
video/vnd.radgamettools.smacker smk;
|
||||||
|
video/vnd.sealed.mpeg1 smpg s11;
|
||||||
|
video/vnd.sealed.mpeg4 s14;
|
||||||
|
video/vnd.sealed.swf sswf ssw;
|
||||||
|
video/vnd.sealedmedia.softseal.mov smov smo s1q;
|
||||||
|
video/vnd.vivo viv;
|
||||||
|
application/mac-compactpro cpt;
|
||||||
|
application/metalink+xml metalink;
|
||||||
|
application/owl+xml owx;
|
||||||
|
application/rss+xml rss;
|
||||||
|
application/vnd.android.package-archive apk;
|
||||||
|
application/vnd.oma.dd+xml dd;
|
||||||
|
application/vnd.oma.drm.content dcf;
|
||||||
|
application/vnd.oma.drm.dcf o4a o4v;
|
||||||
|
application/vnd.oma.drm.message dm;
|
||||||
|
application/vnd.oma.drm.rights+wbxml drc;
|
||||||
|
application/vnd.oma.drm.rights+xml dr;
|
||||||
|
application/vnd.sun.xml.calc sxc;
|
||||||
|
application/vnd.sun.xml.calc.template stc;
|
||||||
|
application/vnd.sun.xml.draw sxd;
|
||||||
|
application/vnd.sun.xml.draw.template std;
|
||||||
|
application/vnd.sun.xml.impress sxi;
|
||||||
|
application/vnd.sun.xml.impress.template sti;
|
||||||
|
application/vnd.sun.xml.math sxm;
|
||||||
|
application/vnd.sun.xml.writer sxw;
|
||||||
|
application/vnd.sun.xml.writer.global sxg;
|
||||||
|
application/vnd.sun.xml.writer.template stw;
|
||||||
|
application/vnd.symbian.install sis;
|
||||||
|
application/vnd.wap.mms-message mms;
|
||||||
|
application/x-annodex anx;
|
||||||
|
application/x-bcpio bcpio;
|
||||||
|
application/x-bittorrent torrent;
|
||||||
|
application/x-bzip2 bz2;
|
||||||
|
application/x-cdlink vcd;
|
||||||
|
application/x-chrome-extension crx;
|
||||||
|
application/x-cpio cpio;
|
||||||
|
application/x-csh csh;
|
||||||
|
application/x-director dcr dir dxr;
|
||||||
|
application/x-dvi dvi;
|
||||||
|
application/x-futuresplash spl;
|
||||||
|
application/x-gtar gtar;
|
||||||
|
application/x-hdf hdf;
|
||||||
|
application/x-java-archive jar;
|
||||||
|
application/x-java-jnlp-file jnlp;
|
||||||
|
application/x-java-pack200 pack;
|
||||||
|
application/x-killustrator kil;
|
||||||
|
application/x-latex latex;
|
||||||
|
application/x-netcdf nc cdf;
|
||||||
|
application/x-perl pl;
|
||||||
|
application/x-rpm rpm;
|
||||||
|
application/x-sh sh;
|
||||||
|
application/x-shar shar;
|
||||||
|
application/x-stuffit sit;
|
||||||
|
application/x-sv4cpio sv4cpio;
|
||||||
|
application/x-sv4crc sv4crc;
|
||||||
|
application/x-tar tar;
|
||||||
|
application/x-tcl tcl;
|
||||||
|
application/x-tex tex;
|
||||||
|
application/x-texinfo texinfo texi;
|
||||||
|
application/x-troff-man man 1 2 3 4 5 6 7 8;
|
||||||
|
application/x-troff-me me;
|
||||||
|
application/x-troff-ms ms;
|
||||||
|
application/x-ustar ustar;
|
||||||
|
application/x-wais-source src;
|
||||||
|
application/x-xpinstall xpi;
|
||||||
|
application/x-xspf+xml xspf;
|
||||||
|
application/x-xz xz;
|
||||||
|
audio/midi mid midi kar;
|
||||||
|
audio/x-aiff aif aiff aifc;
|
||||||
|
audio/x-annodex axa;
|
||||||
|
audio/x-flac flac;
|
||||||
|
audio/x-matroska mka;
|
||||||
|
audio/x-mod mod ult uni m15 mtm 669 med;
|
||||||
|
audio/x-mpegurl m3u;
|
||||||
|
audio/x-ms-wax wax;
|
||||||
|
audio/x-ms-wma wma;
|
||||||
|
audio/x-pn-realaudio ram rm;
|
||||||
|
audio/x-realaudio ra;
|
||||||
|
audio/x-s3m s3m;
|
||||||
|
audio/x-stm stm;
|
||||||
|
audio/x-wav wav;
|
||||||
|
chemical/x-xyz xyz;
|
||||||
|
image/webp webp;
|
||||||
|
image/x-cmu-raster ras;
|
||||||
|
image/x-portable-anymap pnm;
|
||||||
|
image/x-portable-bitmap pbm;
|
||||||
|
image/x-portable-graymap pgm;
|
||||||
|
image/x-portable-pixmap ppm;
|
||||||
|
image/x-rgb rgb;
|
||||||
|
image/x-targa tga;
|
||||||
|
image/x-xbitmap xbm;
|
||||||
|
image/x-xpixmap xpm;
|
||||||
|
image/x-xwindowdump xwd;
|
||||||
|
text/html-sandboxed sandboxed;
|
||||||
|
text/x-pod pod;
|
||||||
|
text/x-setext etx;
|
||||||
|
video/webm webm;
|
||||||
|
video/x-annodex axv;
|
||||||
|
video/x-flv flv;
|
||||||
|
video/x-javafx fxm;
|
||||||
|
video/x-matroska mkv;
|
||||||
|
video/x-matroska-3d mk3d;
|
||||||
|
video/x-ms-asf asx;
|
||||||
|
video/x-ms-wm wm;
|
||||||
|
video/x-ms-wmv wmv;
|
||||||
|
video/x-ms-wmx wmx;
|
||||||
|
video/x-ms-wvx wvx;
|
||||||
|
video/x-msvideo avi;
|
||||||
|
video/x-sgi-movie movie;
|
||||||
|
x-conference/x-cooltalk ice;
|
||||||
|
x-epoc/x-sisx-app sisx;
|
||||||
|
}
|
||||||
79
configs/nginx/nginx.conf.mako
Normal file
79
configs/nginx/nginx.conf.mako
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
worker_processes 4;
|
||||||
|
|
||||||
|
# error_log /tmp/kvmd-nginx.error.log;
|
||||||
|
error_log stderr;
|
||||||
|
|
||||||
|
include /usr/share/kvmd/extras/*/nginx.ctx-main.conf;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
use epoll;
|
||||||
|
multi_accept on;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
types_hash_max_size 4096;
|
||||||
|
server_names_hash_bucket_size 128;
|
||||||
|
|
||||||
|
access_log off;
|
||||||
|
|
||||||
|
include /etc/kvmd/nginx/mime-types.conf;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
charset utf-8;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
tcp_nodelay on;
|
||||||
|
tcp_nopush on;
|
||||||
|
keepalive_timeout 10;
|
||||||
|
client_max_body_size 4k;
|
||||||
|
|
||||||
|
client_body_temp_path /tmp/kvmd-nginx/client_body_temp;
|
||||||
|
fastcgi_temp_path /tmp/kvmd-nginx/fastcgi_temp;
|
||||||
|
proxy_temp_path /tmp/kvmd-nginx/proxy_temp;
|
||||||
|
scgi_temp_path /tmp/kvmd-nginx/scgi_temp;
|
||||||
|
uwsgi_temp_path /tmp/kvmd-nginx/uwsgi_temp;
|
||||||
|
|
||||||
|
include /etc/kvmd/nginx/kvmd.ctx-http.conf;
|
||||||
|
include /usr/share/kvmd/extras/*/nginx.ctx-http.conf;
|
||||||
|
|
||||||
|
% if https_enabled:
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen ${http_port};
|
||||||
|
% if ipv6_enabled:
|
||||||
|
listen [::]:${http_port};
|
||||||
|
% endif
|
||||||
|
include /etc/kvmd/nginx/certbot.ctx-server.conf;
|
||||||
|
location / {
|
||||||
|
% if https_port == 443:
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
% else:
|
||||||
|
return 301 https://$host:${https_port}$request_uri;
|
||||||
|
% endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen ${https_port} ssl http2;
|
||||||
|
% if ipv6_enabled:
|
||||||
|
listen [::]:${https_port} ssl http2;
|
||||||
|
% endif
|
||||||
|
include /etc/kvmd/nginx/ssl.conf;
|
||||||
|
include /etc/kvmd/nginx/kvmd.ctx-server.conf;
|
||||||
|
include /usr/share/kvmd/extras/*/nginx.ctx-server.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
% else:
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen ${http_port};
|
||||||
|
% if ipv6_enabled:
|
||||||
|
listen [::]:${http_port};
|
||||||
|
% endif
|
||||||
|
include /etc/kvmd/nginx/certbot.ctx-server.conf;
|
||||||
|
include /etc/kvmd/nginx/kvmd.ctx-server.conf;
|
||||||
|
include /usr/share/kvmd/extras/*/nginx.ctx-server.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
% endif
|
||||||
|
}
|
||||||
5
configs/nginx/ssl.conf
Normal file
5
configs/nginx/ssl.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
|
||||||
|
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
|
||||||
|
ssl_certificate /etc/kvmd/nginx/ssl/server.crt;
|
||||||
|
ssl_certificate_key /etc/kvmd/nginx/ssl/server.key;
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||||
7
configs/os/boot-config/v0-hdmi-rpi2.txt
Normal file
7
configs/os/boot-config/v0-hdmi-rpi2.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743,i2c_pins_28_29=1
|
||||||
8
configs/os/boot-config/v0-hdmi-rpi3.txt
Normal file
8
configs/os/boot-config/v0-hdmi-rpi3.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743
|
||||||
|
dtoverlay=disable-bt
|
||||||
8
configs/os/boot-config/v0-hdmi-zero2w.txt
Normal file
8
configs/os/boot-config/v0-hdmi-zero2w.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=96
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743,i2c_pins_28_29=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
6
configs/os/boot-config/v0-hdmiusb-rpi2.txt
Normal file
6
configs/os/boot-config/v0-hdmiusb-rpi2.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
7
configs/os/boot-config/v0-hdmiusb-rpi3.txt
Normal file
7
configs/os/boot-config/v0-hdmiusb-rpi3.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
7
configs/os/boot-config/v0-hdmiusb-zero2w.txt
Normal file
7
configs/os/boot-config/v0-hdmiusb-zero2w.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
8
configs/os/boot-config/v1-hdmi-rpi2.txt
Normal file
8
configs/os/boot-config/v1-hdmi-rpi2.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743,i2c_pins_28_29=1
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
9
configs/os/boot-config/v1-hdmi-rpi3.txt
Normal file
9
configs/os/boot-config/v1-hdmi-rpi3.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
9
configs/os/boot-config/v1-hdmi-zero2w.txt
Normal file
9
configs/os/boot-config/v1-hdmi-zero2w.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=96
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743,i2c_pins_28_29=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
7
configs/os/boot-config/v1-hdmiusb-rpi2.txt
Normal file
7
configs/os/boot-config/v1-hdmiusb-rpi2.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
8
configs/os/boot-config/v1-hdmiusb-rpi3.txt
Normal file
8
configs/os/boot-config/v1-hdmiusb-rpi3.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
8
configs/os/boot-config/v1-hdmiusb-zero2w.txt
Normal file
8
configs/os/boot-config/v1-hdmiusb-zero2w.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
9
configs/os/boot-config/v2-hdmi-rpi3.txt
Normal file
9
configs/os/boot-config/v2-hdmi-rpi3.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
9
configs/os/boot-config/v2-hdmi-rpi4.txt
Normal file
9
configs/os/boot-config/v2-hdmi-rpi4.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
9
configs/os/boot-config/v2-hdmi-zero2w.txt
Normal file
9
configs/os/boot-config/v2-hdmi-zero2w.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=96
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743,i2c_pins_28_29=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
8
configs/os/boot-config/v2-hdmiusb-rpi4.txt
Normal file
8
configs/os/boot-config/v2-hdmiusb-rpi4.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=16
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
22
configs/os/boot-config/v3-hdmi-rpi4.txt
Normal file
22
configs/os/boot-config/v3-hdmi-rpi4.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=tc358743
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
|
dtparam=act_led_gpio=13
|
||||||
|
|
||||||
|
# HDMI audio capture
|
||||||
|
dtoverlay=tc358743-audio
|
||||||
|
|
||||||
|
# SPI (AUM)
|
||||||
|
dtoverlay=spi0-1cs
|
||||||
|
|
||||||
|
# I2C (display)
|
||||||
|
dtparam=i2c_arm=on
|
||||||
|
|
||||||
|
# Clock
|
||||||
|
dtoverlay=i2c-rtc,pcf8563,wakeup-source
|
||||||
21
configs/os/boot-config/v4mini-hdmi-rpi4.txt
Normal file
21
configs/os/boot-config/v4mini-hdmi-rpi4.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# PiKVM
|
||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
|
||||||
|
hdmi_force_hotplug=1
|
||||||
|
gpu_mem=128
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
|
||||||
|
# USB emulation
|
||||||
|
dtoverlay=dwc2,dr_mode=peripheral
|
||||||
|
|
||||||
|
# Video and audio
|
||||||
|
dtoverlay=tc358743,4lane=1
|
||||||
|
dtoverlay=tc358743-audio
|
||||||
|
|
||||||
|
# I2C (display)
|
||||||
|
dtparam=i2c_arm=on
|
||||||
|
|
||||||
|
# Clock
|
||||||
|
dtoverlay=i2c-rtc,pcf8563,wakeup-source
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user