From 33095bd72259fffed819da9802a67687bfc054f5 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Thu, 19 Apr 2018 16:57:29 +0200 Subject: [vbox-src] add CDROM support --- .../includes/finalize_machine_config.inc | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'core/modules/vbox-src/data') diff --git a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc index 61605b42..07f7e170 100755 --- a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc +++ b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc @@ -65,6 +65,44 @@ setup_floppies() { "uuid={${SLX_FLOPPY_UUID}}" } +setup_optical_drives() { + if isempty CDROM_0 && isempty CDROM_1; then + writelog "No host CD-ROM detected." + return 1 + fi + local controller='StorageController[@type="AHCI"]' + local devnum=1 + if node_exists '/VirtualBox/Machine/StorageControllers/'"$controller"; then + # TODO validating port count... + writelog "AHCI controller found, will add CDROMs to it." + else + writelog "Adding SATA controller for CDROMs." + add_node \ + "/VirtualBox/Machine/StorageControllers" "StorageController" \ + "name=SATA-CDROM" \ + "type=AHCI" \ + "PortCount=1" \ + "useHostIOCache=true" + controller='StorageController[@name="SATA-CDROM"]' + devnum=0 + fi + # now add the devices + for cdrom in $CDROM_0 $CDROM_1; do + writelog "Adding passthrough CDROM" + add_node \ + '/VirtualBox/Machine/StorageControllers/'"$controller" "AttachedDevice" \ + "type=DVD" \ + "passthrough=true" \ + "hotpluggable=false" \ + "port=1" \ + "device=$devnum" + (( devnum ++ )) + add_node \ + '/VirtualBox/Machine/StorageControllers/'"$controller"'/AttachedDevice[@type="DVD"]' "HostDrive" \ + "src=${cdrom}" + done +} + setup_shared_folders() { # TODO common share through shared folders? if isempty SHARED_FOLDERS HOME_SHARE_NAME HOME_SHARE_PATH; then @@ -148,6 +186,7 @@ finalize_machine_config() { setup_disk_image setup_floppies + setup_optical_drives setup_ethernet setup_cpu_ram setup_sound -- cgit v1.2.3-55-g7522