diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/runqemu | 16 | ||||
-rwxr-xr-x | scripts/runqemu-internal | 14 |
2 files changed, 26 insertions, 4 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index a9f513c7a9..e6e43f20c8 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
@@ -208,6 +208,7 @@ if [ -z "$MACHINE" ]; then | |||
208 | fi | 208 | fi |
209 | 209 | ||
210 | YOCTO_KVM_WIKI="https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu" | 210 | YOCTO_KVM_WIKI="https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu" |
211 | YOCTO_PARAVIRT_KVM_WIKI="https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM" | ||
211 | # Detect KVM configuration | 212 | # Detect KVM configuration |
212 | if [ "x$KVM_ENABLED" = "xyes" ]; then | 213 | if [ "x$KVM_ENABLED" = "xyes" ]; then |
213 | if [ -z "$KVM_CAPABLE" ]; then | 214 | if [ -z "$KVM_CAPABLE" ]; then |
@@ -226,14 +227,27 @@ if [ "x$KVM_ENABLED" = "xyes" ]; then | |||
226 | echo "$YOCTO_KVM_WIKI"; | 227 | echo "$YOCTO_KVM_WIKI"; |
227 | exit 1; | 228 | exit 1; |
228 | fi | 229 | fi |
230 | if [ ! -e /dev/vhost-net ]; then | ||
231 | echo "Missing virtio net device. Have you inserted vhost-net module?" | ||
232 | echo "For further help see" | ||
233 | echo "$YOCTO_PARAVIRT_KVM_WIKI"; | ||
234 | exit 1; | ||
235 | fi | ||
229 | if 9<>/dev/kvm ; then | 236 | if 9<>/dev/kvm ; then |
230 | SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm" | 237 | SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm -cpu host" |
238 | KVM_ACTIVE="yes" | ||
231 | else | 239 | else |
232 | echo "You have no rights on /dev/kvm." | 240 | echo "You have no rights on /dev/kvm." |
233 | echo "Please change the ownership of this file as described at" | 241 | echo "Please change the ownership of this file as described at" |
234 | echo "$YOCTO_KVM_WIKI"; | 242 | echo "$YOCTO_KVM_WIKI"; |
235 | exit 1; | 243 | exit 1; |
236 | fi | 244 | fi |
245 | if [ ! -w /dev/vhost-net -a -r /dev/vhost-net ]; then | ||
246 | echo "You have no rights on /dev/vhost-net." | ||
247 | echo "Please change the ownership of this file as described at" | ||
248 | echo "$YOCTO_PARAVIRT_KVM_WIKI"; | ||
249 | exit 1; | ||
250 | fi | ||
237 | fi | 251 | fi |
238 | 252 | ||
239 | machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'` | 253 | machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'` |
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index a9b1c44de4..f2c8d8309f 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal | |||
@@ -221,7 +221,15 @@ n2=$(($n1 + 1)) | |||
221 | 221 | ||
222 | KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0" | 222 | KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0" |
223 | QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no" | 223 | QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no" |
224 | QEMU_NETWORK_CMD="-net nic,vlan=0 $QEMU_TAP_CMD" | 224 | if [ "$KVM_ACTIVE" = "yes" ]; then |
225 | QEMU_NETWORK_CMD="-net nic,model=virtio $QEMU_TAP_CMD,vhost=on" | ||
226 | DROOT="/dev/vda" | ||
227 | ROOTFS_OPTIONS="-drive file=$ROOTFS,if=virtio" | ||
228 | else | ||
229 | QEMU_NETWORK_CMD="-net nic,vlan=0 $QEMU_TAP_CMD" | ||
230 | DROOT="/dev/hda" | ||
231 | ROOTFS_OPTIONS="-hda $ROOTFS" | ||
232 | fi | ||
225 | KERNCMDLINE="mem=$QEMU_MEMORY" | 233 | KERNCMDLINE="mem=$QEMU_MEMORY" |
226 | QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice wacom-tablet" | 234 | QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice wacom-tablet" |
227 | 235 | ||
@@ -321,8 +329,8 @@ if [ "$MACHINE" = "qemux86" ]; then | |||
321 | QEMU=qemu-system-i386 | 329 | QEMU=qemu-system-i386 |
322 | QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware" | 330 | QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware" |
323 | if [ "$FSTYPE" = "ext2" -o "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then | 331 | if [ "$FSTYPE" = "ext2" -o "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then |
324 | KERNCMDLINE="vga=0 root=/dev/hda rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD" | 332 | KERNCMDLINE="vga=0 root=$DROOT rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD" |
325 | QEMUOPTIONS="$QEMU_NETWORK_CMD -hda $ROOTFS $QEMU_UI_OPTIONS" | 333 | QEMUOPTIONS="$QEMU_NETWORK_CMD $ROOTFS_OPTIONS $QEMU_UI_OPTIONS" |
326 | fi | 334 | fi |
327 | if [ "$FSTYPE" = "nfs" ]; then | 335 | if [ "$FSTYPE" = "nfs" ]; then |
328 | if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then | 336 | if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then |