summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Beare <brucex.j.beare@intel.com>2010-05-03 10:13:23 -0700
committerBruce Beare <brucex.j.beare@intel.com>2010-05-07 12:08:53 -0700
commitdfd2d8a63b604de55b5cd961032af72f4626aef3 (patch)
tree64c8fb6faabb1d90528c1036b843aa4511829731
parent3131c1827e4f2485e7e9ede681adad920bf18b24 (diff)
downloaddiskinstaller-dfd2d8a63b604de55b5cd961032af72f4626aef3.tar.gz
Target to generate VirtualBox image
The kernel command line can be different when using the disk installer. This allows the console to go to the screen for the disk installer while still going to the serial port for normal boots. Remove a check for VBoxMange being installed. Adds some somewhat more clear instructions on completion or failure. Change-Id: Ic221d6c75b3109b2ec95a6c6a650c008f1dfef87
-rw-r--r--config.mk23
-rw-r--r--installer.c5
2 files changed, 24 insertions, 4 deletions
diff --git a/config.mk b/config.mk
index 2cb034d..11f17fc 100644
--- a/config.mk
+++ b/config.mk
@@ -119,9 +119,9 @@ internal_installerimage_args := \
internal_installerimage_files := \
$(filter-out --%,$(internal_installerimage_args))
-BOARD_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE))
-ifdef BOARD_KERNEL_CMDLINE
- internal_installerimage_args += --cmdline "$(BOARD_KERNEL_CMDLINE)"
+BOARD_INSTALLER_CMDLINE := $(strip $(BOARD_INSTALLER_CMDLINE))
+ifdef BOARD_INSTALLER_CMDLINE
+ internal_installerimage_args += --cmdline "$(BOARD_INSTALLER_CMDLINE)"
endif
installer_tmp_img := $(TARGET_INSTALLER_OUT)/installer_tmp.img
@@ -182,10 +182,27 @@ $(INSTALLED_DISKINSTALLERIMAGE_TARGET): \
inst_data=$(installer_data_img)
@echo "Done with bootable installer image -[ $@ ]-"
+
+######################################################################
+# now convert the installer_img (disk image) to a VirtualBox image
+
+INSTALLED_VBOXINSTALLERIMAGE_TARGET := $(PRODUCT_OUT)/installer.vdi
+virtual_box_manager := VBoxManage
+virtual_box_manager_options := convertfromraw
+
+$(INSTALLED_VBOXINSTALLERIMAGE_TARGET): $(INSTALLED_DISKINSTALLERIMAGE_TARGET)
+ @rm -f $(INSTALLED_VBOXINSTALLERIMAGE_TARGET)
+ @$(virtual_box_manager) $(virtual_box_manager_options) $(INSTALLED_DISKINSTALLERIMAGE_TARGET) $(INSTALLED_VBOXINSTALLERIMAGE_TARGET)
+ @echo "Done with VirtualBox bootable installer image -[ $@ ]-"
+
else # ! TARGET_USE_DISKINSTALLER
INSTALLED_DISKINSTALLERIMAGE_TARGET :=
+INSTALLED_VBOXINSTALLERIMAGE_TARGET :=
endif
endif # TARGET_ARCH == x86
.PHONY: installer_img
installer_img: $(INSTALLED_DISKINSTALLERIMAGE_TARGET)
+
+.PHONY: installer_vdi
+installer_vdi: $(INSTALLED_VBOXINSTALLERIMAGE_TARGET)
diff --git a/installer.c b/installer.c
index 0bf8f48..7c4762e 100644
--- a/installer.c
+++ b/installer.c
@@ -457,8 +457,10 @@ main(int argc, char *argv[])
}
for (img = images->first_child; img; img = img->next) {
- if (process_image_node(img, device_disk_info, test))
+ if (process_image_node(img, device_disk_info, test)) {
+ LOGE("Unable to write data to partition. Try running 'installer' again.");
return 1;
+ }
++cnt;
}
@@ -473,5 +475,6 @@ main(int argc, char *argv[])
return 1;
LOGI("Done processing installer config. Configured %d images", cnt);
+ LOGI("Type 'reboot' or reset to run new image");
return 0;
}