aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlinaro-android-media-create8
-rwxr-xr-xlinaro-media-create7
-rw-r--r--linaro_image_tools/__version__.py2
-rw-r--r--linaro_image_tools/media_create/android_boards.py14
-rw-r--r--linaro_image_tools/media_create/boards.py5
-rw-r--r--linaro_image_tools/media_create/tests/test_android_boards.py8
-rw-r--r--linaro_image_tools/media_create/tests/test_media_create.py38
-rw-r--r--linaro_image_tools/utils.py43
8 files changed, 91 insertions, 34 deletions
diff --git a/linaro-android-media-create b/linaro-android-media-create
index 62ed8da..b31e126 100755
--- a/linaro-android-media-create
+++ b/linaro-android-media-create
@@ -44,7 +44,9 @@ from linaro_image_tools.utils import (
additional_android_option_checks,
andorid_hwpack_in_boot_tarball,
ensure_command,
- get_logger
+ get_logger,
+ disable_automount,
+ enable_automount,
)
@@ -117,6 +119,10 @@ if __name__ == '__main__':
ensure_required_commands(args)
+ # Do this by default, disable automount options and re-enable them at exit.
+ disable_automount()
+ atexit.register(enable_automount)
+
media = Media(args.device)
if media.is_block_device:
if not confirm_device_selection_and_ensure_it_is_ready(args.device):
diff --git a/linaro-media-create b/linaro-media-create
index 2871614..8feb4ed 100755
--- a/linaro-media-create
+++ b/linaro-media-create
@@ -57,6 +57,9 @@ from linaro_image_tools.utils import (
path_in_tarfile_exists,
prep_media_path,
get_logger,
+ UnableToFindPackageProvidingCommand,
+ disable_automount,
+ enable_automount,
)
# Just define the global variables
@@ -136,6 +139,10 @@ if __name__ == '__main__':
logger.error(e.value)
sys.exit(1)
+ # Do this by default, disable automount options and re-enable them at exit.
+ disable_automount()
+ atexit.register(enable_automount)
+
board_config = get_board_config(args.dev)
board_config.set_metadata(args.hwpacks, args.bootloader, args.dev)
board_config.add_boot_args(args.extra_boot_args)
diff --git a/linaro_image_tools/__version__.py b/linaro_image_tools/__version__.py
index 47ab9d6..e84b6ec 100644
--- a/linaro_image_tools/__version__.py
+++ b/linaro_image_tools/__version__.py
@@ -1 +1 @@
-__version__ = "2013.02.1"
+__version__ = "2013.03.1"
diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py
index 52a92b4..578e0b1 100644
--- a/linaro_image_tools/media_create/android_boards.py
+++ b/linaro_image_tools/media_create/android_boards.py
@@ -508,9 +508,9 @@ class AndroidArndaleConfig(AndroidSamsungConfig, ArndaleConfig):
self.initrd_addr = '0x41000000'
self.dtb_addr = '0x41f00000'
self.dtb_name = 'exynos5250-arndale.dtb'
- self._android_specific_args = ('init=/init '
- 'androidboot.console=ttySAC2 console=ttySAC2 '
- 'initrd=%s' % self.initrd_addr)
+ self._android_specific_args = (
+ 'init=/init androidboot.console=ttySAC2 console=ttySAC2 initrd=%s'
+ % self.initrd_addr)
self._extra_serial_options = 'ttySAC2,115200n8'
self._extra_boot_args_options = 'rootdelay=3'
@@ -533,8 +533,8 @@ class AndroidArndaleConfig(AndroidSamsungConfig, ArndaleConfig):
if d_img_data is not None:
assert self.dtb_addr is not None, (
"Need a dtb_addr when passing d_img_data")
- boot_script += (("%(fatload_command)s mmc %(mmc_option)s "
- "%(dtb_addr)s ")) % replacements
+ boot_script += ("%(fatload_command)s mmc %(mmc_option)s "
+ "%(dtb_addr)s " % replacements)
boot_script += "%s; " % d_img_data
boot_script += (("bootm %(kernel_addr)s")) % replacements
if i_img_data is not None:
@@ -559,8 +559,8 @@ class AndroidArndaleConfig(AndroidSamsungConfig, ArndaleConfig):
name = boot_bin['name']
file_path = os.path.join(chroot_dir, boot_partition, name)
if not os.path.exists(file_path):
- raise BoardException("File '%s' does not exists. Cannot "
- "proceed." % name)
+ raise BoardException(
+ "File '%s' does not exists. Cannot proceed." % name)
_dd(file_path, boot_device_or_file, seek=boot_bin['seek'])
diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py
index 9361118..e0d14ba 100644
--- a/linaro_image_tools/media_create/boards.py
+++ b/linaro_image_tools/media_create/boards.py
@@ -1098,6 +1098,7 @@ class SnowballEmmcConfig(SnowballSdConfig):
# puts the MBR, so the boot loader skips that address.
self.supports_writing_to_mmc = False
self.snowball_startup_files_config = 'startfiles.cfg'
+ self.mmc_option = '0:2'
def get_v1_sfdisk_cmd(self, should_align_boot_part=None):
"""Return the sfdisk command to partition the media.
@@ -1604,8 +1605,8 @@ class OrigenQuadConfig(SamsungConfig):
name = boot_bin['name']
file_path = os.path.join(chroot_dir, boot_partition, name)
if not os.path.exists(file_path):
- raise BoardException("File '%s' does not exists. Cannot "
- "proceed." % name)
+ raise BoardException(
+ "File '%s' does not exists. Cannot proceed." % name)
_dd(file_path, boot_device_or_file, seek=boot_bin['seek'])
diff --git a/linaro_image_tools/media_create/tests/test_android_boards.py b/linaro_image_tools/media_create/tests/test_android_boards.py
index 758aa94..c1b5bb4 100644
--- a/linaro_image_tools/media_create/tests/test_android_boards.py
+++ b/linaro_image_tools/media_create/tests/test_android_boards.py
@@ -489,10 +489,10 @@ class TestAndroidBoardsHwpack(TestCaseWithFixtures):
'init=/init androidboot.console=ttySAC2 '
'console=ttySAC2 initrd=0x41000000',
'bootcmd': 'fatload mmc 0:1 0x40007000 uImage; fatload mmc 0:1 '
- '0x41000000 uInitrd; fatload mmc 0:1 0x41f00000 '
- 'exynos5250-arndale.dtb; bootm 0x40007000 0x41000000 '
- '0x41f00000',
+ '0x41000000 uInitrd; fatload mmc 0:1 0x41f00000 '
+ 'exynos5250-arndale.dtb; bootm 0x40007000 0x41000000 '
+ '0x41f00000',
'fdt_high': '0xffffffff',
'initrd_high': '0xffffffff',
- }
+ }
self.assertBootEnv(expected, board='arndale')
diff --git a/linaro_image_tools/media_create/tests/test_media_create.py b/linaro_image_tools/media_create/tests/test_media_create.py
index 8709e1b..48f9740 100644
--- a/linaro_image_tools/media_create/tests/test_media_create.py
+++ b/linaro_image_tools/media_create/tests/test_media_create.py
@@ -1525,8 +1525,8 @@ class TestPopulateRawPartition(TestCaseWithFixtures):
def test_origen_quad_raw(self):
# Need to mock this since files do not exist here, and
# an Exception is raised.
- self.useFixture(MockSomethingFixture(os.path, 'exists',
- lambda exists: True))
+ self.useFixture(
+ MockSomethingFixture(os.path, 'exists', lambda exists: True))
self.populate_raw_partition(boards.OrigenQuadConfig())
expected = ['_dd', '_dd', '_dd', '_dd', '_dd']
@@ -1534,8 +1534,8 @@ class TestPopulateRawPartition(TestCaseWithFixtures):
def test_origen_quad_raises(self):
board_conf = boards.OrigenQuadConfig()
- self.assertRaises(boards.BoardException,
- board_conf.populate_raw_partition, '', '')
+ self.assertRaises(
+ boards.BoardException, board_conf.populate_raw_partition, '', '')
def test_arndale_raw(self):
self.useFixture(MockSomethingFixture(os.path, 'getsize',
@@ -1659,20 +1659,20 @@ class TestPopulateRawPartitionAndroid(TestCaseWithFixtures):
fixture = MockCmdRunnerPopenFixture()
self.useFixture(fixture)
expected_commands = [
- ('sudo -E dd if=/dev/zero of= bs=512 conv=notrunc count=32 '
- 'seek=1601'),
- ('sudo -E dd if=boot/origen_quad.bl1.bin of= bs=512 '
- 'conv=notrunc seek=1'),
- ('sudo -E dd if=boot/origen_quad-spl.bin.signed of= bs=512 '
- 'conv=notrunc seek=31'),
- ('sudo -E dd if=boot/u-boot.bin of= bs=512 conv=notrunc '
- 'seek=63'),
- ('sudo -E dd if=boot/exynos4x12.tzsw.signed.img of= bs=512 '
- 'conv=notrunc seek=761')
- ]
+ ('sudo -E dd if=/dev/zero of= bs=512 conv=notrunc count=32 '
+ 'seek=1601'),
+ ('sudo -E dd if=boot/origen_quad.bl1.bin of= bs=512 '
+ 'conv=notrunc seek=1'),
+ ('sudo -E dd if=boot/origen_quad-spl.bin.signed of= bs=512 '
+ 'conv=notrunc seek=31'),
+ ('sudo -E dd if=boot/u-boot.bin of= bs=512 conv=notrunc '
+ 'seek=63'),
+ ('sudo -E dd if=boot/exynos4x12.tzsw.signed.img of= bs=512 '
+ 'conv=notrunc seek=761')
+ ]
- self.useFixture(MockSomethingFixture(os.path, 'exists',
- lambda exists: True))
+ self.useFixture(
+ MockSomethingFixture(os.path, 'exists', lambda exists: True))
self.populate_raw_partition(android_boards.AndroidOrigenQuadConfig())
expected = []
@@ -2127,8 +2127,8 @@ class TestGetBootCmd(TestCase):
'mem_modem=32M@96M mem=44M@128M pmem=22M@172M '
'mem=30M@194M mem_mali=32M@224M pmem_hwb=54M@256M '
'hwmem=48M@302M mem=152M@360M',
- 'bootcmd': 'fatload mmc 1:1 0x00100000 uImage; '
- 'fatload mmc 1:1 0x08000000 uInitrd; '
+ 'bootcmd': 'fatload mmc 0:2 0x00100000 uImage; '
+ 'fatload mmc 0:2 0x08000000 uInitrd; '
'bootm 0x00100000 0x08000000',
'fdt_high': '0xffffffff',
'initrd_high': '0xffffffff'}
diff --git a/linaro_image_tools/utils.py b/linaro_image_tools/utils.py
index 277c072..b247297 100644
--- a/linaro_image_tools/utils.py
+++ b/linaro_image_tools/utils.py
@@ -35,6 +35,10 @@ BOOT_DIR_IN_TARBALL = "boot"
# The name of the hwpack file found in the boot tarball.
HWPACK_NAME = "config"
+# dconf keys to disable automount options.
+AUTOMOUNT_DCONF_KEY = '/org/gnome/desktop/media-handling/automount'
+AUTOMOUNT_OPEN_DCONF_KEYU = '/org/gnome/desktop/media-handling/automount-open'
+
# try_import was copied from python-testtools 0.9.12 and was originally
# licensed under a MIT-style license but relicensed under the GPL in Linaro
@@ -406,3 +410,42 @@ def get_logger(name=DEFAULT_LOGGER_NAME, debug=False):
logger.addHandler(ch)
return logger
+
+
+def disable_automount():
+ """Disables the desktop environment automount option.
+
+ This will work only under GNOME with dconf installed.
+ """
+ logger = logging.getLogger(DEFAULT_LOGGER_NAME)
+
+ if has_command('dconf'):
+ logger.info("Disabling desktop environment automount option.")
+ try:
+ cmd_runner.run(
+ ['dconf', 'write', AUTOMOUNT_DCONF_KEY, 'false'],
+ stdout=open('/dev/null', 'w')).wait()
+ cmd_runner.run(
+ ['dconf', 'write', AUTOMOUNT_OPEN_DCONF_KEYU, 'false'],
+ stdout=open('/dev/null', 'w')).wait()
+ except cmd_runner.SubcommandNonZeroReturnValue:
+ logger.error("Error disabling desktop environemnt automount.")
+
+
+def enable_automount():
+ """Re-enables back the desktop environment automount option.
+
+ This will work only under GNOME with dconf installed. It should be run
+ as an atexit function.
+ """
+ logger = logging.getLogger(DEFAULT_LOGGER_NAME)
+ if has_command('dconf'):
+ try:
+ cmd_runner.run(
+ ['dconf', 'write', AUTOMOUNT_DCONF_KEY, 'true'],
+ stdout=open('/dev/null', 'w')).wait()
+ cmd_runner.run(
+ ['dconf', 'write', AUTOMOUNT_OPEN_DCONF_KEYU, 'true'],
+ stdout=open('/dev/null', 'w')).wait()
+ except cmd_runner.SubcommandNonZeroReturnValue:
+ logger.error("Error enabling back desktop environemnt automount.")