aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/sanity.bbclass11
-rwxr-xr-xscripts/poky-qemu-internal7
2 files changed, 18 insertions, 0 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index ef1020b215..f963f280e0 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -120,6 +120,17 @@ def check_sanity(e):
if not check_app_exists("qemu-arm", e.data):
messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH"
+ if data.getVar('TARGET_ARCH', e.data, True) == "arm":
+ # This path is no longer user-readable in modern (very recent) Linux
+ try:
+ if os.path.exists("/proc/sys/vm/mmap_min_addr"):
+ f = file("/proc/sys/vm/mmap_min_addr", "r")
+ if (f.read().strip() != "0"):
+ messages = messages + "/proc/sys/vm/mmap_min_addr is not 0. This will cause problems with qemu so please fix the value (as root).\n\nTo fix this in later reboots, set vm.mmap_min_addr = 0 in /etc/sysctl.conf.\n"
+ f.close()
+ except:
+ pass
+
for util in required_utilities.split():
if not check_app_exists( util, e.data ):
missing = missing + "%s," % util
diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal
index e7b7af3930..cb5d28b904 100755
--- a/scripts/poky-qemu-internal
+++ b/scripts/poky-qemu-internal
@@ -150,6 +150,13 @@ if [ ! -f "$ZIMAGE" ]; then
return
fi
+if [ -e /proc/sys/vm/mmap_min_addr ]; then
+ if [ `cat /proc/sys/vm/mmap_min_addr` != "0" ]; then
+ echo "Error, please set /proc/sys/vm/mmap_min_addr to 0 since otherwise it can cause problems with QEMU"
+ return
+ fi
+fi
+
if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarmv7" ]; then
QEMU=qemu-system-arm
MACHINE_SUBTYPE=versatilepb