mirror of
https://github.com/RROrg/rr.git
synced 2025-08-21 20:17:11 +08:00
Compare commits
No commits in common. "e380a6ab52a5e63bc902b10faea940bd9a110447" and "e9aa15316aeae6d69f5cf9d8f1d051351074e4d7" have entirely different histories.
e380a6ab52
...
e9aa15316a
17
.github/workflows/issues.yml
vendored
17
.github/workflows/issues.yml
vendored
@ -37,7 +37,6 @@ jobs:
|
|||||||
iscustom = 'false'
|
iscustom = 'false'
|
||||||
warinfo = 'false'
|
warinfo = 'false'
|
||||||
|
|
||||||
format = ''
|
|
||||||
language= ''
|
language= ''
|
||||||
model = ''
|
model = ''
|
||||||
version = ''
|
version = ''
|
||||||
@ -47,7 +46,6 @@ jobs:
|
|||||||
if issuetitle.lower().startswith('custom'):
|
if issuetitle.lower().startswith('custom'):
|
||||||
jsonbody = json.loads(issuebody)
|
jsonbody = json.loads(issuebody)
|
||||||
iscustom = 'true'
|
iscustom = 'true'
|
||||||
format = jsonbody.get('format', '')
|
|
||||||
language = jsonbody.get('language', '')
|
language = jsonbody.get('language', '')
|
||||||
model = jsonbody.get('model', '')
|
model = jsonbody.get('model', '')
|
||||||
version = jsonbody.get('version', '')
|
version = jsonbody.get('version', '')
|
||||||
@ -63,7 +61,6 @@ jobs:
|
|||||||
set_output("iscustom", iscustom)
|
set_output("iscustom", iscustom)
|
||||||
set_output("warinfo", warinfo)
|
set_output("warinfo", warinfo)
|
||||||
|
|
||||||
set_output("format", format)
|
|
||||||
set_output("language", language)
|
set_output("language", language)
|
||||||
set_output("model", model)
|
set_output("model", model)
|
||||||
set_output("version", version)
|
set_output("version", version)
|
||||||
@ -230,17 +227,9 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
ls rr -al
|
ls rr -al
|
||||||
if [ "${{ env.format }}" = "ova" ]; then
|
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip"
|
||||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
zip -9 "${ARTIFACTS}" -j rr/rr.img
|
||||||
convertova "rr/rr.img" "rr/rr.ova"
|
|
||||||
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip"
|
|
||||||
(cd rr; sha256sum rr.ova >../sha256sum)
|
|
||||||
zip -9 "${ARTIFACTS}" -j rr/rr.ova sha256sum
|
|
||||||
else
|
|
||||||
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip"
|
|
||||||
(cd rr; sha256sum rr.img >../sha256sum)
|
|
||||||
zip -9 "${ARTIFACTS}" -j rr/rr.img sha256sum
|
|
||||||
fi
|
|
||||||
# UPLOAD="$(curl -k -F "file=@${ARTIFACTS}" -F "token=${{ secrets.TT_TOKEN }}" -F "model=0" -X POST "https://tmp-cli.vx-cdn.com/app/upload_cli")"
|
# UPLOAD="$(curl -k -F "file=@${ARTIFACTS}" -F "token=${{ secrets.TT_TOKEN }}" -F "model=0" -X POST "https://tmp-cli.vx-cdn.com/app/upload_cli")"
|
||||||
if echo "${UPLOAD}" | grep -q "Download Page"; then
|
if echo "${UPLOAD}" | grep -q "Download Page"; then
|
||||||
DLURL="$(echo "${UPLOAD}" | grep "Download Page" | head -1)"
|
DLURL="$(echo "${UPLOAD}" | grep "Download Page" | head -1)"
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -13,10 +13,6 @@ rr*.vmdk
|
|||||||
tests
|
tests
|
||||||
Changelog*
|
Changelog*
|
||||||
|
|
||||||
ovftool*
|
|
||||||
OVA*
|
|
||||||
**.ova
|
|
||||||
|
|
||||||
files/mnt/p1/.locale
|
files/mnt/p1/.locale
|
||||||
files/mnt/p1/grub_cksum.syno
|
files/mnt/p1/grub_cksum.syno
|
||||||
files/mnt/p1/GRUB_VER
|
files/mnt/p1/GRUB_VER
|
||||||
|
BIN
docs/addons.xlsx
BIN
docs/addons.xlsx
Binary file not shown.
@ -185,7 +185,7 @@
|
|||||||
let formData = new FormData(form);
|
let formData = new FormData(form);
|
||||||
var title = "custom";
|
var title = "custom";
|
||||||
var body = {};
|
var body = {};
|
||||||
var _parameters = ["title", "format", "language", "model", "version", "addons", "modules"];
|
var _parameters = ["title", "language", "model", "version", "addons", "modules"];
|
||||||
for (var key in _parameters) {
|
for (var key in _parameters) {
|
||||||
var name = _parameters[key];
|
var name = _parameters[key];
|
||||||
if (name == "title") {
|
if (name == "title") {
|
||||||
@ -254,18 +254,6 @@
|
|||||||
value="" />
|
value="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-1 mb-2 ">
|
|
||||||
<div class="form-group-header">
|
|
||||||
<label class="color-fg-default text-mono f6">Format:</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-group-body">
|
|
||||||
<select class="form-select form-control select-sm input-contrast" id="format" name="inputs[format]"
|
|
||||||
value="">
|
|
||||||
<option selected="selected" value="img">img</option>
|
|
||||||
<option value="ova">ova</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group mt-1 mb-2 ">
|
<div class="form-group mt-1 mb-2 ">
|
||||||
<div class="form-group-header">
|
<div class="form-group-header">
|
||||||
<label class="color-fg-default text-mono f6">Language:</label>
|
<label class="color-fg-default text-mono f6">Language:</label>
|
||||||
|
BIN
docs/models.xlsx
BIN
docs/models.xlsx
Binary file not shown.
@ -8232,6 +8232,10 @@
|
|||||||
"description": "Console Rotation (180 degrees) Support",
|
"description": "Console Rotation (180 degrees) Support",
|
||||||
"depends": "fb,softcursor"
|
"depends": "fb,softcursor"
|
||||||
},
|
},
|
||||||
|
"fbdev": {
|
||||||
|
"description": "Framebuffer console primary device detection (Compiled by RR for DSM)",
|
||||||
|
"depends": ""
|
||||||
|
},
|
||||||
"font": {
|
"font": {
|
||||||
"description": "Console Fonts",
|
"description": "Console Fonts",
|
||||||
"depends": ""
|
"depends": ""
|
||||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
RR_VERSION="24.6.1"
|
RR_VERSION="24.6.0"
|
||||||
RR_RELEASE=""
|
RR_RELEASE=""
|
||||||
RR_TITLE="RR v${RR_VERSION}"
|
RR_TITLE="RR v${RR_VERSION}"
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
24.6.1
|
24.6.0
|
||||||
|
@ -287,101 +287,3 @@ function resizeImg() {
|
|||||||
sudo resize2fs $(ls ${LOOPX}* 2>/dev/null | sort -n | tail -1)
|
sudo resize2fs $(ls ${LOOPX}* 2>/dev/null | sort -n | tail -1)
|
||||||
sudo losetup -d ${LOOPX}
|
sudo losetup -d ${LOOPX}
|
||||||
}
|
}
|
||||||
|
|
||||||
# convertova
|
|
||||||
# $1 bootloader file
|
|
||||||
# $2 ova file
|
|
||||||
function convertova() {
|
|
||||||
BLIMAGE=${1}
|
|
||||||
OVAPATH=${2}
|
|
||||||
|
|
||||||
BLIMAGE="$(readlink -f "${BLIMAGE}")"
|
|
||||||
OVAPATH="$(readlink -f "${OVAPATH}")"
|
|
||||||
VMNAME="$(basename "${OVAPATH}" .ova)"
|
|
||||||
|
|
||||||
# Download and install ovftool if it doesn't exist
|
|
||||||
if [ ! -x ovftool/ovftool ]; then
|
|
||||||
rm -rf ovftool ovftool.zip
|
|
||||||
curl -skL https://github.com/rgl/ovftool-binaries/raw/main/archive/VMware-ovftool-4.6.0-21452615-lin.x86_64.zip -o ovftool.zip
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Failed to download ovftool"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
unzip ovftool.zip -d . >/dev/null 2>&1
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Failed to extract ovftool"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
chmod +x ovftool/ovftool
|
|
||||||
fi
|
|
||||||
if ! command -v qemu-img &>/dev/null; then
|
|
||||||
sudo apt install -y qemu-utils
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Convert raw image to VMDK
|
|
||||||
rm -rf "OVA_${VMNAME}"
|
|
||||||
mkdir -p "OVA_${VMNAME}"
|
|
||||||
qemu-img convert -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' "${BLIMAGE}" "OVA_${VMNAME}/${VMNAME}-disk1.vmdk"
|
|
||||||
qemu-img create -f vmdk "OVA_${VMNAME}/${VMNAME}-disk2.vmdk" "32G"
|
|
||||||
|
|
||||||
# Create VM configuration
|
|
||||||
cat <<_EOF_ >"OVA_${VMNAME}/${VMNAME}.vmx"
|
|
||||||
.encoding = "GBK"
|
|
||||||
config.version = "8"
|
|
||||||
virtualHW.version = "21"
|
|
||||||
displayName = "${VMNAME}"
|
|
||||||
annotation = "https://github.com/RROrg/rr"
|
|
||||||
guestOS = "ubuntu-64"
|
|
||||||
firmware = "efi"
|
|
||||||
mks.enable3d = "TRUE"
|
|
||||||
pciBridge0.present = "TRUE"
|
|
||||||
pciBridge4.present = "TRUE"
|
|
||||||
pciBridge4.virtualDev = "pcieRootPort"
|
|
||||||
pciBridge4.functions = "8"
|
|
||||||
pciBridge5.present = "TRUE"
|
|
||||||
pciBridge5.virtualDev = "pcieRootPort"
|
|
||||||
pciBridge5.functions = "8"
|
|
||||||
pciBridge6.present = "TRUE"
|
|
||||||
pciBridge6.virtualDev = "pcieRootPort"
|
|
||||||
pciBridge6.functions = "8"
|
|
||||||
pciBridge7.present = "TRUE"
|
|
||||||
pciBridge7.virtualDev = "pcieRootPort"
|
|
||||||
pciBridge7.functions = "8"
|
|
||||||
vmci0.present = "TRUE"
|
|
||||||
hpet0.present = "TRUE"
|
|
||||||
nvram = "${VMNAME}.nvram"
|
|
||||||
virtualHW.productCompatibility = "hosted"
|
|
||||||
powerType.powerOff = "soft"
|
|
||||||
powerType.powerOn = "soft"
|
|
||||||
powerType.suspend = "soft"
|
|
||||||
powerType.reset = "soft"
|
|
||||||
tools.syncTime = "FALSE"
|
|
||||||
sound.autoDetect = "TRUE"
|
|
||||||
sound.fileName = "-1"
|
|
||||||
sound.present = "TRUE"
|
|
||||||
numvcpus = "2"
|
|
||||||
cpuid.coresPerSocket = "1"
|
|
||||||
vcpu.hotadd = "TRUE"
|
|
||||||
memsize = "4096"
|
|
||||||
mem.hotadd = "TRUE"
|
|
||||||
usb.present = "TRUE"
|
|
||||||
ehci.present = "TRUE"
|
|
||||||
usb_xhci.present = "TRUE"
|
|
||||||
svga.graphicsMemoryKB = "8388608"
|
|
||||||
usb.vbluetooth.startConnected = "TRUE"
|
|
||||||
extendedConfigFile = "${VMNAME}.vmxf"
|
|
||||||
floppy0.present = "FALSE"
|
|
||||||
ethernet0.addressType = "generated"
|
|
||||||
ethernet0.virtualDev = "vmxnet3"
|
|
||||||
ethernet0.present = "TRUE"
|
|
||||||
sata0.present = "TRUE"
|
|
||||||
sata0:0.fileName = "${VMNAME}-disk1.vmdk"
|
|
||||||
sata0:0.present = "TRUE"
|
|
||||||
sata0:1.fileName = "${VMNAME}-disk2.vmdk"
|
|
||||||
sata0:1.present = "TRUE"
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
rm -f "${OVAPATH}"
|
|
||||||
ovftool/ovftool "OVA_${VMNAME}/${VMNAME}.vmx" "${OVAPATH}"
|
|
||||||
rm -rf "OVA_${VMNAME}"
|
|
||||||
}
|
|
||||||
|
211
scripts/vm.sh
Normal file
211
scripts/vm.sh
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
|
||||||
|
filename=$(basename "${1}")
|
||||||
|
|
||||||
|
OVFNAME=${filename%.*}
|
||||||
|
BLDISKNAME="${OVFNAME}-disk1.vmdk"
|
||||||
|
SDDISKNAME="${OVFNAME}-disk2.vmdk"
|
||||||
|
|
||||||
|
# Convert raw image to VMDK
|
||||||
|
qemu-img convert -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' "${1}" "${BLDISKNAME}"
|
||||||
|
#qemu-img create -f vmdk "${SDDISKNAME}" "32G"
|
||||||
|
|
||||||
|
BLSIZE=$(du -b "${BLDISKNAME}" | cut -f 1)
|
||||||
|
SDSIZE=$(du -b "${SDDISKNAME}" | cut -f 1)
|
||||||
|
BLVIRTUALSIZE=$(qemu-img info "${BLDISKNAME}" --output json | jq -r '."virtual-size"')
|
||||||
|
SDVIRTUALSIZE=$(qemu-img info "${SDDISKNAME}" --output json | jq -r '."virtual-size"')
|
||||||
|
|
||||||
|
# Create VM configuration
|
||||||
|
cat << _EOF_ > "${OVFNAME}.ovf"
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Envelope vmw:buildId="build-22220919" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<References>
|
||||||
|
<File ovf:href="${BLDISKNAME}" ovf:id="file1" ovf:size="${BLSIZE}"/>
|
||||||
|
<File ovf:href="${SDDISKNAME}" ovf:id="file2" ovf:size="${SDSIZE}"/>
|
||||||
|
</References>
|
||||||
|
<DiskSection>
|
||||||
|
<Info>Virtual disk information</Info>
|
||||||
|
<Disk ovf:capacity="${BLVIRTUALSIZE}" ovf:capacityAllocationUnits="byte" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="${BLSIZE}"/>
|
||||||
|
<Disk ovf:capacity="${SDVIRTUALSIZE}" ovf:capacityAllocationUnits="byte" ovf:diskId="vmdisk2" ovf:fileRef="file2" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="${SDSIZE}"/>
|
||||||
|
</DiskSection>
|
||||||
|
<NetworkSection>
|
||||||
|
<Info>The list of logical networks</Info>
|
||||||
|
<Network ovf:name="bridged">
|
||||||
|
<Description>The bridged network</Description>
|
||||||
|
</Network>
|
||||||
|
</NetworkSection>
|
||||||
|
<VirtualSystem ovf:id="vm">
|
||||||
|
<Info>A virtual machine</Info>
|
||||||
|
<Name>${OVFNAME}</Name>
|
||||||
|
<OperatingSystemSection ovf:id="94" vmw:osType="ubuntu64Guest">
|
||||||
|
<Info>The kind of installed guest operating system</Info>
|
||||||
|
</OperatingSystemSection>
|
||||||
|
<VirtualHardwareSection>
|
||||||
|
<Info>Virtual hardware requirements</Info>
|
||||||
|
<System>
|
||||||
|
<vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
|
||||||
|
<vssd:InstanceID>0</vssd:InstanceID>
|
||||||
|
<vssd:VirtualSystemIdentifier>${OVFNAME}</vssd:VirtualSystemIdentifier>
|
||||||
|
<vssd:VirtualSystemType>vmx-21</vssd:VirtualSystemType>
|
||||||
|
</System>
|
||||||
|
<Item>
|
||||||
|
<rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
|
||||||
|
<rasd:Description>Number of Virtual CPUs</rasd:Description>
|
||||||
|
<rasd:ElementName>2 virtual CPU(s)</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>1</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>3</rasd:ResourceType>
|
||||||
|
<rasd:VirtualQuantity>2</rasd:VirtualQuantity>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">2</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
|
||||||
|
<rasd:Description>Memory Size</rasd:Description>
|
||||||
|
<rasd:ElementName>4096MB of memory</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>2</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>4</rasd:ResourceType>
|
||||||
|
<rasd:VirtualQuantity>4096</rasd:VirtualQuantity>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:Address>0</rasd:Address>
|
||||||
|
<rasd:Description>SATA Controller</rasd:Description>
|
||||||
|
<rasd:ElementName>sataController0</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>3</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>vmware.sata.ahci</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>20</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:Address>0</rasd:Address>
|
||||||
|
<rasd:Description>USB Controller (XHCI)</rasd:Description>
|
||||||
|
<rasd:ElementName>usb3</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>4</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>vmware.usb.xhci</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>23</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:Address>0</rasd:Address>
|
||||||
|
<rasd:Description>USB Controller (EHCI)</rasd:Description>
|
||||||
|
<rasd:ElementName>usb</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>5</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>vmware.usb.ehci</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>23</rasd:ResourceType>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="ehciEnabled" vmw:value="true"/>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
||||||
|
<rasd:ElementName>serial0</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>6</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>21</rasd:ResourceType>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="yieldOnPoll" vmw:value="false"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="connectable.allowGuestControl" vmw:value="false"/>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:AddressOnParent>1</rasd:AddressOnParent>
|
||||||
|
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
||||||
|
<rasd:Connection>bridged</rasd:Connection>
|
||||||
|
<rasd:Description>VmxNet3 ethernet adapter on "bridged"</rasd:Description>
|
||||||
|
<rasd:ElementName>ethernet0</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>7</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>10</rasd:ResourceType>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="connectable.allowGuestControl" vmw:value="false"/>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
|
||||||
|
<rasd:ElementName>sound</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>8</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>vmware.soundcard.ensoniq1371</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>1</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
|
||||||
|
<rasd:ElementName>video</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>9</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>24</rasd:ResourceType>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="enable3DSupport" vmw:value="true"/>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
|
||||||
|
<rasd:ElementName>vmci</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>10</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
|
||||||
|
<rasd:ResourceType>1</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:AddressOnParent>0</rasd:AddressOnParent>
|
||||||
|
<rasd:ElementName>disk0</rasd:ElementName>
|
||||||
|
<rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
|
||||||
|
<rasd:InstanceID>11</rasd:InstanceID>
|
||||||
|
<rasd:Parent>3</rasd:Parent>
|
||||||
|
<rasd:ResourceType>17</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:AddressOnParent>1</rasd:AddressOnParent>
|
||||||
|
<rasd:ElementName>disk1</rasd:ElementName>
|
||||||
|
<rasd:HostResource>ovf:/disk/vmdisk2</rasd:HostResource>
|
||||||
|
<rasd:InstanceID>12</rasd:InstanceID>
|
||||||
|
<rasd:Parent>3</rasd:Parent>
|
||||||
|
<rasd:ResourceType>17</rasd:ResourceType>
|
||||||
|
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
|
||||||
|
</Item>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled" vmw:value="true"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled" vmw:value="true"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="firmware" vmw:value="efi"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="simultaneousThreads" vmw:value="1"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="virtualNuma.coresPerNumaNode" vmw:value="0"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="false"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
|
||||||
|
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="soft"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="cpuid.coresPerSocket" vmw:value="2"/>
|
||||||
|
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="hpet0.present" vmw:value="TRUE"/>
|
||||||
|
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="nvram" vmw:value="${OVFNAME}.nvram"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge0.present" vmw:value="TRUE"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.functions" vmw:value="8"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.present" vmw:value="TRUE"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.virtualDev" vmw:value="pcieRootPort"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.functions" vmw:value="8"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.present" vmw:value="TRUE"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.virtualDev" vmw:value="pcieRootPort"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.functions" vmw:value="8"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.present" vmw:value="TRUE"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.virtualDev" vmw:value="pcieRootPort"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.functions" vmw:value="8"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.present" vmw:value="TRUE"/>
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.virtualDev" vmw:value="pcieRootPort"/>
|
||||||
|
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="usb.vbluetooth.startConnected" vmw:value="TRUE"/>
|
||||||
|
|
||||||
|
<vmw:ExtraConfig ovf:required="false" vmw:key="virtualHW.productCompatibility" vmw:value="hosted"/>
|
||||||
|
</VirtualHardwareSection>
|
||||||
|
<AnnotationSection ovf:required="false">
|
||||||
|
<Info>A human-readable annotation</Info>
|
||||||
|
<Annotation>Redpill Recovery</Annotation>
|
||||||
|
</AnnotationSection>
|
||||||
|
</VirtualSystem>
|
||||||
|
</Envelope>
|
||||||
|
_EOF_
|
||||||
|
|
||||||
|
# Create manifest file for automatic integrity check
|
||||||
|
cat << _EOF_ > "${OVFNAME}.mf"
|
||||||
|
SHA256(${OVFNAME}.ovf)= $(sha256sum "${OVFNAME}.ovf" | mawk '{print $1}')
|
||||||
|
SHA256(${BLDISKNAME})= $(sha256sum "${BLDISKNAME}" | mawk '{print $1}')
|
||||||
|
SHA256(${SDDISKNAME})= $(sha256sum "${SDDISKNAME}" | mawk '{print $1}')
|
||||||
|
_EOF_
|
||||||
|
|
||||||
|
# Pack everything as OVA appliance for ESXi import
|
||||||
|
rm -f "${OVFNAME}.ova"
|
||||||
|
tar -cf "${OVFNAME}.ova" ${OVFNAME}.ovf ${BLDISKNAME} ${SDDISKNAME} ${OVFNAME}.mf
|
||||||
|
rm -f ${OVFNAME}.ovf ${BLDISKNAME} ${SDDISKNAME} ${OVFNAME}.mf
|
||||||
|
#gzip "${OVFNAME}.ova"
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user