scripts/qemustart: no network by default and enable with -n
[openwrt/openwrt.git] / scripts / qemustart
index 2012d43a85287160c5a2adaaee89b613de18fd97..8daeac69a86d3db65f54d15bdae46f621ef3bbbf 100755 (executable)
@@ -74,7 +74,7 @@ check_setup_() {
 }
 
 check_setup() {
-       [ -z $o_nonetwork ] || return 0
+       [ -n "$o_network" ] || return 0
        check_setup_ || {
                __errmsg "please check the script content to see the environment requirement"
                return 1
@@ -90,6 +90,7 @@ Usage: $SELF [-h|--help]
          [--kernel <kernel>]
          [--rootfs <rootfs>]
          [--machine <machine>]
+         [-n|--network]
 
 <subtarget> will default to "generic" and must be specified if
 <extra-qemu-options> are present
@@ -120,13 +121,14 @@ rand_mac() {
 }
 
 parse_args() {
+       o_network=
        o_qemu_extra=()
        while [ "$#" -gt 0 ]; do
                case "$1" in
-                       --no-network|-n) o_nonetwork=1; shift ;;
                        --kernel) o_kernel="$2"; shift 2 ;;
                        --rootfs) o_rootfs="$2"; shift 2 ;;
                        --machine|-machine|-M) o_mach="$2"; shift 2 ;;
+                       --network|-n) o_network=1; shift ;;
                        --help|-h)
                                usage
                                exit 0
@@ -187,7 +189,7 @@ start_qemu_armvirt() {
                )
        }
 
-       [ -n $o_nonetwork ] || {
+       [ -z "$o_network" ] || {
                o_qemu_extra+=( \
                        "-netdev" "bridge,id=lan,br=$BR_LAN,helper=$HELPER" \
                            "-device" "virtio-net-pci,id=devlan,netdev=lan,mac=$MAC_LAN" \
@@ -205,6 +207,7 @@ start_qemu_malta() {
        local is64
        local isel
        local qemu_exe
+       local rootfs="$o_rootfs"
        local kernel="$o_kernel"
        local mach="${o_mach:-malta}"
 
@@ -215,10 +218,20 @@ start_qemu_malta() {
 
        [ -n "$kernel" ] || kernel="$o_bindir/openwrt-malta-${o_subtarget%-*}-vmlinux-initramfs.elf"
 
+       [ -z "$rootfs" ] || {
+               if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
+                       gunzip "$rootfs.gz"
+               fi
+               o_qemu_extra+=( \
+                       "-drive" "file=$rootfs,format=raw" \
+                       "-append" "root=/dev/sda rootwait" \
+               )
+       }
+
        # NOTE: order of wan, lan -device arguments matters as it will affect which
        # one will be actually used as the wan, lan network interface inside the
        # guest machine
-       [ -n $o_nonetwork ] || {
+       [ -z "$o_network" ] || {
                o_qemu_extra+=( \
                        "-netdev" "bridge,id=wan,br=$BR_WAN,helper=$HELPER" "-device" \
                            "virtio-net-pci,id=devwan,netdev=wan,mac=$MAC_WAN" \
@@ -265,7 +278,7 @@ start_qemu_x86() {
            )
        }
 
-       [ -n $o_nonetwork ] || {
+       [ -z "$o_network" ] || {
                o_qemu_extra+=( \
                        "-netdev" "bridge,id=lan,br=$BR_LAN,helper=$HELPER" \
                            "-device" "virtio-net-pci,id=devlan,netdev=lan,mac=$MAC_LAN" \