summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorwangmenglan <[email protected]>2022-12-22 19:31:14 +0800
committer付明卫 <[email protected]>2022-12-23 03:29:40 +0000
commit0eee6a54c494f9dbfb570ce631295ade4dd444a4 (patch)
tree21f53d3ad17759ec571f769e09ce62ac6791dbe4 /tools
parent51d771ba3c77dd7555261e15816f2939e32ad323 (diff)
✨ feat(TSG-12762): TSG-OS自动构建虚拟硬盘
Diffstat (limited to 'tools')
-rw-r--r--tools/mk-kvm-gns3a.sh59
-rw-r--r--tools/mk-kvm.sh65
-rw-r--r--tools/onie-base-kvm.imgbin0 -> 25624576 bytes
-rw-r--r--tools/upload.sh3
4 files changed, 127 insertions, 0 deletions
diff --git a/tools/mk-kvm-gns3a.sh b/tools/mk-kvm-gns3a.sh
new file mode 100644
index 00000000..854551d1
--- /dev/null
+++ b/tools/mk-kvm-gns3a.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+set -x
+
+OS_PATH_NAME=$1
+GNS3_TEMPLATE_FILE=$2
+
+OS_NAME=$(basename ${OS_PATH_NAME})
+OS_MD5=$(md5sum ${OS_PATH_NAME} | awk '{print $1}')
+OS_SIZE=$(wc -c < ${OS_PATH_NAME})
+OS_VERSION=$(echo ${OS_NAME} | grep -Eo "[0-9]+\.[0-9]+")
+
+if [ -z "${OS_VERSION}" ]; then
+ OS_VERSION=1.1
+fi
+
+cat <<EOF > ${GNS3_TEMPLATE_FILE}
+{
+ "name": "TSG-X",
+ "category": "guest",
+ "description": "TSG-X 0906",
+ "vendor_name": "",
+ "vendor_url": "",
+ "documentation_url": "",
+ "product_name": "TSG-X",
+ "registry_version": 3,
+ "status": "stable",
+ "maintainer": "GNS3 Team",
+ "maintainer_email": "[email protected]",
+ "qemu": {
+ "adapter_type": "virtio-net-pci",
+ "adapters": 4,
+ "ram": 32768,
+ "cpus": 4,
+ "hda_disk_interface": "virtio",
+ "arch": "x86_64",
+ "console_type": "vnc",
+ "kvm": "require",
+ "options": "-nographic -cpu host"
+ },
+ "images": [
+ {
+ "filename": "${OS_NAME}",
+ "version": "${OS_VERSION}",
+ "md5sum": "${OS_MD5}",
+ "filesize": ${OS_SIZE}
+ }
+ ],
+ "versions": [
+ {
+ "name": "${OS_VERSION}",
+ "images": {
+ "hda_disk_image": "${OS_NAME}"
+ }
+ }
+ ]
+}
+EOF
+
diff --git a/tools/mk-kvm.sh b/tools/mk-kvm.sh
new file mode 100644
index 00000000..b2b361ed
--- /dev/null
+++ b/tools/mk-kvm.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+# Copyright (C) 2014 Curt Brune <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0
+set -xe
+
+MEM=16384
+DISK=$1
+
+# Path to ONIE installer .iso image
+CDROM="onie-uefi-kvm_x86_64.iso"
+
+# Path to OVMF firmware for qemu
+# Download OVMF from http://www.tianocore.org/ovmf/
+OVMF="OVMF.fd"
+
+# VM will listen on telnet port $KVM_PORT
+KVM_PORT=9000
+
+# VNC display to use
+VNC_PORT=0
+
+# set mode=disk to boot from hard disk
+mode=disk
+
+# set mode=cdrom to boot from the CDROM
+# mode=cdrom
+
+# set mode=net to boot from network adapters
+# mode=net
+
+# set firmware=uefi to boot with UEFI firmware, otherwise the system
+# will boot into legacy mode.
+# firmware=uefi
+
+boot=c
+if [ "$mode" = "cdrom" ] ; then
+ boot="order=cd,once=d"
+ cdrom="-cdrom $CDROM"
+elif [ "$mode" = "net" ] ; then
+ boot="order=cd,once=n,menu=on"
+fi
+
+if [ "$firmware" = "uefi" ] ; then
+ [ -r "$OVMF" ] || {
+ echo "ERROR: Cannot find the OVMF firmware for UEFI: $OVMF"
+ echo "Please make sure to install the OVMF.fd in the expected directory"
+ exit 1
+ }
+ bios="-bios $OVMF"
+fi
+
+/usr/libexec/qemu-kvm -m $MEM \
+ -name "onie" \
+ -smp 4,cores=2,threads=1,sockets=2 \
+ $bios \
+ -boot $boot $cdrom \
+ -device e1000,netdev=onienet \
+ -netdev user,id=onienet,hostfwd=:0.0.0.0:3040-:22 \
+ -nographic \
+ -no-reboot \
+ -drive file=$DISK,media=disk,if=virtio,index=0
+
+exit 0
diff --git a/tools/onie-base-kvm.img b/tools/onie-base-kvm.img
new file mode 100644
index 00000000..60e7c667
--- /dev/null
+++ b/tools/onie-base-kvm.img
Binary files differ
diff --git a/tools/upload.sh b/tools/upload.sh
index eec64916..75141983 100644
--- a/tools/upload.sh
+++ b/tools/upload.sh
@@ -8,6 +8,9 @@ if [ -n "${UPLOAD_TO_FILE_REPO}" ]; then
#python3 ~/file_upload_tools.py ${PULP3_FILE_REPO_NAME} ${PULP3_FILE_DIST_NAME} ./images/*.sha256sum.txt
if [ "${PROFILE_LIST}" == "SERVER" ]; then
python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.tar
+ elif [ "${PROFILE_LIST}" == "KVM" ]; then
+ python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.img
+ python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.gns3a
else
python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.bin
fi