简要:不需要开发板的情况下,也可运行openwrt。
qemu介绍与下载
qemu介绍:
QEMU(Quick EMUlator)是一个开源的虚拟化软件,它可以模拟多个硬件平台,并在其上运行各种操作系统。类似常用的虚拟机模拟器Vmware,不过qemu更倾向于一些嵌入式系统架构的系统模拟,像mips/arm m系列等。
qemu下载
安装命令:sudo apt-get install qemu
编译OpenWrt并且运行
详细编译步骤参考:OpenWrt源码下载编译
选择对应的架构,运行openwrt
x86架构:
#当前在 openwrt目录下
cd bin/targets/x86/64
qemu-system-x86_64 -m 512 -smp 4 -M pc -drive file=openwrt-x86-64-generic-ext4-combined.img,if=none,id=openwrtdisk -device ich9-ahci,id=ahci -device ide-drive,drive=openwrtdisk,bus=ahci.0 -net nic,vlan=0,macaddr=52:54:00:AF:53:81,model=virtio -net user,vlan=0 -redir tcp:10023::23 -redir tcp:10080::80 -rtc base=localtime
qemu启动命令解析:
- qemu-system-x86_64 是启动 QEMU 的命令。
- -m 512 设置虚拟机的内存大小为 512MB。
- -smp 4 指定使用 4 个虚拟处理器核心。
- -M pc 使用标准的 PC 机型。
- -drive file=openwrt-x86-64-generic-ext4-combined.img,if=none,id=openwrtdisk 定义一个虚拟硬盘,并指定 OpenWrt 镜像文件的路径。
- -device ich9-ahci,id=ahci -device ide-drive,drive=openwrtdisk,bus=ahci.0 创建一个 AHCI 控制器设备和一个与之关联的 IDE 驱动器,并将虚拟硬盘连接到该驱动器上。
- -net nic,vlan=0,macaddr=52:54:00:AF:53:81,model=virtio -net user,vlan=0 创建一个虚拟网络接口卡和一个用户模式网络,允许虚拟机通过主机网络进行通信。
- -redir tcp:10023::23 -redir tcp:10080::80 将宿主机的端口 10023 映射到虚拟机的端口 23(SSH),将宿主机的端口 10080 映射到虚拟机的端口 80(HTTP)。
- -rtc base=localtime 使用本地时间作为虚拟机的实时时钟。
进入openwrt后的界面如下:
mips架构:(此步骤可忽略)
cd bin/targets #此处需要找到对应的内核文件
qemu-system-mips -M malta -m 512M -kernel openwrt-malta-be-vmlinux-initramfs.elf -append "root=/dev/ram console=ttyS0" -nographic -net nic,model=virtio -net user,hostfwd=tcp::10023-:23,hostfwd=tcp::10080-:80 -rtc base=localtime
#若进入的qemu无法退出,可在ubuntu启动另一个终端,用命令ps aux | grep qemu,并且使用kill pid 杀死相关qemu进程
openwrt命令行输入以下命令,可更改network配置
network网络配置步骤:
vi /etc/config/network
# 修改需要配置网口信息
# 保存后重启
/etc/init.d/network restart
总结
本文主要介绍在linux(ubuntu系统)的环境下,运行qemu模拟开发板,运行openwrt。