Rodar o OpenWRT no QEMU não é tafera muito difici (mas também não é simples, vai entender…).
Antes de mais nada, considero que você está em uma máquina com alguma distribuição Linux (Ubuntu, Fedora, OpenSUSE…).
Primeiro instale o pacote qemu-system-arm (qemu-arm no caso do OpenSUSE), no caso do Ubuntu:
$ apt install qemu-system-arm
Agora, baixe os pacotes root.ext4.gz e zImage de https://downloads.openwrt.org/releases/19.07.4/targets/armvirt/32/ (versão 19.07.4, arquitetura armvirt-32)
Você precisa descompactar o arquivo root.ext4.gz, antes de continuar:
$ gunzip root.ext4.gz
Para rodar a imagem, basta baixar o script qemustart: https://raw.githubusercontent.com/openwrt/openwrt/openwrt-19.07/scripts/qemustart
Dê permissão de execução a ele:
$ chmod +x qemustart
Agora edite o arquivo /etc/qemu/bridge.conf e adicione as duas linhas abaixo:
allow br-lan
allow br-wan
Edite também o próprio script qemustart antes de executá-lo pela primeira vez. Adicione a linha && do_setup \
a linha 341, o resultado deve ser algo como abaixo:
parse_args "$@" \
&& do_setup \
&& check_setup \
&& start_qemu
Agora, basta rodar o comando e você deve “cair” no console do OpenWRT:
sudo ./scripts/qemustart armvirt 32 --machine virt,highmem=off --kernel openwrt-19.07.4-armvirt-32-zImage --rootfs openwrt-19.07.4-armvirt-32-root.ext4 --network
NOTA: Essa configuração habilita o acesso SSH e a LuCI pelo endereço 192.168.1.1, mas não permite que o OpenWRT acesse a internet. Ainda estou estudando uma maneira de fazer isso.