summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/runqemu-nfs86
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/runqemu-nfs b/scripts/runqemu-nfs
new file mode 100755
index 0000000000..bccbc4c5c8
--- /dev/null
+++ b/scripts/runqemu-nfs
@@ -0,0 +1,86 @@
1#!/bin/bash
2
3# Copyright (c) 2010 Intel Corp.
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License version 2 as
7# published by the Free Software Foundation.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12# See the GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18function usage() {
19 echo "Usage: $0 {machine-type} <kernel> <rootfs-dir>"
20 echo "Where <rootfs-dir> is a rootfs directory that was created using the poky-extract-sdk utility"
21 echo "machine-type is optional if the kernel file is named according to Poky conventions"
22}
23
24if [[ $# -lt 2 || $# -gt 3 ]]; then
25 usage
26 exit 1
27fi
28
29if [ $# -eq 3 ]; then
30 QEMUARCH=$1
31 ZIMAGE=$2
32 SDK_ROOTFS_DIR=$(cd "$3" && pwd)
33else
34 ZIMAGE=$1
35 SDK_ROOTFS_DIR=$(cd "$2" && pwd)
36
37 QEMUARCH=`basename $ZIMAGE | sed -r -e 's#.*-([a-z]+[0-9]*)-?[0-9]*..*#\1#'`
38 if [ -z "$QEMUARCH" ]; then
39 echo "Error: Unable to determine machinetype from filename '$ZIMAGE'"
40 usage
41 exit 1
42 fi
43fi
44
45if [ ! -e "$ZIMAGE" ]; then
46 echo "Error: kernel file '$ZIMAGE' does not exist"
47 usage
48 exit 1
49fi
50
51QEMU_INTERNAL_SCRIPT=`which poky-qemu-internal`
52if [ -z "$QEMU_INTERNAL_SCRIPT" ]; then
53 echo "Error: Unable to find the poky-qemu-internal script"
54 exit 1
55fi
56
57SYSROOT_SETUP_SCRIPT=`which poky-find-native-sysroot`
58if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
59 echo "Error: Unable to find the poky-find-native-sysroot script"
60 echo "Did you forget to source your Poky environment script?"
61 exit 1
62fi
63. $SYSROOT_SETUP_SCRIPT
64
65PSEUDO_LOCALSTATEDIR=~/.poky-sdk/pseudo
66export PSEUDO_LOCALSTATEDIR
67
68# Start the userspace NFS server
69echo "poky-export-rootfs restart $SDK_ROOTFS_DIR"
70poky-export-rootfs restart $SDK_ROOTFS_DIR
71if [ $? != 0 ]; then
72 exit 1
73fi
74
75# Run QEMU
76MACHINE=$QEMUARCH
77TYPE="nfs"
78HDIMAGE=$SDK_ROOTFS_DIR
79CROSSPATH=$NATIVE_SYSROOT_DIR/usr/bin
80. $QEMU_INTERNAL_SCRIPT
81
82# Cleanup
83echo "poky-export-rootfs stop $SDK_ROOTFS_DIR"
84poky-export-rootfs stop $SDK_ROOTFS_DIR
85
86exit 0