前言
. 由于个人pc的主板没有ipmi,有时候需要远程折腾一下,折腾崩了还需要重装系统。因此需要一个ipkvm。向日葵控控价格高,还不方便(非开源,不能自己调整),自己手里有树莓派,于是想办法用它实现。github上有个pikvm的镜像可以直接用。但是不喜欢arch的系统,而且还是32位!而且价格还贵3k的价格直接劝退。
. tb发现了国产的 csi转hdmi采集芯片,blikvm也提供了镜像,但是比较老旧,很多默认配置不喜,还是自己安装吧。
一、刻录树莓派官方64位镜像。目前最新的已经基于debian12了。
这里就不多说了,用官方工具吧。
. Raspberry Pi OS Lite
. 内核6.6
. debian 12
. System: 64-bit
二 开始安装blikvm
- 安装依赖Janus:
apt-get install janus-dev libjs-janus-gateway
,后面编译插件,需要用到 dev包。
- 安装依赖ustreamer:
apt-get install ustreamer
- 编译
janus.plugin.ustreamer
插件- 安装依赖
sudo apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsrtp2-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake libnice-dev sudo apt-get install build-essential libspeex-dev libspeexdsp-dev libpulse-dev apt-get install -y libasound2-dev libc-ares-dev apt install -y build-essential libevent-dev libjpeg-dev libbsd-dev vim git
- 编译libjanus_ustreamer.so插件
- 安装依赖
sudo -i
mkdir -p /opt/bin
cd /opt/bin
git clone --depth=1 https://github.com/pikvm/ustreamer
cd ustreamer
sed \
--in-place \
--expression 's|^#include "refcount.h"$|#include "../refcount.h"|g' \
/usr/include/janus/plugins/plugin.h
# 如果编译过程中缺失啥.h文件,自行搜索安装依赖即可。
make WITH_JANUS=1
#编译好了之后,复制so文件到lib
cp janus/libjanus_ustreamer.so /usr/lib/aarch64-linux-gnu/janus/plugins/libjanus_ustreamer.so
# 修改插件配置
vim /etc/janus/janus.plugin.ustreamer.jcfg
#add
memsink: {
object = "demo::ustreamer::h264"
}
-
安装web环境
- 安装php环境:
apt install -y php8.2-bz2 php8.2-cli php8.2-curl php8.2-dev php8.2-mbstring php8.2-xml php8.2-zip php8.2-mysql vim /etc/php/8.2/cli/php.ini # 修改时区, timezone改成中国上海 date.timezone = Asia/Shanghai # 安装pecl扩展 apt install php-pear pecl install http://pecl.php.net/get/swoole-5.0.3.tgz #all is yes echo "extension=swoole.so" > /etc/php/8.2/cli/conf.d/swoole.ini pecl install inotify echo "extension=inotify.so" > /etc/php/8.2/cli/conf.d/inotify.ini
- nodejs环境
- 安装php环境:
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - &&\
apt-get install -y nodejs
- 安装main程序
- 编译 wiringpi
cd /opt/bin # install wiringpi #need to enable I2C on hardware(use raspi-config) #git clone https://github.com/WiringPi/WiringPi.git --depth 1 # build the package #./build debian #mv debian-template/wiringpi-3.2.deb . wget https://github.com/WiringPi/WiringPi/releases/download/3.2/wiringpi_3.2_arm64.deb sudo apt install ./wiringpi_3.2_arm64.deb
- 安装 Adafruit-SSD1306
# install Adafruit-SSD1306 sudo apt install -y python3-pip pipx pipx ensurepath pipx install adafruit-circuitpython-ssd1306 --include-deps # 或者 pip install --break-system-packages adafruit-circuitpython-ssd1306
- 安装blikvm
cd /opt/bin git clone https://github.com/ThomasVon2021/blikvm.git --depth 1 cd blikvm git submodule update --init --recursive cd src make RPI=1 SSD1306=1 # 编译前端页面(不需要执行) cd /opt/bin/blikvm/package/blikvm-webclient npm install npm run build # 安装最新的blikvm服务 cd /opt/bin wget https://mirror.ghproxy.com/https://github.com/ThomasVon2021/blikvm/releases/download/v1.4.0/release.tar.gz tar -zxvf release.tar.gz cd release python3 install_release.py --releasepath=./
- 手动安装kvmd服务(不需要执行)
# 如果你不想直接安装release,可以手动安装各个包(非必须) # Install the main controller service cd /opt/bin/blikvm/package/kvmd-main ./install-kvmd-main.sh # Install the ustreamer service cd /opt/bin/blikvm/package/ustreamer ./install-ustreamer.sh # Install the HID service cd /opt/bin/blikvm/package/kvmd-hid ./install-kvmd-hid.sh # Install the web service cd /opt/bin/blikvm/package/kvmd-web ./install-kvmd-web.sh # Install the MSD service cd /opt/bin/blikvm/package/kvmd-msd ./install-kvmd-msd.sh # Install the OLED service cd /opt/bin/blikvm/package/kvmd-oled ./install-kvmd-oled.sh # Install the fan service cd /opt/bin/blikvm/package/kvmd-fan ./install-kvmd-fan.sh # Copy the package.json file cp /opt/bin/blikvm/src/config/package.json /usr/bin/blikvm
- 修改树莓派的overlays配置
vim /boot/firmware/config.txt
# 在 底部的 [all]下面添加下面内容
dtoverlay=tc358743,4lane=1
dtoverlay=tc358743-audio
dtoverlay=dwc2,dr_mode=peripheral
dtoverlay=i2c-rtc,pcf8563
- 重启你的树莓派
reboot