1. 构建python 3.12
cd /tmp/
wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz
tar -xzvf Python-3.12.2.tgz
cd Python-3.12.2/
apt-get install -fy --allow-downgrades make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev tk-dev libffi-dev
./configure --enable-optimizations
make -j 32
sudo make altinstall
sudo ln -s /usr/local/bin/python3.12 /usr/bin/python
sudo ln -s /usr/local/bin/python3/pip3.12 /usr/bin/pip
2.通过pip构建 kvmd工作环境
sudo apt-get update
sudo apt-get install libsystemd-dev
python -m pip install pygments
python -m pip install aiofiles
python -m pip install yaml
python -m pip install pyyaml
python -m pip install pyotp
python -m pip install aiohttp
python -m pip install setproctitle
python -m pip install dbus_next
python -m pip install systemd
python -m pip install systemd-python
python -m pip install pillow
python -m pip install python3-xlib
python -m pip install zstandard
python -m pip install async_lru
python -m pip install passlib
python -m pip install pyftdi
python -m pip install gpiod
python -m pip install Mako
python -m pip install psutil
3.复制PI kvm相关库到系统
获得Python的LIB目录 python -m site
下载wget -c https://github.com/pikvm/kvmd/archive/v4.2.tar.gz KVMD源代码
tar -zxvf v4.2.tar.gz
4.单独编译 ustreamer
sudo apt-get update
apt-get install build-essential libevent-dev libjpeg-dev libbsd-dev libjansson-dev
apt-get install libgpiod-dev libopus-dev libasound2-dev libspeexdsp-dev
apt-get install libdrm-dev
python -m pip install setuptools
python -m pip install build
$ git clone --depth=1 https://github.com/pikvm/ustreamer
$ cd ustreamer
$ make WITH_GPIO=1 WITH_SYSTEMD=1 WITH_PYTHON=1 WITH_JANUS=1
$ make WITH_GPIO=1 WITH_SYSTEMD=1 WITH_PYTHON=1 WITH_JANUS=1 install
检查ustreamer 属性 +x
需要Python
_options="WITH_V4P=1 WITH_GPIO=1 WITH_SYSTEMD=1 WITH_PYTHON=1"
需要Janus
options="WITH_V4P=1 WITH_GPIO=1 WITH_SYSTEMD=1 WITH_PYTHON=1 WITH_JANUS=1"
安装
PREFIX=/usr install
5.单独编译janus-gateway-pikvm
wget https://github.com/meetecho/janus-gateway/archive/99e133bc00cb910186a34b4e2083821cb6c111fc.tar.gz
wget https://webrtc.github.io/adapter/adapter-latest.js
wget https://github.com/pikvm/packages/blob/master/packages/janus-gateway-pikvm/0001-unmute-hack.patch
patch -p1 -i ../0001-unmute-hack.patch
sudo apt-get update
sudo apt-get install libjansson-dev libnice-dev libwebsockets-dev libsrtp2-dev libglib2.0-dev libconfig++-dev autoconf pkg-config autotools-dev automake libtool gengetopt
手动修改 patch -p1 -i ../0001-unmute-hack.patch
./autogen.sh
./configure --prefix=/usr --sysconfdir=/etc --disable-docs --disable-data-channels --disable-turn-rest-api --disable-all-plugins --disable-all-loggers --disable-all-transports --enable-websockets --disable-sample-event-handler --disable-websockets-event-handler --disable-gelf-event-handler
make
make install
mkdir /usr/lib/janus/loggers
sed -i -e 's|^#include "refcount.h"$|#include "../refcount.h"|g' "/usr/include/janus/plugins/plugin.h"
sed -i -e 's|^function Janus(|export function Janus(|g' "/usr/share/janus/javascript/janus.js"
sed -i '1s|^|import "./adapter.js"\n|' "/usr/share/janus/javascript/janus.js"
cp ../adapter-latest.js "/usr/share/janus/javascript/adapter.js"
6.单读编译nginx-1.27.0
wget -c http://nginx.org/download/nginx-1.27.0.tar.gz
tar -zxvf nginx-1.27.0.tar.gz
可以查看有哪些可供选的模块./configure --help
./configure --prefix=/usr --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module
./configure --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module
make
make install
检查HTTP2功能模块方法 strings /usr/local/nginx/sbin/nginx | grep http2
6.单独编译TTYD
sudo apt-get update
sudo apt-get install -y build-essential cmake git libjson-c-dev libwebsockets-dev
git clone --depth=1 https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install
7.PIKVM所需要库版本对照
python>=3.12
libgpiod>=2.1
v4l-utils>=1.22.1-1
nginx-mainline>=1.25.1
janus-gateway-pikvm>=0.14.2-3
ustreamer>=6.11
systemd>=248.3-2
zstd>=1.5.1-2.1
ttyd>=1.7.7
8.编译 kvmd-fan
apt-get update
apt-get install libmicrohttpd-dev doxygen
编译安装iniparser
git clone https://github.com/ndevilla/iniparser
cd iniparser
mkdir build
cd build
cmake ..
make all
在MAKEFILE 里关闭-lwiringPi
make PREFIX=/usr install
8587

被折叠的 条评论
为什么被折叠?



