diff --git a/repos/ports/run/vbox_auto_win7.run b/repos/ports/run/vbox_auto_win7.run
index a16251fc4b..625fc85f7e 100644
--- a/repos/ports/run/vbox_auto_win7.run
+++ b/repos/ports/run/vbox_auto_win7.run
@@ -7,6 +7,7 @@ set flavor "win7"
set use_vbox4 1
set use_vbox5 0
+set use_rumpfs 1
# Write overlay only into ram
set use_ram_fs 1
# However read initial overlay from disk
diff --git a/repos/ports/run/vbox_auto_win7_64.run b/repos/ports/run/vbox_auto_win7_64.run
index 1643c91d3d..1fc2121893 100644
--- a/repos/ports/run/vbox_auto_win7_64.run
+++ b/repos/ports/run/vbox_auto_win7_64.run
@@ -9,6 +9,7 @@ set flavor "win7_64"
set use_vbox4 1
set use_vbox5 0
+set use_rumpfs 1
# Write overlay only into ram
set use_ram_fs 1
# However read initial overlay from disk
diff --git a/repos/ports/run/vbox_auto_win7_64_raw.run b/repos/ports/run/vbox_auto_win7_64_raw.run
new file mode 100644
index 0000000000..d725b7d57f
--- /dev/null
+++ b/repos/ports/run/vbox_auto_win7_64_raw.run
@@ -0,0 +1,20 @@
+#
+# Windows 7 64bit in VirtualBox
+#
+
+assert_spec 64bit
+
+set flavor "win7_64_raw"
+
+set use_vbox4 1
+set use_vbox5 0
+
+# use vm image from a raw disk partition
+set use_rumpfs 0
+set use_ram_fs 0
+set use_overlay_from_disk 0
+
+set use_usb 1
+set use_ps2 [have_spec ps2]
+
+source ${genode_dir}/repos/ports/run/vbox_win.inc
diff --git a/repos/ports/run/vbox_auto_win7_share.run b/repos/ports/run/vbox_auto_win7_share.run
index 239fcff84f..ae7b075c8f 100644
--- a/repos/ports/run/vbox_auto_win7_share.run
+++ b/repos/ports/run/vbox_auto_win7_share.run
@@ -78,6 +78,7 @@ set vdi_image "${flavor}.vdi"
set use_ram_fs 0
set use_overlay_from_disk 0
set overlay_image "overlay_${flavor}.vdi"
+set use_rumpfs 1
set use_usb 0
set use_ps2 [have_spec ps2]
diff --git a/repos/ports/run/vbox_auto_win7_vbox5.run b/repos/ports/run/vbox_auto_win7_vbox5.run
index aa5a40c8be..c8c026bae6 100644
--- a/repos/ports/run/vbox_auto_win7_vbox5.run
+++ b/repos/ports/run/vbox_auto_win7_vbox5.run
@@ -10,6 +10,7 @@ set flavor "win7"
set use_vbox4 0
set use_vbox5 5
+set use_rumpfs 1
# Write overlay only into ram
set use_ram_fs 1
# However read initial overlay from disk
diff --git a/repos/ports/run/vbox_auto_win81_64.run b/repos/ports/run/vbox_auto_win81_64.run
index 6028047e92..d73dc4caae 100644
--- a/repos/ports/run/vbox_auto_win81_64.run
+++ b/repos/ports/run/vbox_auto_win81_64.run
@@ -9,6 +9,7 @@ set flavor "win81_64"
set use_vbox4 1
set use_vbox5 0
+set use_rumpfs 1
# Write overlay only into ram
set use_ram_fs 1
# However read initial overlay from disk
diff --git a/repos/ports/run/vbox_win.inc b/repos/ports/run/vbox_win.inc
index 1a6b406add..29ccd9bc64 100644
--- a/repos/ports/run/vbox_win.inc
+++ b/repos/ports/run/vbox_win.inc
@@ -10,6 +10,7 @@ if {[have_include "power_on/qemu"]} {
}
set vdi_image "${flavor}.vdi"
+set raw_image "${flavor}.vmdk"
set vbox_file "vm_${flavor}.vbox"
set overlay_image "overlay_${flavor}.vdi"
@@ -21,6 +22,7 @@ set build_components {
app/vbox_pointer
server/nit_fb
server/report_rom
+ server/dynamic_rom
}
set boot_modules {
@@ -31,6 +33,7 @@ set boot_modules {
vbox_pointer
nit_fb
report_rom
+ dynamic_rom
}
set config_of_app {
@@ -94,14 +97,12 @@ append config_of_app {
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -141,11 +142,43 @@ append config_of_app {
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+append_if [expr !$use_rumpfs] config_of_app {
+
+
+
+ }
+
+append config_of_app {
+
+
+
+
+
+
+
}
@@ -161,15 +194,26 @@ append config_of_app "
append config_of_app {
- }
+
+ }
+
+append_if [expr !$use_rumpfs] config_of_app {
+ }
+append config_of_app {
+ }
append_if [expr $use_ram_fs] config_of_app {
}
append config_of_app "
"
+append_if [expr !$use_rumpfs] config_of_app "
+ "
+
+append_if [expr $use_rumpfs || $use_ram_fs] config_of_app {
+ }
+
append config_of_app {
-
@@ -181,8 +225,11 @@ append_if [expr $use_ram_fs] config_of_app {
}
+append_if [expr $use_rumpfs] config_of_app {
+ }
+append_if [expr !$use_rumpfs] config_of_app {
+ }
append config_of_app {
-
@@ -199,12 +246,26 @@ source ${genode_dir}/repos/ports/run/virtualbox_auto.inc
# copy vbox configuration to bin directory
exec cp ${genode_dir}/repos/ports/run/${vbox_file} bin/.
+if {!$use_rumpfs} {
+ exec cp ${genode_dir}/repos/ports/run/${raw_image} bin/.
+}
+
append boot_modules " ${vbox_file} "
+append_if [expr !$use_rumpfs] boot_modules " ${raw_image} "
build_boot_image $boot_modules
run_genode_until {\[init -\> vbox\].*Guest Additions capability report:.*seamless: no, hostWindowMapping: no, graphics: no} 70
-run_genode_until {\[init -\> vbox\].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} 170 [output_spawn_id]
+if {$use_rumpfs} {
+ run_genode_until {\[init -\> vbox\].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} 170 [output_spawn_id]
+} else {
+ run_genode_until {\[init\] child "vbox" exited with exit value 0} 60 [output_spawn_id]
+ # give block driver bit time to write data to disk
+ sleep 5
+}
# cleanup bin directory - remove vbox file
exec rm bin/${vbox_file}
+if {!$use_rumpfs} {
+ exec rm bin/${raw_image}
+}
diff --git a/repos/ports/run/virtualbox_auto.inc b/repos/ports/run/virtualbox_auto.inc
index 2fc3bab348..5fa25d09e6 100644
--- a/repos/ports/run/virtualbox_auto.inc
+++ b/repos/ports/run/virtualbox_auto.inc
@@ -11,13 +11,13 @@ if {[have_include "power_on/qemu"]} {
append build_components {
core init
server/part_blk
- server/rump_fs
server/fs_rom
drivers/ahci
drivers/framebuffer
drivers/timer
}
+lappend_if [expr $use_rumpfs] build_components server/rump_fs
lappend_if [expr $use_vbox4] build_components virtualbox
lappend_if [expr $use_vbox5] build_components virtualbox5
lappend_if [expr $use_ps2] build_components drivers/input
@@ -78,17 +78,23 @@ append config {
-
-
+ }
+append_if [expr $use_rumpfs] config {
+ }
+append_if [expr !$use_rumpfs] config {
+ }
+append config {
-
+ }
+
+append_if [expr $use_rumpfs] config {
}
-append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
+append_if [expr $use_rumpfs && $use_ram_fs && $use_overlay_from_disk] config {
}
-append config {
+append_if [expr $use_rumpfs] config {
@@ -124,8 +130,10 @@ append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
-
-
+ }
+append_if [expr $use_rumpfs && $use_ram_fs && $use_overlay_from_disk] config {
+ }
+append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
}
@@ -271,10 +279,12 @@ append boot_modules {
ld.lib.so libc.lib.so libm.lib.so pthread.lib.so
libc_pipe.lib.so libc_terminal.lib.so
libiconv.lib.so stdcxx.lib.so
- rump.lib.so rump_fs.lib.so rump_fs
qemu-usb.lib.so
}
+lappend_if [expr $use_rumpfs] boot_modules rump.lib.so
+lappend_if [expr $use_rumpfs] boot_modules rump_fs.lib.so
+lappend_if [expr $use_rumpfs] boot_modules rump_fs
lappend_if [expr $use_vbox4] boot_modules virtualbox
lappend_if [expr $use_vbox5] boot_modules virtualbox5
lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs
diff --git a/repos/ports/run/vm_win7_64_raw.vbox b/repos/ports/run/vm_win7_64_raw.vbox
new file mode 100644
index 0000000000..b81ef2d737
--- /dev/null
+++ b/repos/ports/run/vm_win7_64_raw.vbox
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/repos/ports/run/win7_64_raw.vmdk b/repos/ports/run/win7_64_raw.vmdk
new file mode 100644
index 0000000000..db31a6aee8
--- /dev/null
+++ b/repos/ports/run/win7_64_raw.vmdk
@@ -0,0 +1,24 @@
+# Disk DescriptorFile
+version=1
+CID=6f6498e1
+parentCID=ffffffff
+createType="fullDevice"
+
+# Extent description
+RW 164005888 FLAT "/dev/sda3" 0
+
+# The disk Data Base
+#DDB
+
+ddb.virtualHWVersion = "4"
+ddb.adapterType="ide"
+ddb.geometry.cylinders="16383"
+ddb.geometry.heads="16"
+ddb.geometry.sectors="63"
+ddb.uuid.image="386d400b-0e8d-451f-ae1e-ec6f3a7be169"
+ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
+ddb.uuid.modification="911680c2-4951-4c5f-b794-c6f342e22c72"
+ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"
+ddb.geometry.biosCylinders="1024"
+ddb.geometry.biosHeads="255"
+ddb.geometry.biosSectors="63"
diff --git a/tool/autopilot.list b/tool/autopilot.list
index 1642086d61..1e892cd134 100644
--- a/tool/autopilot.list
+++ b/tool/autopilot.list
@@ -49,6 +49,7 @@ thread
pthread
vbox_auto_win7
vbox_auto_win7_64
+vbox_auto_win7_64_raw
vbox_auto_win7_vbox5
vbox_auto_win7_share
vbox_auto_win81_64