更新赞助信息

This commit is contained in:
mofeng-git 2025-03-06 14:41:59 +00:00
parent 8c8bf35d0b
commit e375e41fb6

View File

@ -25,7 +25,7 @@ BOOTFS=/tmp/bootfs
ROOTFS=/tmp/rootfs ROOTFS=/tmp/rootfs
OUTPUTDIR=/mnt/nas/src/output OUTPUTDIR=/mnt/nas/src/output
LOOPDEV=/dev/loop10 LOOPDEV=/dev/loop10
DATE=241204 DATE=240303
export LC_ALL=C export LC_ALL=C
write_meta() { write_meta() {
@ -33,7 +33,7 @@ write_meta() {
} }
mount_rootfs() { mount_rootfs() {
mkdir $ROOTFS mkdir $ROOTFS $SRCPATH/tmp/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
sudo mount -t sysfs sys $ROOTFS/sys || exit -1 sudo mount -t sysfs sys $ROOTFS/sys || exit -1
@ -45,7 +45,10 @@ umount_rootfs() {
sudo umount $ROOTFS/dev sudo umount $ROOTFS/dev
sudo umount $ROOTFS/proc sudo umount $ROOTFS/proc
sudo umount $ROOTFS sudo umount $ROOTFS
sudo zerofree $LOOPDEV
sudo losetup -d $LOOPDEV sudo losetup -d $LOOPDEV
sudo docker rm to_build_rootfs
sudo rm -rf $SRCPATH/tmp/rootfs/*
} }
parpare_dns() { parpare_dns() {
@ -62,8 +65,10 @@ delete_armbain_verify(){
} }
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 \
$ROOTFS/tmp/wheel/ $ROOTFS/usr/lib/janus/transports/ $ROOTFS/usr/lib/janus/loggers
sudo rsync -a --exclude={src,.github} . $ROOTFS/One-KVM sudo rsync -a --exclude={src,.github} . $ROOTFS/One-KVM
sudo cp -r configs/kvmd/* configs/nginx configs/janus $ROOTFS/etc/kvmd sudo cp -r configs/kvmd/* configs/nginx configs/janus $ROOTFS/etc/kvmd
sudo cp -r web extras contrib/keymaps $ROOTFS/usr/share/kvmd sudo cp -r web extras contrib/keymaps $ROOTFS/usr/share/kvmd
@ -73,6 +78,17 @@ config_file() {
if [ -f "$SRCPATH/image/$1/rc.local" ]; then if [ -f "$SRCPATH/image/$1/rc.local" ]; then
sudo cp $SRCPATH/image/$1/rc.local $ROOTFS/etc/ sudo cp $SRCPATH/image/$1/rc.local $ROOTFS/etc/
fi fi
sudo docker pull --platform linux/$2 registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd-stage-0
sudo docker create --name to_build_rootfs registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd-stage-0
sudo docker export to_build_rootfs | sudo tar -xvf - -C $SRCPATH/tmp/rootfs
sudo cp $SRCPATH/tmp/rootfs/tmp/lib/* $ROOTFS/lib/*-linux-*/
sudo cp $SRCPATH/tmp/rootfs/tmp/ustreamer/ustreamer $SRCPATH/tmp/rootfs/tmp/ustreamer/ustreamer-dump $SRCPATH/tmp/rootfs/usr/bin/janus $ROOTFS/usr/bin/
sudo cp $SRCPATH/tmp/rootfs/tmp/ustreamer/janus/libjanus_ustreamer.so $ROOTFS/usr/lib/ustreamer/janus/
sudo cp $SRCPATH/tmp/rootfs/tmp/wheel/*.whl $ROOTFS/tmp/wheel/
sudo cp $SRCPATH/tmp/rootfs/usr/lib/janus/transports/* $ROOTFS/usr/lib/janus/transports/
sudo mv $ROOTFS/etc/apt/apt.conf.d/50apt-file.conf{,.disabled}
} }
pack_img() { pack_img() {
@ -93,7 +109,7 @@ onecloud_rootfs() {
sudo cp $SRCPATH/image/onecloud/meson8b-onecloud-fix.dtb $BOOTFS/dtb/meson8b-onecloud.dtb sudo cp $SRCPATH/image/onecloud/meson8b-onecloud-fix.dtb $BOOTFS/dtb/meson8b-onecloud.dtb
sudo umount $BOOTFS sudo umount $BOOTFS
sudo losetup -d $LOOPDEV sudo losetup -d $LOOPDEV
dd if=/dev/zero of=/tmp/add.img bs=1M count=1024 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img dd if=/dev/zero of=/tmp/add.img bs=1M count=256 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img
sudo losetup $LOOPDEV $SRCPATH/tmp/rootfs.img sudo losetup $LOOPDEV $SRCPATH/tmp/rootfs.img
} }
@ -162,29 +178,10 @@ instal_one-kvm() {
sudo chroot --userspec "root:root" $ROOTFS bash -c " \ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
df -h \ df -h \
&& apt-get update \ && apt-get update \
&& apt-get install -y python3-aiofiles python3-aiohttp python3-appdirs python3-asn1crypto python3-async-timeout \ && apt install -y --no-install-recommends libxkbcommon-x11-0 nginx tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim iptables \
python3-bottle python3-cffi python3-chardet python3-click python3-colorama python3-cryptography python3-dateutil \ curl kmod libmicrohttpd12 libjansson4 libssl3 libsofia-sip-ua0 libglib2.0-0 libopus0 libogg0 libcurl4 libconfig9 python3-pip \
python3-dbus python3-dev python3-hidapi python3-hid python3-idna python3-libgpiod python3-mako python3-marshmallow python3-more-itertools \ && apt clean \
python3-multidict python3-netifaces python3-packaging python3-passlib python3-pillow python3-ply python3-psutil \ && rm -rf /var/lib/apt/lists/* "
python3-pycparser python3-pyelftools python3-pyghmi python3-pygments python3-pyparsing python3-requests \
python3-semantic-version python3-setproctitle python3-setuptools python3-six python3-spidev python3-systemd \
python3-tabulate python3-urllib3 python3-wrapt python3-xlib python3-yaml python3-yarl python3-pyotp python3-qrcode \
python3-serial python3-zstandard python3-dbus-next python3-pip python3-dev python3-build python3-wheel \
nginx net-tools tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim cpufrequtils iptables network-manager \
git gpiod libxkbcommon0 build-essential janus-dev libssl-dev libffi-dev libevent-dev libjpeg-dev libbsd-dev libudev-dev \
pkg-config libx264-dev libyuv-dev libasound2-dev libsndfile-dev libspeexdsp-dev \
&& rm -rf /var/lib/apt/lists/* "
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 " \
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 \
&& cp /tmp/ustreamer/src/ustreamer.bin /usr/bin/ustreamer \
&& cp /tmp/ustreamer/src/ustreamer-dump.bin /usr/bin/ustreamer-dump \
&& chmod +x /usr/bin/ustreamer /usr/bin/ustreamer-dump \
&& cp /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 "
if [ "$3" = "systemd-networkd" ]; then if [ "$3" = "systemd-networkd" ]; then
sudo chroot --userspec "root:root" $ROOTFS bash -c " \ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
@ -194,9 +191,11 @@ instal_one-kvm() {
&& systemctl enable systemd-networkd systemd-resolved " && systemctl enable systemd-networkd systemd-resolved "
fi fi
sudo chroot --userspec "root:root" $ROOTFS bash -c " \ 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 --no-cache-dir --break-system-packages /tmp/wheel/*.whl \
&& pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages async-lru gpiod pyfatfs \ && pip3 cache purge \
&& pip3 cache purge " && rm -r /tmp/wheel "
#pip3 install --target=/usr/lib/python3/dist-packages --break-system-packages pyfatfs -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
sudo chroot --userspec "root:root" $ROOTFS bash -c " \ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
cd /One-KVM \ cd /One-KVM \
@ -208,7 +207,7 @@ instal_one-kvm() {
sudo chroot --userspec "root:root" $ROOTFS bash -c " \ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
cat /One-KVM/configs/os/sudoers/v2-hdmiusb >> /etc/sudoers \ 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 \ && cat /One-KVM/configs/os/udev/v2-hdmiusb-rpi4.rules > /etc/udev/rules.d/99-kvmd.rules \
&& echo 'libcomposite' >> /etc/modules \ && echo 'libcomposite' >> /etc/modules \
&& mv /usr/local/bin/kvmd* /usr/bin \ && mv /usr/local/bin/kvmd* /usr/bin \
&& cp /One-KVM/configs/os/services/* /etc/systemd/system/ \ && cp /One-KVM/configs/os/services/* /etc/systemd/system/ \
@ -222,12 +221,12 @@ instal_one-kvm() {
&& sed -i 's/8080/80/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/4430/443/g' /etc/kvmd/override.yaml \
&& chown kvmd -R /var/lib/kvmd/msd/ \ && chown kvmd -R /var/lib/kvmd/msd/ \
&& systemctl enable kvmd kvmd-otg kvmd-nginx kvmd-vnc kvmd-ipmi kvmd-webterm kvmd-janus \ && systemctl enable kvmd kvmd-otg kvmd-nginx kvmd-vnc kvmd-ipmi kvmd-webterm kvmd-janus kvmd-media \
&& systemctl disable nginx janus \ && systemctl disable nginx \
&& rm -r /One-KVM " && 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 \ curl https://gh.llkk.cc/https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.$1 -L -o /usr/bin/ttyd \
&& chmod +x /usr/bin/ttyd \ && chmod +x /usr/bin/ttyd \
&& mkdir -p /home/kvmd-webterm \ && mkdir -p /home/kvmd-webterm \
&& chown kvmd-webterm /home/kvmd-webterm " && chown kvmd-webterm /home/kvmd-webterm "
@ -255,6 +254,8 @@ instal_one-kvm() {
&& sed -i 's/device: \/dev\/ttyUSB0//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 " && sed -i 's/#type: otg/type: otg/g' /etc/kvmd/override.yaml "
fi fi
sudo chroot --userspec "root:root" $ROOTFS bash -c "df -h"
} }
pack_img_onecloud() { pack_img_onecloud() {
@ -264,68 +265,103 @@ pack_img_onecloud() {
sudo rm $SRCPATH/tmp/* sudo rm $SRCPATH/tmp/*
} }
case $1 in #build function
onecloud)
onecloud_rootfs onecloud() {
mount_rootfs onecloud_rootfs
config_file $1 mount_rootfs
instal_one-kvm armhf gpio systemd-networkd config_file "onecloud" "arm"
write_meta $1 instal_one-kvm armhf gpio systemd-networkd
umount_rootfs write_meta "onecloud"
pack_img_onecloud umount_rootfs
;; pack_img_onecloud
cumebox2) }
cumebox2_rootfs
mount_rootfs cumebox2() {
config_file $1 cumebox2_rootfs
config_cumebox2_file mount_rootfs
parpare_dns config_file "cumebox2" "aarch64"
instal_one-kvm aarch64 video1 config_cumebox2_file
write_meta $1 parpare_dns
umount_rootfs instal_one-kvm aarch64 video1
pack_img Cumebox2 write_meta "cumebox2"
;; umount_rootfs
chainedbox) pack_img "Cumebox2"
chainedbox_rootfs_and_fix_dtb }
mount_rootfs
config_file $1 chainedbox() {
parpare_dns chainedbox_rootfs_and_fix_dtb
instal_one-kvm aarch64 video1 mount_rootfs
write_meta $1 config_file "chainedbox" "aarch64"
umount_rootfs parpare_dns
pack_img Chainedbox instal_one-kvm aarch64 video1
;; write_meta "chainedbox"
vm) umount_rootfs
vm_rootfs pack_img "Chainedbox"
mount_rootfs }
config_file $1
parpare_dns vm() {
instal_one-kvm x86_64 vm_rootfs
write_meta $1 mount_rootfs
umount_rootfs config_file "vm" "amd64"
pack_img Vm parpare_dns
;; instal_one-kvm x86_64
e900v22c) write_meta "vm"
e900v22c_rootfs umount_rootfs
mount_rootfs pack_img "Vm"
config_file $1 }
instal_one-kvm aarch64 video1
write_meta $1 e900v22c() {
umount_rootfs e900v22c_rootfs
pack_img E900v22c mount_rootfs
;; config_file "e900v22c" "aarch64"
octopus-flanet) instal_one-kvm aarch64 video1
octopus-flanet_rootfs write_meta "e900v22c"
mount_rootfs umount_rootfs
config_file $1 pack_img "E900v22c"
config_octopus-flanet_file }
parpare_dns
instal_one-kvm aarch64 video1 octopus_flanet() {
write_meta $1 octopus-flanet_rootfs
umount_rootfs mount_rootfs
pack_img Octopus-Flanet config_file "octopus-flanet" "aarch64"
;; config_octopus-flanet_file
*) parpare_dns
echo "Do no thing." instal_one-kvm aarch64 video1
;; write_meta "octopus-flanet"
esac umount_rootfs
pack_img "Octopus-Flanet"
}
if [ "$1" = "all" ]; then
onecloud
cumebox2
chainedbox
vm
e900v22c
octopus_flanet
else
case $1 in
onecloud)
onecloud
;;
cumebox2)
cumebox2
;;
chainedbox)
chainedbox
;;
vm)
vm
;;
e900v22c)
e900v22c
;;
octopus-flanet)
octopus_flanet
;;
*)
echo "Do no thing."
;;
esac
fi