diff options
-rwxr-xr-x | linaro-media-create | 18 | ||||
-rw-r--r-- | linaro_image_tools/media_create/__init__.py | 5 | ||||
-rw-r--r-- | linaro_image_tools/media_create/boards.py | 30 | ||||
-rw-r--r-- | linaro_image_tools/media_create/partitions.py | 1 |
4 files changed, 50 insertions, 4 deletions
diff --git a/linaro-media-create b/linaro-media-create index ef4d654..8c13e16 100755 --- a/linaro-media-create +++ b/linaro-media-create @@ -136,7 +136,19 @@ if __name__ == '__main__': sys.exit(1) atexit.register(cleanup_tempdir) - media = Media(args.device) + if args.directory is not None: + if not board_config.outputs_directory: + print "The board '%s' does not support the --directory option." % args.board + sys.exit(1) + else: + loc=os.path.abspath(args.directory) + proc = cmd_runner.run(['mkdir','-p', '-v', loc]) + proc.wait() + media = Media(os.path.join(loc,board_config.board)+".img") + media.directory=loc + else: + media = Media(args.device) + if media.is_block_device: if not board_config.supports_writing_to_mmc: print "The board '%s' does not support the --mmc option. Please use " \ @@ -174,7 +186,7 @@ if __name__ == '__main__': if args.should_format_bootfs: board_config.populate_boot( - ROOTFS_DIR, rootfs_uuid, boot_partition, BOOT_DISK, args.device, + ROOTFS_DIR, rootfs_uuid, boot_partition, BOOT_DISK, media.path, args.is_live, args.is_lowmem, args.consoles) if args.should_format_rootfs: @@ -185,4 +197,4 @@ if __name__ == '__main__': rootfs_uuid, create_swap, str(args.swap_file), board_config.mmc_part_offset, board_config) - print "Done creating Linaro image on %s" % args.device + print "Done creating Linaro image on %s" % media.path diff --git a/linaro_image_tools/media_create/__init__.py b/linaro_image_tools/media_create/__init__.py index 0cae106..da63d9c 100644 --- a/linaro_image_tools/media_create/__init__.py +++ b/linaro_image_tools/media_create/__init__.py @@ -82,7 +82,10 @@ def get_args_parser(): '--mmc', dest='device', help='The storage device to use.') group.add_argument( '--image-file', '--image_file', dest='device', - help='File where we should write the QEMU image.') + help='File where we should write an image file.') + group.add_argument( + '--directory', '--directory', dest='directory', + help='Directory where image and accessories should be written to.') parser.add_argument( '--dev', required=True, dest='board', choices=KNOWN_BOARDS, help='Generate an SD card or image for the given board.') diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py index c484f97..7423548 100644 --- a/linaro_image_tools/media_create/boards.py +++ b/linaro_image_tools/media_create/boards.py @@ -212,6 +212,7 @@ class BoardConfig(object): _live_serial_opts = '' extra_boot_args_options = None supports_writing_to_mmc = True + outputs_directory = False LOADER_MIN_SIZE_S = align_up(1 * 1024 ** 2, SECTOR_SIZE) / SECTOR_SIZE BOOT_MIN_SIZE_S = align_up(50 * 1024 ** 2, SECTOR_SIZE) / SECTOR_SIZE ROOT_MIN_SIZE_S = align_up(50 * 1024 ** 2, SECTOR_SIZE) / SECTOR_SIZE @@ -1335,6 +1336,34 @@ class VexpressA9Config(VexpressConfig): pass +class FastModelConfig(BoardConfig): + supports_writing_to_mmc = False + outputs_directory = True + + @classmethod + def _get_bootcmd(cls, d_img_data): + """Get the bootcmd for FastModel. + + We override this as we don't do uboot. + """ + return "" + + @classmethod + def _make_boot_files_v2(cls, boot_env, chroot_dir, boot_dir, + boot_device_or_file, k_img_data, i_img_data, + d_img_data): + logger = logging.getLogger("linaro_image_tools") + logger.info("WTF=%s." % boot_device_or_file ) + output_dir=os.path.dirname(boot_device_or_file) + cmd = [ "cp", "-v", _get_file_matching("%s/boot/img.axf" % chroot_dir), output_dir ] + proc = cmd_runner.run(cmd, as_root=True) + proc.wait() + cmd = [ "cp", "-v", k_img_data, i_img_data, d_img_data, output_dir ] + proc = cmd_runner.run(cmd, as_root=True) + proc.wait() + return + + class SamsungConfig(BoardConfig): @classproperty def extra_serial_opts(cls): @@ -1479,6 +1508,7 @@ board_configs = { 'panda': PandaConfig, 'vexpress': VexpressConfig, 'vexpress-a9': VexpressA9Config, + 'fastmodel': FastModelConfig, 'ux500': Ux500Config, 'snowball_sd': SnowballSdConfig, 'snowball_emmc': SnowballEmmcConfig, diff --git a/linaro_image_tools/media_create/partitions.py b/linaro_image_tools/media_create/partitions.py index 067da68..e63741e 100644 --- a/linaro_image_tools/media_create/partitions.py +++ b/linaro_image_tools/media_create/partitions.py @@ -590,4 +590,5 @@ class Media(object): def __init__(self, path): self.path = path + self.directory = None self.is_block_device = path.startswith('/dev/') |