From dfd2d8a63b604de55b5cd961032af72f4626aef3 Mon Sep 17 00:00:00 2001 From: Bruce Beare Date: Mon, 3 May 2010 10:13:23 -0700 Subject: 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 --- config.mk | 23 ++++++++++++++++++++--- installer.c | 5 ++++- 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; } -- cgit v1.2.3