aboutsummaryrefslogtreecommitdiffstats
path: root/meta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh
diff options
context:
space:
mode:
Diffstat (limited to 'meta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh')
-rwxr-xr-xmeta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh113
1 files changed, 0 insertions, 113 deletions
diff --git a/meta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh b/meta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh
deleted file mode 100755
index 3a165025..00000000
--- a/meta-seattle/recipes-support/32b-env/files/set_32b_env_qemu.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/sh
-
-help()
-{
- echo " The scope of this script is to setup an environment for 32b legacy applications."
- echo " This is a replacement for MULTILIB mechanism which is not available yet for aarch64."
- echo " qemu-arm(user mode) is used to set access to 32b libraries instead of the host's libs"
- echo " "
- echo " Prerequisites:"
- echo " - user must build a 32b amrv7 rootfs (e.q. build a image for qemuarm)"
- echo " - user must copy 32b armv7 rootfs under 64b rootfs (e.q. /mnt/rootfs32)"
- echo " - user must copy 32b application under 32b rootfs (e.q. /mnt/rootfs32/myapp)"
- echo " - user must configure properly the smart package manager in order to access"
- echo " <qemu-arm> and <kernel-module-binfmt-misc> packages otherwise it is"
- echo " expected that those packages are already installed"
- echo ""
- echo " Run setup script to prepare the environment for 32b applications( -l param is optional )"
- echo " > set_32b_env_qemu -r /mnt/rootfs32 -l /usr/local/extlib:/usr/local/mylib"
- echo ""
- echo " After that user should be able to run any 32b application as usual!"
- echo " >./myapp"
- break
-}
-
-usage()
-{
- echo "Setup environment to run 32b dynamically linked applications using qemu."
- echo "Prerequisites:"
- echo " It is expected that qemu and kernel-module-binfmt-misc packages are installed"
- echo " It is expected that 32bit rootfs is already installed!"
- echo ""
- echo "set_32b_env_qemu -r <path to 32b rootfs> -l <ext_libs1:ext_libs2:...>"
- echo " -r : [mandatory] path to 32b rootfs"
- echo " -l : [optional] list of paths for nonstandard lib folders, paths must be relative to 32b rootfs"
- echo " -h : [optional] display help"
- echo ""
- echo "Example: set_32b_env_qemu -r ./rootfs32b -l /usr/local/mylib:/usr/local/mylib2"
- break
-}
-
-if [[ $# -eq 0 ]] ; then
- echo "[ERR]: Missing script parameters!"
- echo ""
- usage
-fi
-
-while getopts "hr:l:" OPTION;
-do
- case $OPTION in
-
- r)
- ROOTFS32b_PATH="$OPTARG"
- ;;
-
- l)
- LIBS_PATH="$OPTARG"
- ;;
-
- h)
- usage
- ;;
-
- ?)
- help
- ;;
-
- esac
-done
-
-ABS_PATH=`cd "${ROOTFS32b_PATH}"; pwd`
-ROOTFS32b_PATH=${ABS_PATH}
-
-if [[ ! -d ${ROOTFS32b_PATH} ]] ; then
- usage
-fi
-
-echo "Please wait..."
-echo ""
-QEMU_EXISTS=`which qemu-arm`
-if [[ "${QEMU_EXISTS}" == "" ]] ; then
- echo "Please make sure smart package manager is configured !"
- echo "Otherwise make sure <qemu> and <kernel-module-binfmt-misc> are installed!"
- smart --quiet update
- smart --quiet install qemu
- smart --quiet install kernel-module-binfmt-misc
-fi
-
-echo "."
-mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
-if [[ "$?" != "0" ]] ; then
- echo "Failed to install binfmt_misc or the setup was already prepared for 32b"
- echo ""
- echo "Please, make sure the module is available into system"
- echo "How to install the binfmt_misc package:"
- echo " smart install binfmt_misc"
- break
-fi
-
-BINFMT_INSTALLED=`cat /proc/sys/fs/binfmt_misc/status`
-if [[ "${BINFMT_INSTALLED}" != "enabled" ]] ; then
- echo "binfmt_misc not enabled!!"
- break
-fi
-
-echo ".."
-# configure qemu to run 32b armv7 applications
-echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm:" > /proc/sys/fs/binfmt_misc/register
-
-export QEMU_LD_PREFIX=${ROOTFS32b_PATH}
-export QEMU_SET_ENV="LD_LIBRARY_PATH=${LIBS_PATH}"
-
-echo "Done!"
-echo "Environment was set to run 32b applications!"