mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
添加私家云二代整合包制作脚本
This commit is contained in:
parent
507c46b986
commit
40505e7e00
@ -10,35 +10,79 @@
|
|||||||
# ├── Armbian_by-SilentWind_24.5.0-trunk_Onecloud_bookworm_legacy_5.9.0-rc7_minimal.burn.img
|
# ├── Armbian_by-SilentWind_24.5.0-trunk_Onecloud_bookworm_legacy_5.9.0-rc7_minimal.burn.img
|
||||||
# └── rc.local
|
# └── rc.local
|
||||||
|
|
||||||
#预处理镜像文件
|
|
||||||
SRCPATH=../src
|
SRCPATH=../src
|
||||||
ROOTFS=/tmp/rootfs
|
ROOTFS=/tmp/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
|
LOOPDEV=/dev/loop10
|
||||||
simg2img $SRCPATH/tmp/7.rootfs.PARTITION.sparse $SRCPATH/tmp/rootfs.img
|
DATE=241004
|
||||||
dd if=/dev/zero of=/tmp/add.img bs=1M count=800 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
export LC_ALL=C
|
||||||
e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img
|
|
||||||
|
|
||||||
#挂载镜像文件
|
mount_onecloud_rootfs() {
|
||||||
mkdir $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
|
||||||
sudo mount $SRCPATH/tmp/rootfs.img $ROOTFS || exit -1
|
simg2img $SRCPATH/tmp/7.rootfs.PARTITION.sparse $SRCPATH/tmp/rootfs.img
|
||||||
sudo mount -t proc proc $ROOTFS/proc || exit -1
|
dd if=/dev/zero of=/tmp/add.img bs=1M count=1024 && cat /tmp/add.img >> $SRCPATH/tmp/rootfs.img && rm /tmp/add.img
|
||||||
sudo mount -t sysfs sys $ROOTFS/sys || exit -1
|
e2fsck -f $SRCPATH/tmp/rootfs.img && resize2fs $SRCPATH/tmp/rootfs.img
|
||||||
sudo mount -o bind /dev $ROOTFS/dev || exit -1
|
|
||||||
|
|
||||||
#准备文件
|
mkdir $ROOTFS
|
||||||
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 \
|
sudo mount $SRCPATH/tmp/rootfs.img $ROOTFS || exit -1
|
||||||
$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
|
sudo mount -t proc proc $ROOTFS/proc || exit -1
|
||||||
sudo cp -r ../One-KVM $ROOTFS/
|
sudo mount -t sysfs sys $ROOTFS/sys || exit -1
|
||||||
sudo cp $SRCPATH/image/onecloud/rc.local $ROOTFS/etc/
|
sudo mount -o bind /dev $ROOTFS/dev || exit -1
|
||||||
sudo cp -r $ROOTFS/One-KVM/configs/kvmd/* $ROOTFS/One-KVM/configs/nginx $ROOTFS/One-KVM/configs/janus \
|
}
|
||||||
$ROOTFS/etc/kvmd
|
|
||||||
sudo cp -r $ROOTFS/One-KVM/web $ROOTFS/One-KVM/extras $ROOTFS/One-KVM/contrib/keymaps $ROOTFS/usr/share/kvmd
|
|
||||||
sudo cp $ROOTFS/One-KVM/build/platform/onecloud $ROOTFS/usr/share/kvmd/platform
|
|
||||||
sudo cp $ROOTFS/One-KVM/testenv/fakes/vcgencmd $ROOTFS/usr/bin/
|
|
||||||
sudo cp -r $ROOTFS/One-KVM/testenv/js/* $ROOTFS/usr/share/janus/javascript/
|
|
||||||
|
|
||||||
#安装依赖
|
mount_cumebox2_rootfs() {
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
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=1280 && 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
|
||||||
|
sudo mount $LOOPDEV $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
|
||||||
|
}
|
||||||
|
|
||||||
|
umount_onecloud_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/dev
|
||||||
|
sudo umount $ROOTFS/proc
|
||||||
|
sudo umount $ROOTFS
|
||||||
|
sudo losetup -d $LOOPDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
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/usr/share/janus/javascript $ROOTFS/usr/lib/ustreamer/janus $ROOTFS/run/kvmd $ROOTFS/var/lib/kvmd/msd/images $ROOTFS/var/lib/kvmd/msd/meta
|
||||||
|
sudo cp -r ../One-KVM $ROOTFS/
|
||||||
|
sudo cp -r $ROOTFS/One-KVM/configs/kvmd/* $ROOTFS/One-KVM/configs/nginx $ROOTFS/One-KVM/configs/janus \
|
||||||
|
$ROOTFS/etc/kvmd
|
||||||
|
sudo cp -r $ROOTFS/One-KVM/web $ROOTFS/One-KVM/extras $ROOTFS/One-KVM/contrib/keymaps $ROOTFS/usr/share/kvmd
|
||||||
|
sudo cp $ROOTFS/One-KVM/testenv/fakes/vcgencmd $ROOTFS/usr/bin/
|
||||||
|
sudo cp -r $ROOTFS/One-KVM/testenv/js/* $ROOTFS/usr/share/janus/javascript/
|
||||||
|
}
|
||||||
|
|
||||||
|
config_onecloud_file() {
|
||||||
|
sudo cp $SRCPATH/image/onecloud/rc.local $ROOTFS/etc/
|
||||||
|
sudo cp $ROOTFS/One-KVM/build/platform/onecloud $ROOTFS/usr/share/kvmd/platform
|
||||||
|
}
|
||||||
|
|
||||||
|
config_cumebox2_file() {
|
||||||
|
sudo cp $ROOTFS/One-KVM/build/platform/cumebox2 $ROOTFS/usr/share/kvmd/platform
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
instal_one-kvm() {
|
||||||
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
apt update \
|
apt update \
|
||||||
&& apt install -y python3-aiofiles python3-aiohttp python3-appdirs python3-asn1crypto python3-async-timeout \
|
&& apt install -y python3-aiofiles python3-aiohttp python3-appdirs python3-asn1crypto python3-async-timeout \
|
||||||
python3-bottle python3-cffi python3-chardet python3-click python3-colorama python3-cryptography python3-dateutil \
|
python3-bottle python3-cffi python3-chardet python3-click python3-colorama python3-cryptography python3-dateutil \
|
||||||
@ -78,13 +122,6 @@ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|||||||
&& 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 " \
|
|
||||||
curl https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.armhf -L -o /usr/bin/ttyd \
|
|
||||||
&& chmod +x /usr/bin/ttyd \
|
|
||||||
&& systemd-sysusers /One-KVM/configs/os/kvmd-webterm.conf \
|
|
||||||
&& mkdir -p /home/kvmd-webterm \
|
|
||||||
&& chown kvmd-webterm /home/kvmd-webterm "
|
|
||||||
|
|
||||||
|
|
||||||
#服务自启
|
#服务自启
|
||||||
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
@ -98,6 +135,7 @@ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|||||||
&& echo 'kvmd ALL=(ALL) NOPASSWD: /etc/kvmd/custom_atx/gpio.sh' >> /etc/sudoers \
|
&& 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 \
|
&& 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/sysusers.conf \
|
||||||
|
&& systemd-sysusers /One-KVM/configs/os/kvmd-webterm.conf \
|
||||||
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
||||||
&& sed -i 's/ch9329/otg/g' /etc/kvmd/override.yaml \
|
&& sed -i 's/ch9329/otg/g' /etc/kvmd/override.yaml \
|
||||||
&& sed -i 's/device: \/dev\/ttyUSB0//g' /etc/kvmd/override.yaml \
|
&& sed -i 's/device: \/dev\/ttyUSB0//g' /etc/kvmd/override.yaml \
|
||||||
@ -110,20 +148,87 @@ sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
|||||||
&& systemctl disable nginx janus \
|
&& systemctl disable nginx janus \
|
||||||
&& rm -r /One-KVM "
|
&& 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 " \
|
sudo chroot --userspec "root:root" $ROOTFS bash -c " \
|
||||||
sed -i '2c ATX=GPIO' /etc/kvmd/atx.sh \
|
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/SHUTDOWNPIN/gpiochip1 7/g' /etc/kvmd/custom_atx/gpio.sh \
|
||||||
&& sed -i 's/REBOOTPIN/gpiochip0 11/g' /etc/kvmd/custom_atx/gpio.sh "
|
&& sed -i 's/REBOOTPIN/gpiochip0 11/g' /etc/kvmd/custom_atx/gpio.sh "
|
||||||
|
|
||||||
#卸载镜像
|
}
|
||||||
sudo umount $ROOTFS/sys
|
|
||||||
sudo umount $ROOTFS/dev
|
instal_one-kvm_for_cumebox2() {
|
||||||
sudo umount $ROOTFS/proc
|
|
||||||
sudo umount $ROOTFS
|
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 "
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pack_img_onecloud() {
|
||||||
|
sudo rm $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 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
|
||||||
|
onecloud)
|
||||||
|
mount_onecloud_rootfs
|
||||||
|
config_file
|
||||||
|
config_onecloud_file
|
||||||
|
instal_one-kvm
|
||||||
|
instal_one-kvm_for_onecloud
|
||||||
|
umount_onecloud_rootfs
|
||||||
|
pack_img_onecloud
|
||||||
|
;;
|
||||||
|
cumebox2)
|
||||||
|
mount_cumebox2_rootfs
|
||||||
|
config_file
|
||||||
|
config_cumebox2_file
|
||||||
|
parpare_install_cumebox2
|
||||||
|
instal_one-kvm
|
||||||
|
instal_one-kvm_for_cumebox2
|
||||||
|
umount_cumebox2_rootfs
|
||||||
|
pack_img_cumebox2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Do no thing."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
#打包镜像
|
|
||||||
sudo rm $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_241004.burn.img $SRCPATH/tmp/
|
|
||||||
sudo rm $SRCPATH/tmp/*
|
|
||||||
|
|||||||
3
build/platform/cumebox2
Normal file
3
build/platform/cumebox2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PIKVM_MODEL=v2_model
|
||||||
|
PIKVM_VIDEO=usb_video
|
||||||
|
PIKVM_BOARD=cumebox2
|
||||||
Loading…
x
Reference in New Issue
Block a user