From ab291fac07b70864676c7a764ba2002a819015cd Mon Sep 17 00:00:00 2001 From: Andrii Boichuk Date: Thu, 22 May 2014 10:27:31 +0300 Subject: [PATCH] Add support of qemu-mipsel Change-Id: I18e694d820fd8523cf2f0e1a8f98e0dd1b642926 --- mic/chroot.py | 2 ++ mic/imager/baseimager.py | 60 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/mic/chroot.py b/mic/chroot.py index a2bafdf..85e8ba0 100644 --- a/mic/chroot.py +++ b/mic/chroot.py @@ -305,6 +305,8 @@ def chroot(chrootdir, bindmounts = None, execute = "/bin/bash"): arch = ELF_arch(chrootdir) if arch == "arm": qemu_emulator = misc.setup_qemu_emulator(chrootdir, "arm") + elif arch == "mipsel": + qemu_emulator = misc.setup_qemu_emulator(chrootdir, "mipsel") else: qemu_emulator = None diff --git a/mic/imager/baseimager.py b/mic/imager/baseimager.py index dc7807d..7fed8d8 100644 --- a/mic/imager/baseimager.py +++ b/mic/imager/baseimager.py @@ -152,25 +152,45 @@ class BaseImageCreator(object): self._dep_checks.append("mkfs.btrfs") break - if self.target_arch and self.target_arch.startswith("arm"): - for dep in self._dep_checks: - if dep == "extlinux": - self._dep_checks.remove(dep) - - if not os.path.exists("/usr/bin/qemu-arm") or \ - not misc.is_statically_linked("/usr/bin/qemu-arm"): - self._dep_checks.append("qemu-arm-static") - - if os.path.exists("/proc/sys/vm/vdso_enabled"): - vdso_fh = open("/proc/sys/vm/vdso_enabled","r") - vdso_value = vdso_fh.read().strip() - vdso_fh.close() - if (int)(vdso_value) == 1: - msger.warning("vdso is enabled on your host, which might " - "cause problems with arm emulations.\n" - "\tYou can disable vdso with following command before " - "starting image build:\n" - "\techo 0 | sudo tee /proc/sys/vm/vdso_enabled") + if self.target_arch: + if self.target_arch.startswith("arm"): + for dep in self._dep_checks: + if dep == "extlinux": + self._dep_checks.remove(dep) + + if not os.path.exists("/usr/bin/qemu-arm") or \ + not misc.is_statically_linked("/usr/bin/qemu-arm"): + self._dep_checks.append("qemu-arm-static") + + if os.path.exists("/proc/sys/vm/vdso_enabled"): + vdso_fh = open("/proc/sys/vm/vdso_enabled","r") + vdso_value = vdso_fh.read().strip() + vdso_fh.close() + if (int)(vdso_value) == 1: + msger.warning("vdso is enabled on your host, which might " + "cause problems with arm emulations.\n" + "\tYou can disable vdso with following command before " + "starting image build:\n" + "\techo 0 | sudo tee /proc/sys/vm/vdso_enabled") + elif self.target_arch == "mipsel": + for dep in self._dep_checks: + if dep == "extlinux": + self._dep_checks.remove(dep) + + if not os.path.exists("/usr/bin/qemu-mipsel") or \ + not misc.is_statically_linked("/usr/bin/qemu-mipsel"): + self._dep_checks.append("qemu-mipsel-static") + + if os.path.exists("/proc/sys/vm/vdso_enabled"): + vdso_fh = open("/proc/sys/vm/vdso_enabled","r") + vdso_value = vdso_fh.read().strip() + vdso_fh.close() + if (int)(vdso_value) == 1: + msger.warning("vdso is enabled on your host, which might " + "cause problems with mipsel emulations.\n" + "\tYou can disable vdso with following command before " + "starting image build:\n" + "\techo 0 | sudo tee /proc/sys/vm/vdso_enabled") # make sure the specified tmpdir and cachedir exist if not os.path.exists(self.tmpdir): @@ -779,7 +799,7 @@ class BaseImageCreator(object): fs.makedirs(self._instroot + d) if self.target_arch and self.target_arch.startswith("arm") or \ - self.target_arch == "aarch64": + self.target_arch == "aarch64" or self.target_arch == "mipsel" : self.qemu_emulator = misc.setup_qemu_emulator(self._instroot, self.target_arch) -- 2.7.4