mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
整合包适配我家云、虚拟机和中兴 B863AV3.2M
This commit is contained in:
parent
6707cb9932
commit
f5bebbc43f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
/pkg/
|
/pkg/
|
||||||
/src/**/*.img
|
/src/**/*.img
|
||||||
|
/src/tmp
|
||||||
/site/
|
/site/
|
||||||
/dist/
|
/dist/
|
||||||
/kvmd.egg-info/
|
/kvmd.egg-info/
|
||||||
|
|||||||
@ -1,32 +1,18 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
SRCPATH=./src
|
SRCPATH=/mnt/sda1/src
|
||||||
|
BOOTFS=/tmp/bootfs
|
||||||
ROOTFS=/tmp/rootfs
|
ROOTFS=/tmp/rootfs
|
||||||
|
OUTPUTDIR=/mnt/sda1/output
|
||||||
LOOPDEV=/dev/loop10
|
LOOPDEV=/dev/loop10
|
||||||
DATE=241004
|
DATE=241004
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
|
|
||||||
mount_onecloud_rootfs() {
|
write_meta() {
|
||||||
$SRCPATH/image/onecloud/AmlImg_v0.3.1_linux_amd64 unpack $SRCPATH/image/onecloud/Armbian_by-SilentWind_24.5.0-trunk_Onecloud_bookworm_legacy_5.9.0-rc7_minimal.burn.img $SRCPATH/tmp
|
sudo chroot --userspec "root:root" $ROOTFS bash -c "sed -i 's/localhost.localdomain/$1/g' /etc/kvmd/meta.yaml"
|
||||||
simg2img $SRCPATH/tmp/7.rootfs.PARTITION.sparse $SRCPATH/tmp/rootfs.img
|
|
||||||
dd if=/dev/zero of=/tmp/add.img bs=1M count=1024 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
|
||||||
e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img
|
|
||||||
|
|
||||||
mkdir $ROOTFS
|
|
||||||
sudo mount $SRCPATH/tmp/rootfs.img $ROOTFS || exit -1
|
|
||||||
sudo mount -t proc proc $ROOTFS/proc || exit -1
|
|
||||||
sudo mount -t sysfs sys $ROOTFS/sys || exit -1
|
|
||||||
sudo mount -o bind /dev $ROOTFS/dev || exit -1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mount_cumebox2_rootfs() {
|
mount_rootfs() {
|
||||||
cp $SRCPATH/image/cumebox2/Armbian_24.8.1_Khadas-vim1_bookworm_current_6.6.47_minimal.img $SRCPATH/tmp/rootfs.img
|
|
||||||
dd if=/dev/zero of=/tmp/add.img bs=1M count=1500&& cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
|
||||||
sudo parted -s $SRCPATH/tmp/rootfs.img resizepart 1 100% || exit -1
|
|
||||||
sudo losetup --offset 4194304 $LOOPDEV $SRCPATH/tmp/rootfs.img || exit -1
|
|
||||||
#sudo mount -o loop,offset=$((8192*512)) $SRCPATH/tmp/rootfs.img $ROOTFS
|
|
||||||
sudo e2fsck -f $LOOPDEV && sudo resize2fs $LOOPDEV
|
|
||||||
|
|
||||||
mkdir $ROOTFS
|
mkdir $ROOTFS
|
||||||
sudo mount $LOOPDEV $ROOTFS || exit -1
|
sudo mount $LOOPDEV $ROOTFS || exit -1
|
||||||
sudo mount -t proc proc $ROOTFS/proc || exit -1
|
sudo mount -t proc proc $ROOTFS/proc || exit -1
|
||||||
@ -34,14 +20,7 @@ mount_cumebox2_rootfs() {
|
|||||||
sudo mount -o bind /dev $ROOTFS/dev || exit -1
|
sudo mount -o bind /dev $ROOTFS/dev || exit -1
|
||||||
}
|
}
|
||||||
|
|
||||||
umount_onecloud_rootfs() {
|
umount_rootfs() {
|
||||||
sudo umount $ROOTFS/sys
|
|
||||||
sudo umount $ROOTFS/dev
|
|
||||||
sudo umount $ROOTFS/proc
|
|
||||||
sudo umount $ROOTFS
|
|
||||||
}
|
|
||||||
|
|
||||||
umount_cumebox2_rootfs() {
|
|
||||||
sudo umount $ROOTFS/sys
|
sudo umount $ROOTFS/sys
|
||||||
sudo umount $ROOTFS/dev
|
sudo umount $ROOTFS/dev
|
||||||
sudo umount $ROOTFS/proc
|
sudo umount $ROOTFS/proc
|
||||||
@ -49,6 +28,15 @@ umount_cumebox2_rootfs() {
|
|||||||
sudo losetup -d $LOOPDEV
|
sudo losetup -d $LOOPDEV
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parpare_dns() {
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
mkdir -p /run/systemd/resolve/ \
|
||||||
|
&& touch /run/systemd/resolve/stub-resolv.conf \
|
||||||
|
&& printf '%s\n' 'nameserver 1.1.1.1' 'nameserver 1.0.0.1' > /etc/resolv.conf \
|
||||||
|
&& bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) \
|
||||||
|
--source mirrors.tuna.tsinghua.edu.cn --updata-software false --web-protocol http "
|
||||||
|
}
|
||||||
|
|
||||||
config_file() {
|
config_file() {
|
||||||
sudo mkdir -p $ROOTFS/etc/kvmd/override.d $ROOTFS/etc/kvmd/vnc $ROOTFS/var/lib/kvmd/msd $ROOTFS/opt/vc/bin $ROOTFS/usr/share/kvmd $ROOTFS/One-KVM \
|
sudo mkdir -p $ROOTFS/etc/kvmd/override.d $ROOTFS/etc/kvmd/vnc $ROOTFS/var/lib/kvmd/msd $ROOTFS/opt/vc/bin $ROOTFS/usr/share/kvmd $ROOTFS/One-KVM \
|
||||||
$ROOTFS/usr/share/janus/javascript $ROOTFS/usr/lib/ustreamer/janus $ROOTFS/run/kvmd $ROOTFS/var/lib/kvmd/msd/images $ROOTFS/var/lib/kvmd/msd/meta
|
$ROOTFS/usr/share/janus/javascript $ROOTFS/usr/lib/ustreamer/janus $ROOTFS/run/kvmd $ROOTFS/var/lib/kvmd/msd/images $ROOTFS/var/lib/kvmd/msd/meta
|
||||||
@ -57,168 +45,224 @@ config_file() {
|
|||||||
sudo cp -r web extras contrib/keymaps $ROOTFS/usr/share/kvmd
|
sudo cp -r web extras contrib/keymaps $ROOTFS/usr/share/kvmd
|
||||||
sudo cp testenv/fakes/vcgencmd $ROOTFS/usr/bin/
|
sudo cp testenv/fakes/vcgencmd $ROOTFS/usr/bin/
|
||||||
sudo cp -r testenv/js/* $ROOTFS/usr/share/janus/javascript/
|
sudo cp -r testenv/js/* $ROOTFS/usr/share/janus/javascript/
|
||||||
|
sudo cp build/platform/$1 $ROOTFS/usr/share/kvmd/platform
|
||||||
|
if [ -f "$SRCPATH/image/$1/rc.local" ]; then
|
||||||
|
sudo cp $SRCPATH/image/$1/rc.local $ROOTFS/etc/
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
config_onecloud_file() {
|
pack_img() {
|
||||||
sudo cp $SRCPATH/image/onecloud/rc.local $ROOTFS/etc/
|
sudo mv $SRCPATH/tmp/rootfs.img $OUTPUTDIR/One-KVM_by-SilentWind_$1_$DATE.img
|
||||||
sudo cp build/platform/onecloud $ROOTFS/usr/share/kvmd/platform
|
if [ "$1" = "Vm" ]; then
|
||||||
|
sudo qemu-img convert -f raw -O vmdk $OUTPUTDIR/One-KVM_by-SilentWind_Vm_$DATE.img $OUTPUTDIR/One-KVM_by-SilentWind_Vmare-uefi_$DATE.vmdk
|
||||||
|
sudo qemu-img convert -f raw -O vdi $OUTPUTDIR/One-KVM_by-SilentWind_Vm_$DATE.img $OUTPUTDIR/One-KVM_by-SilentWind_Virtualbox-uefi_$DATE.vdi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onecloud_rootfs() {
|
||||||
|
$SRCPATH/image/onecloud/AmlImg_v0.3.1_linux_amd64 unpack $SRCPATH/image/onecloud/Armbian_by-SilentWind_24.5.0-trunk_Onecloud_bookworm_legacy_5.9.0-rc7_minimal.burn.img $SRCPATH/tmp
|
||||||
|
simg2img $SRCPATH/tmp/7.rootfs.PARTITION.sparse $SRCPATH/tmp/rootfs.img
|
||||||
|
dd if=/dev/zero of=/tmp/add.img bs=1M count=1024 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
||||||
|
e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img
|
||||||
|
sudo losetup $LOOPDEV $SRCPATH/tmp/rootfs.img
|
||||||
|
}
|
||||||
|
|
||||||
|
cumebox2_rootfs() {
|
||||||
|
cp $SRCPATH/image/cumebox2/Armbian_24.8.1_Khadas-vim1_bookworm_current_6.6.47_minimal.img $SRCPATH/tmp/rootfs.img
|
||||||
|
dd if=/dev/zero of=/tmp/add.img bs=1M count=1500 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
||||||
|
sudo parted -s $SRCPATH/tmp/rootfs.img resizepart 1 100% || exit -1
|
||||||
|
sudo losetup --offset $((8192*512)) $LOOPDEV $SRCPATH/tmp/rootfs.img || exit -1
|
||||||
|
sudo e2fsck -f $LOOPDEV && sudo resize2fs $LOOPDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
chainedbox_rootfs_and_fix_dtb() {
|
||||||
|
cp $SRCPATH/image/chainedbox/Armbian_24.11.0_rockchip_chainedbox_bookworm_6.1.112_server_2024.10.02_add800m.img $SRCPATH/tmp/rootfs.img
|
||||||
|
mkdir $BOOTFS
|
||||||
|
sudo losetup --offset $((32768*512)) $LOOPDEV $SRCPATH/tmp/rootfs.img || exit -1
|
||||||
|
sudo mount $LOOPDEV $BOOTFS
|
||||||
|
sudo cp $SRCPATH/image/chainedbox/rk3328-l1pro-1296mhz-fix.dtb $BOOTFS/dtb/rockchip/rk3328-l1pro-1296mhz.dtb
|
||||||
|
sudo umount $BOOTFS
|
||||||
|
sudo losetup -d $LOOPDEV
|
||||||
|
sudo losetup --offset $((1081344*512)) $LOOPDEV $SRCPATH/tmp/rootfs.img
|
||||||
|
}
|
||||||
|
|
||||||
|
vm_rootfs() {
|
||||||
|
cp $SRCPATH/image/vm/Armbian_24.8.1_Uefi-x86_bookworm_current_6.6.47_minimal_add1g.img $SRCPATH/tmp/rootfs.img
|
||||||
|
sudo losetup --offset $((540672*512)) $LOOPDEV $SRCPATH/tmp/rootfs.img || exit -1
|
||||||
|
}
|
||||||
|
|
||||||
|
e900v22c_rootfs() {
|
||||||
|
cp $SRCPATH/image/e900v22c/Armbian_23.08.0_amlogic_s905l3a_bookworm_5.15.123_server_2023.08.01.img $SRCPATH/tmp/rootfs.img
|
||||||
|
dd if=/dev/zero of=/tmp/add.img bs=1M count=400 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
||||||
|
sudo parted -s $SRCPATH/tmp/rootfs.img resizepart 2 100% || exit -1
|
||||||
|
sudo losetup --offset $((532480*512)) $LOOPDEV $SRCPATH/tmp/rootfs.img || exit -1
|
||||||
|
sudo e2fsck -f $LOOPDEV && sudo resize2fs $LOOPDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
config_cumebox2_file() {
|
config_cumebox2_file() {
|
||||||
sudo mkdir $ROOTFS/etc/oled
|
sudo mkdir $ROOTFS/etc/oled
|
||||||
sudo cp build/platform/cumebox2 $ROOTFS/usr/share/kvmd/platform
|
|
||||||
sudo cp $SRCPATH/image/cumebox2/v-fix.dtb $ROOTFS/boot/dtb/amlogic/meson-gxl-s905x-khadas-vim.dtb
|
sudo cp $SRCPATH/image/cumebox2/v-fix.dtb $ROOTFS/boot/dtb/amlogic/meson-gxl-s905x-khadas-vim.dtb
|
||||||
sudo cp $SRCPATH/image/cumebox2/rc.local $ROOTFS/etc/
|
|
||||||
sudo cp $SRCPATH/image/cumebox2/ssd $ROOTFS/usr/bin/
|
sudo cp $SRCPATH/image/cumebox2/ssd $ROOTFS/usr/bin/
|
||||||
sudo cp $SRCPATH/image/cumebox2/config.json $ROOTFS/etc/oled/config.json
|
sudo cp $SRCPATH/image/cumebox2/config.json $ROOTFS/etc/oled/config.json
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
instal_one-kvm() {
|
instal_one-kvm() {
|
||||||
|
#$1 arch;$2 "gpio" or "video1"
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
apt update \
|
df -h \
|
||||||
&& apt install -y python3-aiofiles python3-aiohttp python3-appdirs python3-asn1crypto python3-async-timeout \
|
&& apt update \
|
||||||
python3-bottle python3-cffi python3-chardet python3-click python3-colorama python3-cryptography python3-dateutil \
|
&& apt install -y python3-aiofiles python3-aiohttp python3-appdirs python3-asn1crypto python3-async-timeout \
|
||||||
python3-dbus python3-dev python3-hidapi python3-hid python3-idna python3-libgpiod python3-mako python3-marshmallow python3-more-itertools \
|
python3-bottle python3-cffi python3-chardet python3-click python3-colorama python3-cryptography python3-dateutil \
|
||||||
python3-multidict python3-netifaces python3-packaging python3-passlib python3-pillow python3-ply python3-psutil \
|
python3-dbus python3-dev python3-hidapi python3-hid python3-idna python3-libgpiod python3-mako python3-marshmallow python3-more-itertools \
|
||||||
python3-pycparser python3-pyelftools python3-pyghmi python3-pygments python3-pyparsing python3-requests \
|
python3-multidict python3-netifaces python3-packaging python3-passlib python3-pillow python3-ply python3-psutil \
|
||||||
python3-semantic-version python3-setproctitle python3-setuptools python3-six python3-spidev python3-systemd \
|
python3-pycparser python3-pyelftools python3-pyghmi python3-pygments python3-pyparsing python3-requests \
|
||||||
python3-tabulate python3-urllib3 python3-wrapt python3-xlib python3-yaml python3-yarl python3-pyotp python3-qrcode \
|
python3-semantic-version python3-setproctitle python3-setuptools python3-six python3-spidev python3-systemd \
|
||||||
python3-serial python3-zstandard python3-dbus-next \
|
python3-tabulate python3-urllib3 python3-wrapt python3-xlib python3-yaml python3-yarl python3-pyotp python3-qrcode \
|
||||||
&& apt install -y nginx python3-pip python3-dev python3-build net-tools tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim \
|
python3-serial python3-zstandard python3-dbus-next \
|
||||||
git gpiod libxkbcommon0 build-essential janus-dev libssl-dev libffi-dev libevent-dev libjpeg-dev libbsd-dev libudev-dev \
|
&& apt install -y nginx python3-pip python3-dev python3-build net-tools tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim \
|
||||||
pkg-config libx264-dev libyuv-dev libasound2-dev libsndfile-dev libspeexdsp-dev cpufrequtils iptables network-manager \
|
git gpiod libxkbcommon0 build-essential janus-dev libssl-dev libffi-dev libevent-dev libjpeg-dev libbsd-dev libudev-dev \
|
||||||
&& apt clean "
|
pkg-config libx264-dev libyuv-dev libasound2-dev libsndfile-dev libspeexdsp-dev cpufrequtils iptables "
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
if [ "$1" = "armhf" ]; then
|
||||||
pip3 config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple \
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
&& pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages async-lru gpiod \
|
rm -rf /var/lib/apt/lists/* "
|
||||||
&& pip3 cache purge "
|
else
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
apt install -y network-manager && rm -rf /var/lib/apt/lists/* "
|
||||||
|
fi
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
pip3 config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple \
|
||||||
|
&& pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages async-lru gpiod \
|
||||||
|
&& pip3 cache purge "
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS sed --in-place --expression 's|^#include "refcount.h"$|#include "../refcount.h"|g' /usr/include/janus/plugins/plugin.h
|
sudo chroot --userspec "root:root" $ROOTFS sed --in-place --expression 's|^#include "refcount.h"$|#include "../refcount.h"|g' /usr/include/janus/plugins/plugin.h
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
git clone --depth=1 https://github.com/mofeng-git/ustreamer /tmp/ustreamer \
|
git clone --depth=1 https://github.com/mofeng-git/ustreamer /tmp/ustreamer \
|
||||||
&& make -j WITH_PYTHON=1 WITH_JANUS=1 WITH_LIBX264=1 -C /tmp/ustreamer \
|
&& make -j WITH_PYTHON=1 WITH_JANUS=1 WITH_LIBX264=1 -C /tmp/ustreamer \
|
||||||
&& mv /tmp/ustreamer/src/ustreamer.bin /usr/bin/ustreamer \
|
&& mv /tmp/ustreamer/src/ustreamer.bin /usr/bin/ustreamer \
|
||||||
&& mv /tmp/ustreamer/src/ustreamer-dump.bin /usr/bin/ustreamer-dump \
|
&& mv /tmp/ustreamer/src/ustreamer-dump.bin /usr/bin/ustreamer-dump \
|
||||||
&& chmod +x /usr/bin/ustreamer /usr/bin/ustreamer-dump \
|
&& chmod +x /usr/bin/ustreamer /usr/bin/ustreamer-dump \
|
||||||
&& mv /tmp/ustreamer/janus/libjanus_ustreamer.so /usr/lib/ustreamer/janus \
|
&& mv /tmp/ustreamer/janus/libjanus_ustreamer.so /usr/lib/ustreamer/janus \
|
||||||
&& pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages /tmp/ustreamer/python/dist/*.whl "
|
&& pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages /tmp/ustreamer/python/dist/*.whl "
|
||||||
|
|
||||||
#安装 kvmd 主程序
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
cd /One-KVM \
|
||||||
cd /One-KVM \
|
&& python3 setup.py install \
|
||||||
&& python3 setup.py install \
|
&& bash scripts/kvmd-gencert --do-the-thing \
|
||||||
&& bash scripts/kvmd-gencert --do-the-thing \
|
&& bash scripts/kvmd-gencert --do-the-thing --vnc \
|
||||||
&& bash scripts/kvmd-gencert --do-the-thing --vnc \
|
&& kvmd-nginx-mkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf \
|
||||||
&& kvmd-nginx-mkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf \
|
&& kvmd -m "
|
||||||
&& kvmd -m "
|
|
||||||
|
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
cat /One-KVM/configs/os/sudoers/v2-hdmiusb >> /etc/sudoers \
|
||||||
|
&& cat /One-KVM/configs/os/udev/v2-hdmiusb-generic.rules > /etc/udev/rules.d/99-kvmd.rules \
|
||||||
|
&& echo 'libcomposite' >> /etc/modules \
|
||||||
|
&& mv /usr/local/bin/kvmd* /usr/bin \
|
||||||
|
&& cp /One-KVM/configs/os/services/* /etc/systemd/system/ \
|
||||||
|
&& cp /One-KVM/configs/os/tmpfiles.conf /usr/lib/tmpfiles.d/ \
|
||||||
|
&& chmod +x /etc/update-motd.d/* \
|
||||||
|
&& echo 'kvmd ALL=(ALL) NOPASSWD: /etc/kvmd/custom_atx/gpio.sh' >> /etc/sudoers \
|
||||||
|
&& echo 'kvmd ALL=(ALL) NOPASSWD: /etc/kvmd/custom_atx/usbrelay_hid.sh' >> /etc/sudoers \
|
||||||
|
&& systemd-sysusers /One-KVM/configs/os/sysusers.conf \
|
||||||
|
&& systemd-sysusers /One-KVM/configs/os/kvmd-webterm.conf \
|
||||||
|
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
||||||
|
&& sed -i 's/8080/80/g' /etc/kvmd/override.yaml \
|
||||||
|
&& sed -i 's/4430/443/g' /etc/kvmd/override.yaml \
|
||||||
|
&& chown kvmd -R /var/lib/kvmd/msd/ \
|
||||||
|
&& systemctl enable kvmd kvmd-otg kvmd-nginx kvmd-vnc kvmd-ipmi kvmd-webterm kvmd-janus \
|
||||||
|
&& systemctl disable nginx janus \
|
||||||
|
&& rm -r /One-KVM "
|
||||||
|
|
||||||
#服务自启
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
curl https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.$1 -L -o /usr/bin/ttyd \
|
||||||
cat /One-KVM/configs/os/sudoers/v2-hdmiusb >> /etc/sudoers \
|
&& chmod +x /usr/bin/ttyd \
|
||||||
&& cat /One-KVM/configs/os/udev/v2-hdmiusb-generic.rules > /etc/udev/rules.d/99-kvmd.rules \
|
&& mkdir -p /home/kvmd-webterm \
|
||||||
&& echo 'libcomposite' >> /etc/modules \
|
&& chown kvmd-webterm /home/kvmd-webterm "
|
||||||
&& mv /usr/local/bin/kvmd* /usr/bin \
|
|
||||||
&& cp /One-KVM/configs/os/services/* /etc/systemd/system/ \
|
|
||||||
&& cp /One-KVM/configs/os/tmpfiles.conf /usr/lib/tmpfiles.d/ \
|
|
||||||
&& chmod +x /etc/update-motd.d/* \
|
|
||||||
&& echo 'kvmd ALL=(ALL) NOPASSWD: /etc/kvmd/custom_atx/gpio.sh' >> /etc/sudoers \
|
|
||||||
&& echo 'kvmd ALL=(ALL) NOPASSWD: /etc/kvmd/custom_atx/usbrelay_hid.sh' >> /etc/sudoers \
|
|
||||||
&& systemd-sysusers /One-KVM/configs/os/sysusers.conf \
|
|
||||||
&& systemd-sysusers /One-KVM/configs/os/kvmd-webterm.conf \
|
|
||||||
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
|
||||||
&& sed -i 's/ch9329/otg/g' /etc/kvmd/override.yaml \
|
|
||||||
&& sed -i 's/device: \/dev\/ttyUSB0//g' /etc/kvmd/override.yaml \
|
|
||||||
&& sed -i 's/8080/80/g' /etc/kvmd/override.yaml \
|
|
||||||
&& sed -i 's/4430/443/g' /etc/kvmd/override.yaml \
|
|
||||||
&& sed -i 's/#type: otg/type: otg/g' /etc/kvmd/override.yaml \
|
|
||||||
&& chown kvmd -R /var/lib/kvmd/msd/ \
|
|
||||||
&& sed -i 's/localhost.localdomain/onecloud/g' /etc/kvmd/meta.yaml \
|
|
||||||
&& systemctl enable kvmd kvmd-otg kvmd-nginx kvmd-vnc kvmd-ipmi kvmd-webterm kvmd-janus \
|
|
||||||
&& systemctl disable nginx janus \
|
|
||||||
&& rm -r /One-KVM "
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
instal_one-kvm_for_onecloud() {
|
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|
||||||
curl https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.armhf -L -o /usr/bin/ttyd \
|
|
||||||
&& chmod +x /usr/bin/ttyd \
|
|
||||||
&& mkdir -p /home/kvmd-webterm \
|
|
||||||
&& chown kvmd-webterm /home/kvmd-webterm "
|
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|
||||||
sed -i '2c ATX=GPIO' /etc/kvmd/atx.sh \
|
|
||||||
&& sed -i 's/SHUTDOWNPIN/gpiochip1 7/g' /etc/kvmd/custom_atx/gpio.sh \
|
|
||||||
&& sed -i 's/REBOOTPIN/gpiochip0 11/g' /etc/kvmd/custom_atx/gpio.sh "
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
instal_one-kvm_for_cumebox2() {
|
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|
||||||
curl https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.aarch64 -L -o /usr/bin/ttyd \
|
|
||||||
&& chmod +x /usr/bin/ttyd \
|
|
||||||
&& mkdir -p /home/kvmd-webterm \
|
|
||||||
&& chown kvmd-webterm /home/kvmd-webterm "
|
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|
||||||
sed -i '2c ATX=USBRELAY_HID' /etc/kvmd/atx.sh \
|
|
||||||
&& sed -i 's/\/dev\/video0/\/dev\/video1/g' /etc/kvmd/override.yaml "
|
|
||||||
|
|
||||||
|
if [ "$1" = "x86_64" ]; then
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
systemctl disable kvmd-otg \
|
||||||
|
&& sed -i '2c ATX=USBRELAY_HID' /etc/kvmd/atx.sh \
|
||||||
|
&& sed -i 's/device: \/dev\/ttyUSB0/device: \/dev\/kvmd-hid/g' /etc/kvmd/override.yaml "
|
||||||
|
else
|
||||||
|
if [ "$2" = "gpio" ]; then
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
sed -i '2c ATX=GPIO' /etc/kvmd/atx.sh \
|
||||||
|
&& sed -i 's/SHUTDOWNPIN/gpiochip1 7/g' /etc/kvmd/custom_atx/gpio.sh \
|
||||||
|
&& sed -i 's/REBOOTPIN/gpiochip0 11/g' /etc/kvmd/custom_atx/gpio.sh "
|
||||||
|
else
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS sed -i '2c ATX=USBRELAY_HID' /etc/kvmd/atx.sh
|
||||||
|
|
||||||
|
fi
|
||||||
|
if [ "$2" = "video1" ]; then
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS sed -i 's/\/dev\/video0/\/dev\/video1/g' /etc/kvmd/override.yaml
|
||||||
|
fi
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
|
sed -i 's/ch9329/otg/g' /etc/kvmd/override.yaml \
|
||||||
|
&& sed -i 's/device: \/dev\/ttyUSB0//g' /etc/kvmd/override.yaml \
|
||||||
|
&& sed -i 's/#type: otg/type: otg/g' /etc/kvmd/override.yaml "
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
pack_img_onecloud() {
|
pack_img_onecloud() {
|
||||||
sudo rm $SRCPATH/tmp/7.rootfs.PARTITION.sparse
|
sudo rm $SRCPATH/tmp/7.rootfs.PARTITION.sparse
|
||||||
sudo img2simg $SRCPATH/tmp/rootfs.img $SRCPATH/tmp/7.rootfs.PARTITION.sparse
|
sudo img2simg $SRCPATH/tmp/rootfs.img $SRCPATH/tmp/7.rootfs.PARTITION.sparse
|
||||||
sudo $SRCPATH/image/onecloud/AmlImg_v0.3.1_linux_amd64 pack $SRCPATH/output/One-KVM_by-SilentWind_Onecloud_$DATE.burn.img $SRCPATH/tmp/
|
sudo $SRCPATH/image/onecloud/AmlImg_v0.3.1_linux_amd64 pack $OUTPUTDIR/One-KVM_by-SilentWind_Onecloud_$DATE.burn.img $SRCPATH/tmp/
|
||||||
sudo rm $SRCPATH/tmp/*
|
sudo rm $SRCPATH/tmp/*
|
||||||
}
|
}
|
||||||
|
|
||||||
pack_img_cumebox2() {
|
|
||||||
sudo mv $SRCPATH/tmp/rootfs.img $SRCPATH/output/One-KVM_by-SilentWind_Cumebox2_$DATE.burn.img
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
parpare_install_cumebox2() {
|
|
||||||
|
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|
||||||
mkdir -p /run/systemd/resolve/ \
|
|
||||||
&& touch /run/systemd/resolve/stub-resolv.conf \
|
|
||||||
&& printf '%s\n' 'nameserver 1.1.1.1' 'nameserver 1.0.0.1' > /etc/resolv.conf \
|
|
||||||
&& bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) \
|
|
||||||
--source mirrors.tuna.tsinghua.edu.cn --updata-software false --web-protocol http "
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
onecloud)
|
onecloud)
|
||||||
mount_onecloud_rootfs
|
onecloud_rootfs
|
||||||
config_file
|
mount_rootfs
|
||||||
config_onecloud_file
|
config_file $1
|
||||||
instal_one-kvm
|
instal_one-kvm armhf gpio
|
||||||
instal_one-kvm_for_onecloud
|
write_meta $1
|
||||||
umount_onecloud_rootfs
|
umount_rootfs
|
||||||
pack_img_onecloud
|
pack_img_onecloud
|
||||||
;;
|
;;
|
||||||
cumebox2)
|
cumebox2)
|
||||||
mount_cumebox2_rootfs
|
cumebox2_rootfs
|
||||||
config_file
|
mount_rootfs
|
||||||
|
config_file $1
|
||||||
config_cumebox2_file
|
config_cumebox2_file
|
||||||
parpare_install_cumebox2
|
parpare_dns
|
||||||
instal_one-kvm
|
instal_one-kvm aarch64 video1
|
||||||
instal_one-kvm_for_cumebox2
|
write_meta $1
|
||||||
umount_cumebox2_rootfs
|
umount_rootfs
|
||||||
pack_img_cumebox2
|
pack_img Cumebox2
|
||||||
|
;;
|
||||||
|
chainedbox)
|
||||||
|
chainedbox_rootfs_and_fix_dtb
|
||||||
|
mount_rootfs
|
||||||
|
config_file $1
|
||||||
|
parpare_dns
|
||||||
|
instal_one-kvm aarch64 video1
|
||||||
|
write_meta $1
|
||||||
|
umount_rootfs
|
||||||
|
pack_img Chainedbox
|
||||||
;;
|
;;
|
||||||
|
vm)
|
||||||
|
vm_rootfs
|
||||||
|
mount_rootfs
|
||||||
|
config_file $1
|
||||||
|
parpare_dns
|
||||||
|
instal_one-kvm x86_64
|
||||||
|
write_meta $1
|
||||||
|
umount_rootfs
|
||||||
|
pack_img Vm
|
||||||
|
;;
|
||||||
|
e900v22c)
|
||||||
|
e900v22c_rootfs
|
||||||
|
mount_rootfs
|
||||||
|
config_file $1
|
||||||
|
instal_one-kvm aarch64 video1
|
||||||
|
write_meta $1
|
||||||
|
umount_rootfs
|
||||||
|
pack_img E900v22c
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Do no thing."
|
echo "Do no thing."
|
||||||
;;
|
;;
|
||||||
|
|||||||
3
build/platform/chainedbox
Normal file
3
build/platform/chainedbox
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PIKVM_MODEL=v2_model
|
||||||
|
PIKVM_VIDEO=usb_video
|
||||||
|
PIKVM_BOARD=chainedbox
|
||||||
3
build/platform/e900v22c
Normal file
3
build/platform/e900v22c
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PIKVM_MODEL=v2_model
|
||||||
|
PIKVM_VIDEO=usb_video
|
||||||
|
PIKVM_BOARD=e900v22c
|
||||||
3
build/platform/vm
Normal file
3
build/platform/vm
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PIKVM_MODEL=v2_model
|
||||||
|
PIKVM_VIDEO=usb_video
|
||||||
|
PIKVM_BOARD=vm
|
||||||
@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"seting":{
|
|
||||||
"pixel":12864,
|
|
||||||
"dev":"/dev/i2c-0",
|
|
||||||
"addr":60
|
|
||||||
},
|
|
||||||
"draw1":{
|
|
||||||
"seting":{
|
|
||||||
"cycle":5,"time":40,"page":1
|
|
||||||
},
|
|
||||||
"display":[
|
|
||||||
{"type":"r_rect","x0":2,"y0":2,"w":124,"h":60,"r":30,"fill":0,"color":1,"en":1},
|
|
||||||
{"type":"str","data":"One-KVM","x0":23,"y0":9,"size":2,"color":1,"en":1}
,
|
|
||||||
{"type":"str","data":"CumeBox","x0":20,"y0":33,"size":2,"color":1,"en":1}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Temp":{
|
|
||||||
"seting":{
|
|
||||||
"cycle":5,"time":20,"page":2
|
|
||||||
},
|
|
||||||
"display":[
|
|
||||||
{"type":"str","data":"Temp","x0":30,"y0":4,"size":3,"color":2,"en":1},
|
|
||||||
{"type":"str","data":"'C","x0":90,"y0":36,"size":2,"color":2,"en":1},
|
|
||||||
{"type":"base","func":2,"x0":30,"y0":36,"base":4,"class":0,"size":2,"color":1,"en":1}
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
"IP":{
|
|
||||||
"seting":{
|
|
||||||
"cycle":5,"time":20,"page":3
|
|
||||||
},
|
|
||||||
"display":[
|
|
||||||
{"type":"base","func":4,"x0":0,"y0":0,"port":"end0","base":15,"size":2,"color":1,"en":1}
,
|
|
||||||
{"type":"base","func":4,"x0":0,"y0":28,"port":"wlan0","base":15,"size":2,"color":1,"en":1}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
echo 4500 > /sys/class/hwmon/hwmon0/fan1_target
|
|
||||||
echo 0 > /sys/class/leds/red/brightness
|
|
||||||
echo 0 > /sys/class/leds/blue/brightness
|
|
||||||
echo 1 > /sys/class/leds/green/brightness
|
|
||||||
#https://github.com/bearcatl/SSD1306_OLED_json
|
|
||||||
nohup /usr/bin/ssd > /var/log/ssd.log 2>&1 &
|
|
||||||
exit 0
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
green_on
|
|
||||||
echo device > /sys/class/usb_role/c9040000.usb-role-switch/role
|
|
||||||
exit 0
|
|
||||||
Loading…
x
Reference in New Issue
Block a user