aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Tunnicliffe <james.tunnicliffe@linaro.org>2012-04-16 14:12:37 +0100
committerJames Tunnicliffe <james.tunnicliffe@linaro.org>2012-04-16 14:12:37 +0100
commitb00df1e30773a01eddfc4dbf5ddbb793fb9bdfb2 (patch)
treeaf363e77ee2a08522a48ccf410dd2b70286504ce
parent4675645d6fc2fb774447351eb4705e1a6e064c1b (diff)
Patch from https://bugs.launchpad.net/linaro-image-tools/+bug/962147
Adds the --directory option and FastModel board.
-rwxr-xr-xlinaro-media-create18
-rw-r--r--linaro_image_tools/media_create/__init__.py5
-rw-r--r--linaro_image_tools/media_create/boards.py30
-rw-r--r--linaro_image_tools/media_create/partitions.py1
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/')