diff options
-rwxr-xr-x | linaro-media-create | 2 | ||||
-rw-r--r-- | linaro_image_tools/media_create/boards.py | 8 | ||||
-rw-r--r-- | linaro_image_tools/media_create/rootfs.py | 22 |
3 files changed, 28 insertions, 4 deletions
diff --git a/linaro-media-create b/linaro-media-create index 89234e5..d73bbce 100755 --- a/linaro-media-create +++ b/linaro-media-create @@ -181,6 +181,6 @@ if __name__ == '__main__': create_swap = True populate_rootfs(ROOTFS_DIR, ROOT_DISK, root_partition, args.rootfs, rootfs_uuid, create_swap, str(args.swap_file), - board_config.mmc_part_offset) + board_config.mmc_part_offset, board_config) print "Done creating Linaro image on %s" % args.device diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py index 9d2f73e..ea76789 100644 --- a/linaro_image_tools/media_create/boards.py +++ b/linaro_image_tools/media_create/boards.py @@ -313,9 +313,13 @@ class BoardConfig(object): cls.load_addr = cls.get_metadata_field('load_addr') cls.dtb_addr = cls.get_metadata_field('dtb_addr') cls.serial_tty = cls.get_metadata_field('serial_tty') - cls.wired_interfaces = cls.get_metadata_field('wired_interfaces') - cls.wireless_interfaces = cls.get_metadata_field( + wired_interfaces = cls.get_metadata_field('wired_interfaces') + if wired_interfaces is not None: + cls.wired_interfaces = wired_interfaces.split(' ') + wireless_interfaces = cls.get_metadata_field( 'wireless_interfaces') + if wireless_interfaces is not None: + cls.wireless_interfaces = wireless_interfaces.split(' ') cls.vmlinuz = cls.get_metadata_field('kernel_file') cls.initrd = cls.get_metadata_field('initrd_file') cls.dtb_file = cls.get_metadata_field('dtb_file') diff --git a/linaro_image_tools/media_create/rootfs.py b/linaro_image_tools/media_create/rootfs.py index 798cc7c..d8403e0 100644 --- a/linaro_image_tools/media_create/rootfs.py +++ b/linaro_image_tools/media_create/rootfs.py @@ -43,7 +43,7 @@ def rootfs_mount_options(rootfs_type): def populate_rootfs(content_dir, root_disk, partition, rootfs_type, rootfs_uuid, should_create_swap, swap_size, - partition_offset): + partition_offset, board_config=None): """Populate the rootfs and make the necessary tweaks to make it usable. This consists of: @@ -89,6 +89,26 @@ def populate_rootfs(content_dir, root_disk, partition, rootfs_type, print "\nCreating /etc/flash-kernel.conf\n" create_flash_kernel_config(root_disk, 1 + partition_offset) + if board_config is not None: + print "\nUpdating /etc/network/interfaces\n" + update_network_interfaces(root_disk, board_config) + + +def update_network_interfaces(root_disk, board_config): + interfaces = [] + if board_config.wired_interfaces is not None: + interfaces.extend(board_config.wired_interfaces) + if board_config.wireless_interfaces is not None: + interfaces.extend(board_config.wireless_interfaces) + + if_path = os.path.join(root_disk, 'etc', 'network', 'interfaces') + with open(if_path) as if_file: + config = if_file.read() + for interface in interfaces: + if interface not in config: + config += "auto %(if)s\niface %(if)s inet dhcp\n" % ({ 'if': interface }) + write_data_to_protected_file(if_path, config) + def create_flash_kernel_config(root_disk, boot_partition_number): """Create a flash-kernel.conf file under root_disk/etc. |