diff --git a/repos/ports/run/vbox4_win7_32_share.run b/repos/ports/run/vbox4_win7_32_share.run
index 2b350b5096..3b2f7b920d 100644
--- a/repos/ports/run/vbox4_win7_32_share.run
+++ b/repos/ports/run/vbox4_win7_32_share.run
@@ -1,79 +1,3 @@
-#
-# This script is used to test the shared folder support of Vbox@Genode/NOVA.
-#
-# Requirements to run this script:
-# - hard disk with 4 primary partitions
-# - on the 4. partition an ext2 filesystem is expected with following files:
-# -- /win7.vdi
-# -- /ram/overlay_win7.vdi
-#
-# The overlay file must be generated beforehand, e.g.:
-#
-# vboxmanage showhdinfo win7.vdi
-#
-# to find out the size of the vdi and then to create the overlay:
-#
-# vboxmanage createhd --filename overlay_win7.vdi --size [vdi_size] --format vdi
-#
-#
-#
-#
-# The Windows image (win7.vdi) is prepared to contain a bat file with following
-# content:
-#
-# :check
-# IF EXIST E:\test.bat (GOTO start) ELSE (timeout /t 3 >nul)
-# GOTO check
-#
-# :start
-#
-# call E:\test.bat
-#
-# This file must be configured to be autostarted by Windows, e.g change the
-# value in the registry entry at
-#
-# HKEY_CURRENT_USER\Software/Microsoft\Windows\CurrentVersion\Run
-#
-# to the batch file in the Windows vdi image as described above.
-#
-#
-# What this script does:
-#
-# A VM containing a Win7 image is started configured with two different
-# Virtualbox fileshares (D: and E:). One contains a test file (test.bin),
-# which will be copied by the Windows VM from the one file share over to the
-# second one.
-# On Genode side a Noux instance is running a bash shell with the two
-# filesystems mounted. The shell is scripted by this script to wait for
-# completion of the copy operation performed by the Windows VM. If this is
-# detected, the bash scripts use sha1sum to generate hashes of the original
-# test file of the one file system share and of the copy on the second file
-# system share. This run scripts then compares the hashes and reports
-# "Test succeeded" if they are identical.
-#
-# This script generates the test file out of /dev/urandom and generates a
-# batch file test.bat which is placed in the shared folder for the VM. test.bat
-# is invoked by the batch file running already in the Windows VM as described
-# beforehand. test.bat contains the actual instructions to be performed by
-# the VM - for this script to copy the test.bin file from D: to E:.
-
-if {[have_include "power_on/qemu"]} {
- puts "\nRun script does not support Qemu.\n"
- exit 0
-}
-
-# Tested for nova and muen.
-if {(![have_spec nova] && ![have_spec muen])} {
- puts "Platform is unsupported."
- exit 0
-}
-
-set virtualbox_binary "virtualbox-rem"
-if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" }
-if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" }
-set virtualbox5_binary "virtualbox5-rem"
-if {[have_spec nova]} { set virtualbox5_binary "virtualbox5-nova" }
-
set flavor "win7"
set use_vbox4 1
@@ -86,262 +10,12 @@ set use_overlay_from_disk 1
set overlay_image "overlay_${flavor}.vdi"
set use_rumpfs 1
-set use_usb 0
+set use_usb 1
set use_ps2 [have_spec ps2]
set use_vms 1
set use_cpu_load 0
-#
-# Create .bat file to be executed by Win VM
-#
-set template_bat_fd [open "bin/template.bat" w]
-puts $template_bat_fd {:check
-IF EXIST E:\start.txt (GOTO start) ELSE (timeout /t 3 >nul)
-GOTO check
+set vbox_file "vm_${flavor}_32_share.vbox"
-:start
-
-copy D:\test.bin E:\test.bin
-copy D:\template.bat E:\done.txt
-shutdown /s /t 00}
-
-close $template_bat_fd
-
-# Convert bat file to dos format
-catch { exec unix2dos bin/template.bat }
-
-#
-# Create random test binary to be copied via shared folder of vbox
-#
-catch { exec dd if=/dev/urandom of=bin/test.bin bs=4096 count=8160 }
-
-#
-# Step 1: prepare and start the actual VM
-#
-set build_components {
- server/ram_fs server/report_rom
- server/tcp_terminal drivers/nic
- lib/libc_noux
- noux/minimal
-}
-
-#
-# Build Noux packages only once
-#
-foreach pkg {bash coreutils} {
- lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg }
-
-set boot_modules {
- ram_fs
- noux libc_noux.lib.so bash.tar coreutils.tar
- tcp_terminal lwip.lib.so nic_drv report_rom
- test.bin template.bat
- vm_auto_share.vbox
-}
-
-set config_of_app {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
-append config_of_app "
- "
-append config_of_app {
-
-
-
-
-
- }
-
-append_if [expr $use_ram_fs] config_of_app {
- }
-
-append config_of_app {
-
-
-
-
-
-
- }
-
-append_if [expr $use_ram_fs] config_of_app {
-
-
- }
-
-append config_of_app {
-
-
-
-
-
-
-
-
-
-
-}
-
-source ${genode_dir}/repos/ports/run/virtualbox_auto.inc
-
-exec tar cfv bin/bash.tar -h -C bin/bash .
-exec tar cfv bin/coreutils.tar -h -C bin/coreutils .
-exec cp ${genode_dir}/repos/ports/run/vm_auto_share.vbox bin/.
-
-build_boot_image $boot_modules
-
-#
-# Step 2: Read out TCP/IP address of tcp_terminal running on Genode target
-#
-run_genode_until {\[init -> tcp_terminal\] got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} 20
-set serial_id [output_spawn_id]
-
-regexp {\[init -> tcp_terminal\] got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $output serial_ip_addr
-regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $serial_ip_addr serial_ip_addr
-
-#
-# Step 3: Wait until Windows is up for sure
-#
-
-
-run_genode_until {\[init -\> vbox1\].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} 300 $serial_id
-
-
-#
-# Step 4 : connect to Noux of the running Genode target and issue bash commands
-# via netcat
-#
-puts "\nTest shared folder\n"
-
-spawn netcat $serial_ip_addr 8888
-set noux_id $spawn_id
-
-run_genode_until {\[init -> tcp_terminal\] connection established} 20 $serial_id
-
-#
-# Step 5 : interact with netcat -> ... -> tcp_terminal -> Noux -> bash
-#
-
-# Windows does not like trailing zeros introduced by our ROM service.
-# -> .bat script does not find labels like 'check' with zero bytes
-# so - delete zero bytes
-puts $noux_id "cat from/template\.bat | tr -d \"\\0\" >to/test\.bat"
-
-# SHA1 of original file
-puts $noux_id "sha1sum from/test.bin"
-
-# Tell Windows VM to start copying
-puts $noux_id "echo \"start\" > to/start\.txt"
-
-# Wait until Windows finished copying
-puts $noux_id "while \[ ! -f to/done\.txt ]"
-puts $noux_id "do"
-puts $noux_id "sleep 5"
-puts $noux_id "done"
-
-# Wait until VM signaled shutdown state
-run_genode_until {\[init\] child "vbox1" exited with exit value 0} 120 $serial_id
-
-# SHA1 of copied file
-puts $noux_id "sha1sum to/test.bin"
-
-# Wait for output of bash shell until last SHA1 sum is calculated
-run_genode_until {[[:xdigit:]]+ to/test\.bin} 50 $noux_id
-
-
-# cleanup created files
-foreach pkg {bash coreutils} { exec rm -f bin/$pkg.tar }
-exec rm -f bin/test.bin
-exec rm -f bin/template.bat
-exec rm -f bin/vm_auto_share.vbox
-
-
-#
-# Step 5: Compare sha1sum of original file and of copy made by .bat file in VM
-#
-set sha1sum_original [regexp -inline {[[:xdigit:]]+ from/test\.bin} $output]
-set sha1sum_copy [regexp -inline {[[:xdigit:]]+ to/test\.bin} $output]
-set sha1sum_original [regexp -inline {[[:xdigit:]]+} $sha1sum_original]
-set sha1sum_copy [regexp -inline {[[:xdigit:]]+} $sha1sum_copy]
-
-puts -nonewline "\n$sha1sum_original ?= $sha1sum_copy --> "
-if {$sha1sum_original eq ""} {
- puts " empty -> no "
-} else {
- if {$sha1sum_original != $sha1sum_copy} {
- puts "no"
- exit -1
- } else {
- puts "yes"
- }
-}
+source ${genode_dir}/repos/ports/run/vbox_share.inc
diff --git a/repos/ports/run/vbox5_win7_64_share.run b/repos/ports/run/vbox5_win7_64_share.run
new file mode 100644
index 0000000000..8f8da1d337
--- /dev/null
+++ b/repos/ports/run/vbox5_win7_64_share.run
@@ -0,0 +1,23 @@
+assert_spec 64bit
+
+set flavor "win7_64"
+
+set use_vbox4 0
+set use_vbox5 1
+
+set vdi_image "${flavor}.vdi"
+# Write overlay back to harddisk if set to 0
+set use_ram_fs 1
+set use_overlay_from_disk 1
+set overlay_image "overlay_${flavor}.vdi"
+set use_rumpfs 1
+
+set use_usb 1
+set use_ps2 [have_spec ps2]
+
+set use_vms 1
+set use_cpu_load 0
+
+set vbox_file "vm_${flavor}_share.vbox"
+
+source ${genode_dir}/repos/ports/run/vbox_share.inc
diff --git a/repos/ports/run/vbox_share.inc b/repos/ports/run/vbox_share.inc
new file mode 100644
index 0000000000..78f93b4c84
--- /dev/null
+++ b/repos/ports/run/vbox_share.inc
@@ -0,0 +1,362 @@
+#
+# This script is used to test the shared folder support of Vbox@Genode/NOVA.
+#
+# Requirements to run this script:
+# - hard disk with 4 primary partitions
+# - on the 4. partition an ext2 filesystem is expected with following files:
+# -- /win7.vdi
+# -- /ram/overlay_win7.vdi
+#
+# The overlay file must be generated beforehand, e.g.:
+#
+# vboxmanage showhdinfo win7.vdi
+#
+# to find out the size of the vdi and then to create the overlay:
+#
+# vboxmanage createhd --filename overlay_win7.vdi --size [vdi_size] --format vdi
+#
+#
+#
+#
+# The Windows image (win7.vdi) is prepared to contain a bat file with following
+# content:
+#
+# :check
+# IF EXIST E:\test.bat (GOTO start) ELSE (timeout /t 3 >nul)
+# GOTO check
+#
+# :start
+#
+# call E:\test.bat
+#
+# This file must be configured to be autostarted by Windows, e.g change the
+# value in the registry entry at
+#
+# HKEY_CURRENT_USER\Software/Microsoft\Windows\CurrentVersion\Run
+#
+# to the batch file in the Windows vdi image as described above.
+#
+#
+# What this script does:
+#
+# A VM containing a Win7 image is started configured with two different
+# Virtualbox fileshares (D: and E:). One contains a test file (test.bin),
+# which will be copied by the Windows VM from the one file share over to the
+# second one.
+# On Genode side a Noux instance is running a bash shell with the two
+# filesystems mounted. The shell is scripted by this script to wait for
+# completion of the copy operation performed by the Windows VM. If this is
+# detected, the bash scripts use sha1sum to generate hashes of the original
+# test file of the one file system share and of the copy on the second file
+# system share. This run scripts then compares the hashes and reports
+# "Test succeeded" if they are identical.
+#
+# This script generates the test file out of /dev/urandom and generates a
+# batch file test.bat which is placed in the shared folder for the VM. test.bat
+# is invoked by the batch file running already in the Windows VM as described
+# beforehand. test.bat contains the actual instructions to be performed by
+# the VM - for this script to copy the test.bin file from D: to E:.
+
+if {[have_include "power_on/qemu"]} {
+ puts "\nRun script does not support Qemu.\n"
+ exit 0
+}
+
+# Tested for nova and muen.
+if {(![have_spec nova] && ![have_spec muen])} {
+ puts "Platform is unsupported."
+ exit 0
+}
+
+set virtualbox_binary "virtualbox-rem"
+if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" }
+if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" }
+set virtualbox5_binary "virtualbox5-rem"
+if {[have_spec nova]} { set virtualbox5_binary "virtualbox5-nova" }
+
+#
+# Create .bat file to be executed by Win VM
+#
+set template_bat_fd [open "bin/template.bat" w]
+puts $template_bat_fd {:check
+IF EXIST E:\start.txt (GOTO start) ELSE (timeout /t 3 >nul)
+GOTO check
+
+:start
+
+copy D:\test.bin E:\test.bin
+copy D:\template.bat E:\done.txt
+shutdown /s /t 00}
+
+close $template_bat_fd
+
+# Convert bat file to dos format
+catch { exec unix2dos bin/template.bat }
+
+#
+# Create random test binary to be copied via shared folder of vbox
+#
+catch { exec dd if=/dev/urandom of=bin/test.bin bs=4096 count=8160 }
+
+#
+# Step 1: prepare and start the actual VM
+#
+set build_components {
+ server/input_merger
+ server/ram_fs server/report_rom
+ server/tcp_terminal drivers/nic
+ lib/libc_noux
+ noux/minimal
+}
+
+#
+# Build Noux packages only once
+#
+foreach pkg {bash coreutils} {
+ lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg }
+
+set boot_modules {
+ ram_fs
+ noux libc_noux.lib.so bash.tar coreutils.tar
+ tcp_terminal lwip.lib.so nic_drv report_rom
+ input_merger
+ test.bin template.bat
+}
+
+append boot_modules $vbox_file
+
+set config_of_app {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+append_if [expr $use_ps2] config_of_app {
+ }
+append_if [expr $use_usb] config_of_app {
+ }
+append config_of_app {
+
+ }
+append_if [expr $use_ps2] config_of_app {
+ }
+append_if [expr $use_usb] config_of_app {
+ }
+append config_of_app {
+
+
+
+
+ }
+append_if [expr $use_vbox4] config_of_app "
+ "
+append_if [expr $use_vbox5] config_of_app "
+ "
+append config_of_app {
+
+
+
+
+
+ }
+
+append_if [expr $use_ram_fs] config_of_app {
+ }
+
+append config_of_app {
+
+
+
+
+
+
+ }
+
+append_if [expr $use_ram_fs] config_of_app {
+
+
+ }
+
+append config_of_app {
+
+
+
+
+
+
+
+
+
+
+
+}
+
+source ${genode_dir}/repos/ports/run/virtualbox_auto.inc
+
+exec tar cfv bin/bash.tar -h -C bin/bash .
+exec tar cfv bin/coreutils.tar -h -C bin/coreutils .
+exec cp ${genode_dir}/repos/ports/run/$vbox_file bin/.
+
+build_boot_image $boot_modules
+
+#
+# Step 2: Read out TCP/IP address of tcp_terminal running on Genode target
+#
+run_genode_until {\[init -> tcp_terminal\] got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} 20
+set serial_id [output_spawn_id]
+
+regexp {\[init -> tcp_terminal\] got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $output serial_ip_addr
+regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $serial_ip_addr serial_ip_addr
+
+#
+# Step 3: Wait until Windows is up for sure
+#
+
+
+run_genode_until {\[init -\> vbox1\].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} 300 $serial_id
+
+
+#
+# Step 4 : connect to Noux of the running Genode target and issue bash commands
+# via netcat
+#
+puts "\nTest shared folder\n"
+
+spawn netcat $serial_ip_addr 8888
+set noux_id $spawn_id
+set spawn_id_list [list $noux_id $serial_id]
+
+run_genode_until {\[init -> tcp_terminal\] connection established} 20 $spawn_id_list
+
+#
+# Step 5 : interact with netcat -> ... -> tcp_terminal -> Noux -> bash
+#
+
+# Windows does not like trailing zeros introduced by our ROM service.
+# -> .bat script does not find labels like 'check' with zero bytes
+# so - delete zero bytes
+puts $noux_id "cat from/template\.bat | tr -d \"\\0\" >to/test\.bat"
+
+# SHA1 of original file
+puts $noux_id "sha1sum from/test.bin"
+
+# Tell Windows VM to start copying
+puts $noux_id "echo \"start\" > to/start\.txt"
+
+# Wait until Windows finished copying
+puts $noux_id "while \[ ! -f to/done\.txt ]"
+puts $noux_id "do"
+puts $noux_id "sleep 5"
+puts $noux_id "done"
+
+# Wait until VM signaled shutdown state
+run_genode_until {\[init\] child "vbox1" exited with exit value 0} 120 $spawn_id_list
+
+# SHA1 of copied file
+puts $noux_id "sha1sum to/test.bin"
+
+# Wait for output of bash shell until last SHA1 sum is calculated
+run_genode_until {[[:xdigit:]]+ to/test\.bin} 50 $spawn_id_list
+
+
+# cleanup created files
+foreach pkg {bash coreutils} { exec rm -f bin/$pkg.tar }
+exec rm -f bin/test.bin
+exec rm -f bin/template.bat
+exec rm -f bin/$vbox_file
+
+
+#
+# Step 5: Compare sha1sum of original file and of copy made by .bat file in VM
+#
+set sha1sum_original [regexp -inline {[[:xdigit:]]+ from/test\.bin} $output]
+set sha1sum_copy [regexp -inline {[[:xdigit:]]+ to/test\.bin} $output]
+set sha1sum_original [regexp -inline {[[:xdigit:]]+} $sha1sum_original]
+set sha1sum_copy [regexp -inline {[[:xdigit:]]+} $sha1sum_copy]
+
+puts -nonewline "\n$sha1sum_original ?= $sha1sum_copy --> "
+if {$sha1sum_original eq ""} {
+ puts " empty -> no "
+} else {
+ if {$sha1sum_original != $sha1sum_copy} {
+ puts "no"
+ exit -1
+ } else {
+ puts "yes"
+ }
+}
diff --git a/repos/ports/run/vm_auto_share.vbox b/repos/ports/run/vm_auto_share.vbox
deleted file mode 100644
index 09f2e07735..0000000000
--- a/repos/ports/run/vm_auto_share.vbox
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/repos/ports/run/vm_win7_32_share.vbox b/repos/ports/run/vm_win7_32_share.vbox
new file mode 100644
index 0000000000..1576012152
--- /dev/null
+++ b/repos/ports/run/vm_win7_32_share.vbox
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/repos/ports/run/vm_win7_64_share.vbox b/repos/ports/run/vm_win7_64_share.vbox
new file mode 100644
index 0000000000..41190ff610
--- /dev/null
+++ b/repos/ports/run/vm_win7_64_share.vbox
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tool/autopilot.list b/tool/autopilot.list
index 013924d5e7..e465b559b1 100644
--- a/tool/autopilot.list
+++ b/tool/autopilot.list
@@ -55,6 +55,7 @@ vbox4_win81_64
vbox4_win10_64
vbox5_win7_32
vbox5_win7_64
+vbox5_win7_64_share
vbox5_win10_64
tz_vmm
vmm