summaryrefslogtreecommitdiffstats
path: root/core/modules/vbox-src/data
diff options
context:
space:
mode:
authorJonathan Bauer2018-04-19 16:57:29 +0200
committerJonathan Bauer2018-04-19 16:57:29 +0200
commit33095bd72259fffed819da9802a67687bfc054f5 (patch)
treefa56eddbd260ccc0ea40d0fd2fc5a4120c9adc5f /core/modules/vbox-src/data
parent[vbox-src] add floppy host device (diff)
downloadmltk-33095bd72259fffed819da9802a67687bfc054f5.tar.gz
mltk-33095bd72259fffed819da9802a67687bfc054f5.tar.xz
mltk-33095bd72259fffed819da9802a67687bfc054f5.zip
[vbox-src] add CDROM support
Diffstat (limited to 'core/modules/vbox-src/data')
-rwxr-xr-xcore/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc39
1 files changed, 39 insertions, 0 deletions
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