GithubHelp home page GithubHelp logo

thomasvon2021 / blikvm Goto Github PK

View Code? Open in Web Editor NEW
327.0 12.0 30.0 88.24 MB

Open and cost-effective "KVM-over-IP". BliKVM comes in 4 different models, v1 CM4, v2 PCIe, v3 HAT and v4 Allwinner, based on Raspberry Pi and Allwinner SoC.

Home Page: https://thomasvon2021.github.io/blikvm/

License: GNU General Public License v3.0

Shell 6.19% Python 0.96% Makefile 0.20% C 61.32% JavaScript 26.74% HTML 3.89% CSS 0.70%
pikvm tinypilot raspberry pi overip atx kvm hdmi ipmi vnc

blikvm's People

Contributors

cool-doge avatar devzwf avatar freeyoung avatar frostwalk avatar harlong avatar imdreamrunner avatar innercalmer avatar melroy89 avatar nicrame avatar srepac avatar thesuperzapper avatar thomasvon2021 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blikvm's Issues

support dvorak keyboard layout

Is there any way to remap the keyboard on the keycodes that are sent to the host? My local machine is Dvorak but the BliKVM sends Qwerty keycodes and doesn't respect the operating system's input setting.

Every other application on the computer correctly 'translates' the dvorak input into the intended characters. BliKVM ignores the OS keymap and I assume sends keycodes directly. If I set the destination computer to Dvorak, there wouldn't be any issue.

Wake-On-Lan feature

Hi!

as I can see there is wake-on-lan feature mentioned. So is it possible to wake connected pc and how? or it's about wakig kvm itself?

OLED script permissions wrong

The shell script to fork the OLED python script doesn't have execute permissions, so systemd fails. There is a way to do exactly what the shell script does via native systemd units as an alternative.

OLED IP command broken

There doesn't appear to be a -I argument to hostname on Arch. ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' will do what you want though.

[Feature Request] show Pi status information in web interface

a great additional feature would be to show the status information that is shown on the front OLED and also the fan status directly on the blikvm/pikvm web interface directly.
So in that case you have the health status of the system also visible while looking at other systems.

BR
Thomas

HDMI switch issue

i'm running blikvm hat with hdmi kvm switch. but no control from blikvm gui available. also there is no ttyUSB0 device appearing once control usb cable connected. is there any tricks like special usb cable or smthg else?

switch working well with remote device and using hardware buttons on it. "link" and "power" led's is on once cables connected.

image

Include copyright notice for third-party code

./package/kvmd-hid/enable-gadget.sh seems to be derived from TinyPilot's copyrighted code here:

https://github.com/tiny-pilot/ansible-role-tinypilot/blob/master/files/init-usb-gadget

./package/kvmd-hid/disable_gadget.sh seems to be derived from TinyPilot's copyrighted code here:

https://github.com/tiny-pilot/ansible-role-tinypilot/blob/master/files/remove-usb-gadget

TinyPilot's code is released under the MIT license, so you're welcome to include it, but the license requires preserving the copyright notice and license.

You can get back into compliance with the license this by copying the text from TinyPilot's license as a header at the top of each derived file or by including TinyPilot's license in a file called NOTICE at the root of the repo.

[Enhancement] Move the keyboard a bit up (y-axis)

With the new keyboard layout (with marcos) being a bit bigger (in height), the keyboard is not showing up fully on my screen by default:

image

Move the default position a bit higher (y-axis).. So it should look something like this by default instead:

image

[Enhancement] Strings for localization

Can't find some strings for localization web UI (third_lib/Multi_language/en.js)

  1. Text under username and button text
    image

  2. Text for popup balloon after login
    image

  3. Text for popup balloon after no update found
    image

  4. Button text on warning window for Reset ATX
    image

  5. Text for titles "Version" and "Build", button text for current version Bli KVM
    image

  6. Text for new popup with current temp and button text
    image

blikvm crash with intel nuc 12 pro

Trying to run blikvm (edid for 1080p50hz) with my nuc 12 pro leads to blikvm restart while nuc shutsdown. More over, nuc cannot be started after that with power button. Only psu disconnection helps. Nothing in logs. Sametime blikvm works perfectly fine with other my pc.

UX Improvement: Keyboard Macros

Have a way on the onscreen keyboard and/or on the left side menu to do pre-defined macros, ideally customizable by the end user. Things like pressing Control + Alt + Delete or FN+ F5 for swapping screen outputs.

Where ist the override.yaml in BliKVM v4 Allwinner

We have recently ordered 3 BliKVMv4 Allwinner and need to change the USB-Mode to disable mass storage in order to work with Dell Desktop BIOS. Where in the filesystem should we place or can we find the override.yaml to add the following settings:

kvmd:
hid:
mouse_alt:
device: /dev/kvmd-hid-mouse-alt
msd:
type: disabled

Thanks a lot!

Florian

[Feature request] ATX module/library/script

Per our conversation, in order to support ATX with pikvm software on blikvm v4 hardware, we need something similar to kvmd-msd.sh to support ATX controls.

I have been able to run pikvm software on the blikvm v4 hardware and in order to have MSD support, I'm using the built-in kvmd-msd.sh script from blikvm to make/connect/disconnect the ventoy image to the target system by running the kvmd-msd.sh script in ssh/web terminal.

I am requesting something similar to support ATX as the v4 hardware does not use the same GPIO pins for ATX support in pikvm.

[Enhancement][1.2.8] Web UI translation issues

image

  1. Button and warning messages on login form are not translated

image
2. Buttons on reset confirmation form are not translated

image
3. Button on version information form is not translated

  1. In the /opt/bin/blikvm/third_lib/Multi_language there is a French translation, but it's unavailable in language settings.
  2. I have sent you a russian translation, but it's too yet not included

Save Video settings when refreshing UI.

in the settings when I choose 16:9 (or another ratio) to match my screen - this setting is reset if there is a timeout (sleeping tab) or you refresh the UI for any reason.
As you are not switching Hosts, we should be able to save these settings so that they stay on refreshes/reboots.

save settings for all settings, or persist the video settings would be nice!

[Feature] File transfer

Hi,
It is possible to add one feature to transfer common files (maybe with max. filesize) from client computer to kvm/server computer and vice-versa.
I am looking for files with avg. size of 5MB.
I think that sometime you need to transfer some files or softwares you need to install on machine and this feature is very usefull.
Thank you !

Fan Issue

ERROR --- Can't read fan state: Cannot connect to unix socket /run/kvmd/fan.sock

[Feature Request] Support Relative Mouse Mode

When trying to use a BliKVM v4 connected to a Hikvision NVR I can see the video output of the NVR and while the mouse/keyboard works, the local client mouse position is totally off compared to the remote pointer. It's only correct when the local mouse is positioned to the very top-right corner of the screen.

I note that PiKVM docs talk about mouse modes (https://docs.pikvm.org/mouse/), but I cannot see any mention of that in the BliKVM v4 docs. I've ssh'ed into the KVM but /etc/kvmd doesn't exist.

Tried in Firefox and Chrome. Same problem. Also tried different aspect ratio settings.

First screenshot shows the local and remote pointers closely aligned in the top-right. Second screenshot shows local cursor near the bottom-left, yet remote cursor is in the middle of the screen.

Screenshot from 2023-11-15 13-32-04

Screenshot from 2023-11-15 13-32-14

I asked on the BliKVM Discord if this feature was available and it was explained to me that v4 currently doesn't support this feature.

Can relative mouse mode be added to the v4 device OS?

[Feature Request] Support for using TLS/HTTPS

Hello,

Adding support for using HTTPS would be great.

I use NGINX as a reverse proxy and entrypoint of my house to the world, only available on port 443 for everything.

I tried to use it but then got this error when try to login:
image

Went ahead and opened the port 80 and was able to login but would would also need to open the port 8188 (would use unsecure WebSockets), I'm not willing to keep unsecure ports open, so my solution is just use ZeroTier and access through it on HTTP.

Thank you

Multiple SSID BLIKVM PCIe

connect to WIFI A and ping defined monitoring IP example 8.8.8.8, BLIKVM should keep the WIFI connection connected until defined quality parameters, example if we get 50% Packet loss, BLIKVM should disconnect SSID A and will connect to SSID B, and again will check quality of internet, Example if defined quality threshold is 50% , If 50% packets are lost from total sent packets BLIKVM should connect to next SSID C . We should be able to define 2 SSID or 10 SSID in the config file
The purpose of the above requirement is to keep the BLIKVM always online, If any further questions please send a message

Request to Expand Partition on both eMMC and SD Card

Hello,

I recently acquired a cm4 pcie blicube blikvm and successfully installed blikvm on the eMMC of the cm4. Additionally, I inserted an SD card into the device to increase the available storage capacity.

Following the instructions provided in the expanding the file system guide, I ran the script to expand the file system. However, I noticed that the expansion only occurred on the eMMC and not on the inserted SD card.

I would like to request assistance in expanding the partition on both the eMMC and the available SD card. Could you please guide me on how to achieve this? Thank you!

Upgrading from 2.7.1 yields an error

Current version (based on the UI):

Version: 2.7.1
Build: 2023-02-26 12:29:31

The UI reports that an update is available and fair enough, when I look at the github releases I see that indeed there is a newer version. The update however appears to be hanging or not doing anything from the UI perspective so I established an SSH connection to the unit and ran:

rw
sudo -i
python3 /opt/bin/blikvm/script/update.py

which yields the following error:

bash: install-kvmd-oled.sh: No such file or directory
Traceback (most recent call last):
  File "/opt/bin/blikvm/script/install_release.py", line 66, in <module>
    main()
  File "/opt/bin/blikvm/script/install_release.py", line 57, in main
    subprocess.check_output(cmd, shell = True, cwd=gArgs.releasepath )
  File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'mount -o remount,rw / && mount -o remount,rw /boot && bash install-kvmd-main.sh && bash install-ustreamer.sh && bash install-kvmd-oled.sh && bash install-kvmd-hid.sh         && bash install-kvmd-web.sh && cp package.json /usr/bin/kvm_json/package.json &&  mount -o remount,ro / && mount -o remount,ro /boot' returned non-zero exit status 127.
Traceback (most recent call last):
  File "/opt/bin/blikvm/script/update.py", line 88, in <module>
    main()
  File "/opt/bin/blikvm/script/update.py", line 70, in main
    output = subprocess.check_output(cmd, shell = True, cwd=sh_path)
  File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'python3 install_release.py' returned non-zero exit status 1.

fair enough, when I run an ls -l on /tmp/kvm_update/release/ I get:

root@blikvm(rw):/tmp/kvm_update/release# ls -lah
total 2.4M
drwxr-xr-x 3 root root  520 May  7  2023 .
drwxr-xr-x 3 root root  120 Feb  6 01:22 ..
-rw-r--r-- 1 root root   45 May  7  2023 admin.ini
-rwxr-xr-x 1 root root  728 May  7  2023 config.ini
-rwxr-xr-x 1 root root 2.7K May  7  2023 disable-gadget.sh
-rwxr-xr-x 1 root root  528 May  7  2023 edid.txt
-rw-r--r-- 1 root root 6.9K May  7  2023 enable-gadget.sh
-rwxr-xr-x 1 root root  382 May  7  2023 install-kvmd-hid.sh
-rwxr-xr-x 1 root root  519 May  7  2023 install-kvmd-main.sh
-rwxr-xr-x 1 root root  403 May  7  2023 install-kvmd-msd.sh
-rwxr-xr-x 1 root root  768 May  7  2023 install-kvmd-web.sh
-rwxr-xr-x 1 root root  675 May  7  2023 install-ustreamer.sh
-rwxr-xr-x 1 root root  271 May  7  2023 kvmd-hid.service
-rwxr-xr-x 1 root root 227K May  7  2023 kvmd-main
-rwxr-xr-x 1 root root  304 May  7  2023 kvmd-main.service
-rw-r--r-- 1 root root 3.6K May  7  2023 kvmd-msd.sh
-rwxr-xr-x 1 root root  289 May  7  2023 kvmd-video.service
-rwxr-xr-x 1 root root  570 May  7  2023 kvmd-video.sh
-rwxr-xr-x 1 root root  285 May  7  2023 kvmd-web.service
-rwxr-xr-x 1 root root  108 May  7  2023 kvmd-web.sh
-rw-r--r-- 1 root root 1.7M May  7  2023 kvm-link
-rwxr-xr-x 1 root root  104 May  7  2023 package.json
-rw-r--r-- 1 root root  791 May  7  2023 readme.md
-rw-r--r-- 1 root root 1.7K May  7  2023 README.md
-rwxr-xr-x 1 root root 409K May  7  2023 ustreamer.bin
drwxr-xr-x 7 root root  380 May  7  2023 ventoy-1.0.88

Is this a bug with how the latest version is packaged or are we missing a file?

增加关闭oled开关,或者调整显示间隔防止烧屏

oled使用久了会烧屏,最好增加oled关闭开关,同时为了避免用户忘记ip,关闭逻辑最好改为每次机器上电屏幕显示一定时常,显示完才判断开关状态,如果为关闭则不显示,为开则继续显示。
这样要是用户忘记IP信息至少通过简单重新上电再次获取信息,而无需重刷系统或者登陆路由器查看。

FAN is getting different speed setting every second

Hi Team,

I just recently found from the log, that the FAN speed is set multiple times within just a second.
Maybe that could be changed, so maybe just every 5min or 10min the temperature is checked and the FAN speed is adjusted.
I wouldn't think that this would be a risk for the CPU. But it would probably increase the FAN's lifetime.

Or I think maybe the temperature is checked every minute and if the CPU temp raises like 6 or 7 Celsius(as there is always some small mismatch of like 1Celsius when reading it 2 times one after the other) then adjust the FAN speed

Example from my log:

[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 45.764
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 28 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 45.764
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 28 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 48.199
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 40 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.738
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 33 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 47.712
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 38 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 45.764
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 28 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 45.764
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 28 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.738
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 33 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 45.277
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 26 %
[2023-10-16 10:37:05 kvmd-fan.service] --- Temp: 46.251
[2023-10-16 10:37:05 kvmd-fan.service] --- set_speed: 31 %

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.