mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
更新脚本
This commit is contained in:
parent
039d4c6946
commit
445d37383a
151
install.sh
151
install.sh
@ -1,9 +1,29 @@
|
|||||||
PYVER=$(python3 -V)
|
#!/bin/bash
|
||||||
ARCH=$(uname -m)
|
|
||||||
CURRENTWD=$PWD
|
|
||||||
echo $PYVER
|
|
||||||
echo $ARCH
|
|
||||||
|
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
MACHINE=$(uname -o -s -r -m)
|
||||||
|
PYVER=$(python3 -V)
|
||||||
|
CURRENTWD=$PWD
|
||||||
|
FIND_FILE="/etc/sudoers"
|
||||||
|
FIND_STR="short_press_gpio420"
|
||||||
|
|
||||||
|
|
||||||
|
#检查架构和Python版本
|
||||||
|
check-environment(){
|
||||||
|
echo -e "\e[0;32m设备名称:$MACHINE\nPython版本:$PYVER\e[0;37m"
|
||||||
|
if [ARCH!="armv7l"];then
|
||||||
|
echo -e "\e[0;31m暂不支持$MACHINE架构以外的设备!\n退出脚本!\e[0;37m"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [[ "$PYVER" != *"3.10"* && $(which python3.10) != *"python"* ]]; then
|
||||||
|
echo -e "\e[0;31m您似乎没有安装 Python 3.10!\n退出脚本!\e[0;37m"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
update-alternative
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#使用Python3.10版本
|
||||||
update-alternative(){
|
update-alternative(){
|
||||||
counter=2
|
counter=2
|
||||||
for i in {1..9}
|
for i in {1..9}
|
||||||
@ -17,69 +37,110 @@ update-alternative(){
|
|||||||
done
|
done
|
||||||
update-alternatives --install /usr/bin/python3 python3 $(which python3.10) 1
|
update-alternatives --install /usr/bin/python3 python3 $(which python3.10) 1
|
||||||
update-alternatives --set python3 $(which python3.10)
|
update-alternatives --set python3 $(which python3.10)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#删除SSL证书
|
||||||
if [[ "$PYVER" != *"3.10"* && $(which python3.10) != *"python"* ]]; then
|
delete-ssl(){
|
||||||
echo "您似乎没有安装 Python 3.10!"
|
if [ -f "/etc/kvmd/nginx/ssl/server.crt" ] || [ -f "/etc/kvmd/nginx/ssl/server.key" ]; then
|
||||||
exit
|
echo -e "\e[0;30m正在删除SSL证书!\e[0;37m"
|
||||||
else
|
rm /etc/kvmd/nginx/ssl/server.crt
|
||||||
update-alternative
|
rm /etc/kvmd/nginx/ssl/server.key
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
cp ./patch/meson8b-onecloud.dtb /boot/dtb/meson8b-onecloud.dtb && echo "设备树文件覆盖成功!"
|
#修改设备树文件
|
||||||
|
change-device-tree(){
|
||||||
|
cp -f./patch/meson8b-onecloud.dtb /boot/dtb/meson8b-onecloud.dtb
|
||||||
|
echo "设备树文件覆盖成功!"
|
||||||
|
}
|
||||||
|
|
||||||
if [ -f "./installed.txt" ]; then
|
#覆盖引导分区
|
||||||
echo "检测到存在安装One-KVM记录!"
|
override-uboot(){
|
||||||
else
|
echo -e "\e[0;31m是否选择跳过按下重置键时的玩客云USB线刷检测?(\e[1;31mY/\e[1;32mN\e[0;31m)\e[0;37m"
|
||||||
#此为危险操作,会覆盖MBR分区,请在没有自行分区前执行,否则会丢失分区数据系统无法启动!
|
|
||||||
gzip -dc ./patch/Boot_SkipUSBBurning.gz | dd of=/dev/mmcblk1 && echo "覆盖引导成功!"
|
|
||||||
echo kvmd ALL=\(ALL\) NOPASSWD: /usr/bin/long_press_gpio420,/usr/bin/short_press_gpio420 >> /etc/sudoers
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f "./installed.txt" ]; then
|
|
||||||
echo "您似乎已经安装fruity-pikvm_0.2_armhf.deb,是否覆盖安装,此操作不会影响后续文件修改操作(Y/N)?"
|
|
||||||
read USERYN
|
read USERYN
|
||||||
case $USERYN in
|
case $USERYN in
|
||||||
N | n)
|
N | n)
|
||||||
echo "跳过安装fruity-pikvm_0.2_armhf.deb!"
|
gzip -dc ./patch/Boot_SkipUSBBurning.gz | dd of=/dev/mmcblk1
|
||||||
|
echo -e "\e[0;30m覆盖引导成功!\e[0;37m"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
rm /etc/kvmd/nginx/ssl/server.crt
|
echo -e "\e[0;30m已跳过覆盖UBoot分区!\e[0;37m"
|
||||||
rm /etc/kvmd/nginx/ssl/server.key
|
|
||||||
echo "正在安装PiKVM......"
|
|
||||||
dpkg -i ./fruity-pikvm_0.2_armhf.deb >> ./log.txt && systemctl enable kvmd-vnc && echo "PiKVM安装成功!"
|
|
||||||
cp ./patch/chinese.patch /usr/share/kvmd/web/ && cd /usr/share/kvmd/web/ && patch -s -p0 < chinese.patch
|
|
||||||
cd $CURRENTWD
|
|
||||||
cp ./patch/3.198msd.patch /usr/local/lib/python3.10/kvmd-packages/ && cd /usr/local/lib/python3.10/kvmd-packages/ && patch -s -p0 < 3.198msd.patch
|
|
||||||
echo "补丁应用成功!"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
}
|
||||||
|
|
||||||
|
#安装依赖软件
|
||||||
|
install-dependencies(){
|
||||||
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) --source mirrors.tuna.tsinghua.edu.cn --updata-software false --web-protocol http && echo "换源成功!"
|
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) --source mirrors.tuna.tsinghua.edu.cn --updata-software false --web-protocol http && echo "换源成功!"
|
||||||
echo "正在安装依赖软件nginx tesseract-ocr tesseract-ocr-eng janus libevent-dev libgpiod-dev tesseract-ocr-chi-sim......"
|
echo "正在安装依赖软件nginx tesseract-ocr tesseract-ocr-eng janus libevent-dev libgpiod-dev tesseract-ocr-chi-sim......"
|
||||||
apt install -y nginx tesseract-ocr tesseract-ocr-eng janus libevent-dev libgpiod-dev tesseract-ocr-chi-sim >> ./log.txt
|
apt install -y nginx tesseract-ocr tesseract-ocr-eng janus libevent-dev libgpiod-dev tesseract-ocr-chi-sim >> ./log.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
#安装PiKVM
|
||||||
|
install-pikvm(){
|
||||||
|
delete-ssl
|
||||||
echo "正在安装PiKVM......"
|
echo "正在安装PiKVM......"
|
||||||
dpkg -i ./fruity-pikvm_0.2_armhf.deb >> ./log.txt && systemctl enable kvmd-vnc && echo "PiKVM安装成功!"
|
dpkg -i ./fruity-pikvm_0.2_armhf.deb >> ./log.txt
|
||||||
|
systemctl enable kvmd-vnc
|
||||||
|
echo "PiKVM安装成功!"
|
||||||
cd $CURRENTWD
|
cd $CURRENTWD
|
||||||
cp ./patch/chinese.patch /usr/share/kvmd/web/ && cd /usr/share/kvmd/web/ && patch -s -p0 < chinese.patch
|
cp -f ./patch/long_press_gpio420 /usr/bin && cp -f ./patch/short_press_gpio420 /usr/bin
|
||||||
|
chmod +x /usr/bin/long_press_gpio420 && chmod +x /usr/bin/short_press_gpio420
|
||||||
|
echo "GPIO-420脚本移动成功!"
|
||||||
|
#此处还要屏蔽hw.py温度获取报错
|
||||||
|
cp -f ./patch/hw.py /usr/local/lib/python3.10/kvmd-packages/kvmd/apps/kvmd/info/
|
||||||
|
chmod +x /usr/local/lib/python3.10/kvmd-packages/kvmd/apps/kvmd/info/hw.py
|
||||||
|
cp -f ./config/main.yaml /etc/kvmd/ && cp -f ./config/override.yaml /etc/kvmd/
|
||||||
|
echo "配置文件替换成功!"
|
||||||
|
kvmd -m >> ./log.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
#应用补丁
|
||||||
|
add-patches(){
|
||||||
|
if [ -f `grep -c "$FIND_STR" $FIND_FILE` -ne '1' ]; then
|
||||||
|
echo kvmd ALL=\(ALL\) NOPASSWD: /usr/bin/long_press_gpio420,/usr/bin/short_press_gpio420 >> /etc/sudoers
|
||||||
|
fi
|
||||||
|
if[ ! -f /usr/local/lib/python3.10/kvmd-packages/3.198msd.patch ];then
|
||||||
cd $CURRENTWD
|
cd $CURRENTWD
|
||||||
cp ./patch/3.198msd.patch /usr/local/lib/python3.10/kvmd-packages/ && cd /usr/local/lib/python3.10/kvmd-packages/ && patch -s -p0 < 3.198msd.patch
|
cp ./patch/3.198msd.patch /usr/local/lib/python3.10/kvmd-packages/ && cd /usr/local/lib/python3.10/kvmd-packages/ && patch -s -p0 < 3.198msd.patch
|
||||||
echo "补丁应用成功!"
|
echo "MSD补丁应用成功!"
|
||||||
fi
|
fi
|
||||||
|
if[ ! -f /usr/local/lib/python3.10/kvmd-packages/chinese.patch ];then
|
||||||
cd $CURRENTWD && cp -f ./patch/long_press_gpio420 /usr/bin && cp -f ./patch/short_press_gpio420 /usr/bin && chmod +x /usr/bin/long_press_gpio420 && chmod +x /usr/bin/short_press_gpio420 && echo "GPIO-420脚本移动成功!"
|
cd $CURRENTWD
|
||||||
cp -f ./patch/hw.py /usr/local/lib/python3.10/kvmd-packages/kvmd/apps/kvmd/info/ && chmod +x /usr/local/lib/python3.10/kvmd-packages/kvmd/apps/kvmd/info/hw.py
|
cp./patch/chinese.patch /usr/share/kvmd/web/ && cd /usr/share/kvmd/web/ && patch -s -p0 < chinese.patch
|
||||||
cp -f ./config/main.yaml /etc/kvmd/ && cp -f ./config/override.yaml /etc/kvmd/ && echo "文件修改成功!"
|
echo "中文补丁应用成功!"
|
||||||
|
else
|
||||||
|
#此处还要先恢复中文补丁再应用新补丁
|
||||||
|
echo "中文补丁应用成功!"
|
||||||
|
fi
|
||||||
|
echo -e "ENABLE=true\nMIN_SPEED=1536000\nMAX_SPEED=1536000\nGOVERNOR=performance" > /etc/default/cpufrequtils
|
||||||
|
service cpufrequtils restart
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
kvmd -m >> ./log.txt
|
show-info(){
|
||||||
echo "One-KVM V0.4" >> installed.txt
|
echo "One-KVM V0.5" >> installed.txt
|
||||||
ipaddr=`ip addr | grep "scope global" | awk '{print $2}' |awk -F/ '{print $1}'`
|
ipaddr=`ip addr | grep "scope global" | awk '{print $2}' |awk -F/ '{print $1}'`
|
||||||
echo -e "内网访问地址为:\nhttp://$ipaddr\nhttps://$ipaddr"
|
echo -e "内网访问地址为:\nhttp://$ipaddr\nhttps://$ipaddr"
|
||||||
echo "机器已执行重启命令,请手动给玩客云重新上电(拔插电源),然后就可以开始使用One-KVM了!"
|
echo "机器已重启,等待10秒然后拔插电源,One-KVM就安装完成了!"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -f "./installed.txt" ]; then
|
||||||
|
echo "\e[0;31m检测到存在安装One-KVM记录!"
|
||||||
|
else
|
||||||
|
#此为危险操作,会覆盖MBR分区,请在没有自行分区前执行,否则会丢失分区数据系统无法启动!
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
check-environment
|
||||||
|
override-uboot
|
||||||
|
change-device-tree
|
||||||
|
install-dependencies
|
||||||
|
install-pikvm
|
||||||
|
add-patches
|
||||||
|
show-info
|
||||||
reboot
|
reboot
|
||||||
Loading…
x
Reference in New Issue
Block a user