Make poky-qemu and related scripts work with arbitrary SDK locations

* No longer assume SDK toolchains are installed in /opt/poky
* [BUGFIX #568] where specifying paths to both the kernel and fs
  image caused an error due to POKY_NATIVE_SYSROOT never being
  set, triggering failure of poky-qemu-ifup/ifdown
* Cosmetic improvements to usage() functions by using basename

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
This commit is contained in:
Scott Garman 2010-12-07 20:59:06 -08:00 committed by Richard Purdie
parent 7581654a03
commit ba5e0b9531
5 changed files with 26 additions and 48 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
#
# Find a native sysroot to use - either from an in-tree Poky build or
# from a toolchain installation in /opt/poky. It then ensures the variable
# from a toolchain installation. It then ensures the variable
# $POKY_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
# $PSEUDO to the path of the pseudo binary.
#

View File

@ -31,9 +31,9 @@ usage() {
echo " serial - enables a serial console on /dev/ttyS0"
echo ""
echo "Examples:"
echo " $0 qemuarm"
echo " $0 qemux86-64 poky-image-sato ext3"
echo " $0 path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
echo " $MYNAME qemuarm"
echo " $MYNAME qemux86-64 poky-image-sato ext3"
echo " $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
exit 1
}
@ -213,23 +213,29 @@ setup_tmpdir() {
echo "before running this script" >&2;
exit 1; }
# We have bitbake in PATH, get TMPDIR and BUILD_SYS
# from the environment
# We have bitbake in PATH, get TMPDIR from bitbake
TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
BUILD_SYS=`bitbake -e | grep BUILD_SYS=\" | cut -d '=' -f2 | cut -d '"' -f2`
else
BUILD_ARCH=`uname -m`
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
TMPDIR=$BUILDDIR/tmp
fi
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
fi
CROSSPATH=$POKY_NATIVE_SYSROOT/usr/bin
fi
}
setup_sysroot() {
# Toolchain installs set up $POKY_NATIVE_SYSROOT in their
# environment script. If that variable isn't set, we're
# either in an in-tree poky scenario or the environment
# script wasn't source'd.
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
setup_tmpdir
BUILD_ARCH=`uname -m`
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
fi
}
# Locate a rootfs image based on defaults defined above
findimage() {
where=$1
@ -254,8 +260,6 @@ findimage() {
}
if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
setup_tmpdir
# Extract the filename extension
EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
@ -281,7 +285,6 @@ fi
# KERNEL is now set for all cases
if [ -z "$FSTYPE" ]; then
setup_tmpdir
eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
if [ -z "$FSTYPE" ]; then
@ -318,6 +321,9 @@ echo "KERNEL: [$KERNEL]"
echo "ROOTFS: [$ROOTFS]"
echo "FSTYPE: [$FSTYPE]"
setup_sysroot
# POKY_NATIVE_SYSROOT is now set for all cases
# We can't run without a libGL.so
libgl='no'

View File

@ -27,7 +27,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
usage() {
echo "sudo $0 <tap-dev> <native-sysroot-basedir>"
echo "sudo $(basename $0) <tap-dev> <native-sysroot-basedir>"
}
if [ $EUID -ne 0 ]; then
@ -46,13 +46,6 @@ NATIVE_SYSROOT_DIR=$2
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
if [ ! -e "$TUNCTL" ]; then
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
echo "This shouldn't happen - something is wrong with your toolchain installation"
else
echo "Have you run 'bitbake meta-ide-support'?"
fi
exit 1
fi

View File

@ -34,7 +34,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
usage() {
echo "sudo $0 <gid> <native-sysroot-basedir>"
echo "sudo $(basename $0) <gid> <native-sysroot-basedir>"
}
if [ $EUID -ne 0 ]; then
@ -53,13 +53,6 @@ NATIVE_SYSROOT_DIR=$2
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
if [ ! -x "$TUNCTL" ]; then
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
echo "This shouldn't happen - something is wrong with your toolchain installation"
else
echo "Have you run 'bitbake meta-ide-support'?"
fi
exit 1
fi

View File

@ -394,23 +394,9 @@ if [ "x$QEMUOPTIONS" = "x" ]; then
return
fi
SDKDIR="/opt/poky/sysroots"
if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "spitz" -o "$MACHINE" = "borzoi" -o "$MACHINE" = "akita" -o "$MACHINE" = "nokia800" ]; then
SDKPATH="$SDKDIR/arm-poky-linux-gnueabi/bin"
fi
if [ "$MACHINE" = "qemux86" ]; then
SDKPATH="$SDKDIR/i586-poky-linux/bin"
fi
if [ "$MACHINE" = "qemux86-64" ]; then
SDKPATH="$SDKDIR/x86_64-poky-linux/bin"
fi
PATH=$CROSSPATH:$SDKPATH:$PATH
PATH=$CROSSPATH:$POKY_NATIVE_SYSROOT/usr/bin:$PATH
QEMUBIN=`which $QEMU`
if [ ! -x "$QEMUBIN" ]; then
echo "Error: No QEMU binary '$QEMU' could be found."
cleanup