×

OpenWRT部署在VMware虚拟机运行

hqy hqy 发表于2025-11-26 23:30:48 浏览2 评论0

抢沙发发表评论

对于嵌入式开发者来说,OpenWRT是一个功能强大的开源路由器操作系统。一般OpenWRT都是在路由器嵌入式系统运行,需要一笔费用购买专门的ARM架构开发板,才可以运行启动它。下面尝试将它运行在x86架构的虚拟机上,方便没有开发板的同学接触学习OpenWRT。

将要介绍在Ubuntu系统中拉取OpenWRT源码、进行配置编译,并部署到VMware虚拟机中,最后实现宿主机与虚拟机的网络互联。


环境准备

首先确保你的Ubuntu系统已安装必要的编译工具:




sudo apt updatesudo apt install build-essential libncurses5-dev libncursesw5-dev \zlib1g-dev gawk git gettext libssl-dev xsltproc rsync wget unzip python

可以查看下面的文章,快速在Windows部署Ubuntu Linux系统环境。

WSL:Windows下的Linux开发利器

输洲才纸,公众号:Linux物联笔录WSL:Windows下的Linux开发利器

还有下载VMWare Workstation虚拟机软件,安装在Windows系统上。


获取OpenWRT源码

克隆官方源码



git clone https://git.openwrt.org/openwrt/openwrt.gitcd openwrt

更新feeds(软件包列表)



./scripts/feeds update -a./scripts/feeds install -a

由于资源在国外,这个过程下载可能是极其缓慢的,需要耐心。


配置编译选项

进入配置界面


make menuconfig

关键配置选项

下列是有关于虚拟机和x86架构相关的配置选项

在配置界面中,需要特别注意以下设置:

Target System: 选择 x86

Subtarget: 选择 x86_64(根据你的虚拟机架构)

Target Profile选择 Generic x86/64

Target Images: 选中 Build VMware image files (VMDK)

      文件系统格式建议使用squashfs

Network: 选择需要编译的网卡驱动

LuCI: 如果需要Web管理界面,选中相关的LuCI组件


menuconfig配置选项状态说明

空白选项 [ ]

[ ] Network Support

表示该功能不会被编译进最终镜像,也不会生成对应的模块。


选中状态 [*]

[*] Network Support

表示该功能将直接编译进内核,成为系统的一部分。


模块状态 <M>

<M> USB Support

表示该功能将编译为可加载模块,可以在系统运行时动态加载和卸载。


具体步骤

步骤1:进入目标系统配置

 → Target System (x86)  --->

 → Subtarget (x86_64)  --->

 → Target Images  --->

使用 → 键进入 "Target System" 子菜单,选择 x86 架构。


步骤2:选择镜像格式

在 "Target Images" 菜单中:

[ ] Build ext4 filesystem images

[*] Build VMware image files (VMDK)

[ ] Build VirtualBox image files (VDI)

按 空格 键选中 VMware 镜像格式。


步骤3:配置网络驱动

 → Kernel modules  --->

   → Network Devices  --->

     <*> Virtual Network Driver

     <*> VMware VMXNET3 driver

确保选中虚拟机所需的网络驱动程序。


步骤4:保存配置

配置完成后,连续按 ESC ESC 键退出到主界面,选择:

< Save >  - 保存当前配置到.config文件

< Exit >  - 退出menuconfig


开始编译

 启动编译过程


make -j$(nproc) V=s

-j$(nproc) 表示使用所有可用的CPU核心进行编译,V=s 表示输出详细信息。如执行 make -j4 V=s


若网络不好,可以先下载好所有资源再编译,先执行


make download V=s

再进行编译。


详细OpenWRT编译过程解析,请查看下面这篇文章。

OpenWrt工程及编译过程解析

公众号:Linux物联笔录OpenWrt工程及编译过程解析


获取编译镜像文件

编译完成后,在 bin/targets/x86/64/ 目录下可以找到生成的镜像文件:

openwrt-x86-64-generic-squashfs-combined.img.gz

openwrt-x86-64-generic-squashfs-combined.vmdk(VMware专用)

把 openwrt-x86-64-generic-squashfs-combined.vmdk 镜像文件复制到Windows系统,稍后用于VMWare安装。


VMware虚拟机部署

创建新虚拟机

选择"自定义"配置

硬件兼容性选择最新版本

选择"稍后安装操作系统"

选择Linux -> Other Linux 5.x or later kernel 64-bit

处理器和内存根据需求配置(建议至少1核2GB)

网络类型选择"桥接模式"

(其它配置按自己选择,最好默认)

选择使用现有虚拟磁盘,指向刚才生成的.vmdk文件


虚拟机设置调整

确保网卡设置为桥接模式

调整显存为4MB即可


网络桥接配置详解

VMware网络设置

宿主机设置

打开Windows控制面板,进入"网络和Internet" → "网络连接"

确认"VMware Network Adapter"网络适配器已启用

在虚拟网络编辑器中,将VMnet桥接到物理网卡


虚拟机设置

网络适配器选择"桥接模式"

复制物理网络连接状态勾选


OpenWRT网络配置

首次启动OpenWRT后,需要通过串口或修改网络配置:












# 编辑网络配置文件vi /etc/config/network# 修改lan口配置config interface 'lan'    option type 'bridge'    option ifname 'eth0'    option proto 'static'    option ipaddr '192.168.1.1'    # 设置与宿主机同一网段的IP    option netmask '255.255.255.0'    option gateway '192.168.1.254' # 宿主机网关    option dns '8.8.8.8'


重启网络服务


/etc/init.d/network restart


网络连通性测试

宿主机ping测试



# 在宿主机终端执行ping 192.168.1.1


OpenWRT ping宿主机测试



# 在OpenWRT终端执行ping 192.168.1.100  # 假设宿主机IP是192.168.1.100


测试外网连接



# 在OpenWRT中测试外网连通性ping 8.8.8.8



通过本文的详细步骤,在VMware中部署自编译的OpenWRT系统,并实现了与宿主机的网络互通。这个环境为后续的网络功能开发和测试提供了完善的基础平台。也方便进行OpenWRT应用开发。

OpenWRT的强大之处在于其可定制性,希望在这个基础上探索更多有趣的功能!


打赏

本文链接:https://kinber.cn/post/5979.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客