}
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
[--kernel <kernel>]
[--rootfs <rootfs>]
[--machine <machine>]
+ [-n|--network]
<subtarget> will default to "generic" and must be specified if
<extra-qemu-options> are present
}
parse_args() {
+ o_network=
o_qemu_extra=()
while [ "$#" -gt 0 ]; do
+ # Cmdline options for the script itself SHOULD try to be
+ # prefixed with two dashes to distinguish them from those for
+ # qemu executables.
+ #
+ # Also note that qemu accepts both --opt and -opt
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
)
}
- [ -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" \
# 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 ] || {
- o_qemu_extra+=( \
- "-netdev" "bridge,id=wan,br=$BR_WAN,helper=$HELPER" "-device" \
- "virtio-net-pci,id=devwan,netdev=wan,mac=$MAC_WAN" \
- "-netdev" "bridge,id=lan,br=$BR_LAN,helper=$HELPER" \
- "-device" "virtio-net-pci,id=devlan,netdev=lan,mac=$MAC_LAN" \
+ [ -z "$o_network" ] || {
+ o_qemu_extra+=(
+ -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device pcnet,netdev=wan,mac="$MAC_WAN"
+ -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device pcnet,netdev=lan,mac="$MAC_LAN"
)
}
local mach="${o_mach:-pc}"
[ -n "$rootfs" ] || {
- rootfs="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-combined-ext4.img"
+ rootfs="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-generic-ext4-combined.img"
if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
gunzip "$rootfs.gz"
fi
)
}
- [ -n $o_nonetwork ] || {
- o_qemu_extra+=( \
- "-netdev" "bridge,id=lan,br=$BR_LAN,helper=$HELPER" \
- "-device" "virtio-net-pci,id=devlan,netdev=lan,mac=$MAC_LAN" \
- "-netdev" "bridge,id=wan,br=$BR_WAN,helper=$HELPER" "-device" \
- "virtio-net-pci,id=devwan,netdev=wan,mac=$MAC_WAN" \
- )
+ [ -z "$o_network" ] || {
+ case "${o_subtarget%-*}" in
+ legacy)
+ o_qemu_extra+=(
+ -netdev "bridge,id=lan,br=$BR_LAN,helper=$HELPER" -device "e1000,id=devlan,netdev=lan,mac=$MAC_LAN"
+ -netdev "bridge,id=wan,br=$BR_WAN,helper=$HELPER" -device "e1000,id=devwan,netdev=wan,mac=$MAC_WAN"
+ )
+ ;;
+ generic|64)
+ o_qemu_extra+=(
+ -netdev "bridge,id=lan,br=$BR_LAN,helper=$HELPER" -device "virtio-net-pci,id=devlan,netdev=lan,mac=$MAC_LAN"
+ -netdev "bridge,id=wan,br=$BR_WAN,helper=$HELPER" -device "virtio-net-pci,id=devwan,netdev=wan,mac=$MAC_WAN"
+ )
+ ;;
+ esac
}
case "${o_subtarget%-*}" in