Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 在Apple Silicon上的UTM虚拟机中安装OpenWrt ====== ~~NOTOC~~ <WRAP info> 这份文档描述了如何在 macOS(Apple Silicon 硬件)上的 UTM虚拟机 中运行 **armsr/armv8** 架构的 OpenWrt 镜像。\\ 您可以在wiki的其他地方找到 macOS(Apple Silicon 硬件)上采用其他虚拟化技术虚拟机的安装教程 </WRAP> ==== 选择合适的OpenWrt镜像 ==== 您需要 ARM x64 位版本的 OpenWrt。 有下列两个版本可供选择: * ''combined-squashfs.img.gz'': 截止到版本23.05.0,这个版本与sysupgrade功能不兼容 * ''combined-ext4.img.gz'': 这个磁盘镜像使用一个单独的可读写的ext4分区,没有只读的squashfs根文件系统,因此无法使用像 Failsafe Mode(安全模式)或 Factory Reset(出厂重置)等功能 在这份文档中,我们将使用''openwrt-armsr-armv8-generic-ext4-combined.img.gz/'',因为它支持sysupgrade功能 * 从[[https://downloads.openwrt.org/releases/|targets/armsr/arvm8/ folder]]下载一个稳定版本的 ''generic-ext4-combined.img.gz'' * e.g. [[https://downloads.openwrt.org/releases/23.05.0/targets/armsr/armv8/openwrt-23.05.0-armsr-armv8-generic-ext4-combined.img.gz|23.05.0]]. * 或者你也可以尝试最新版本但不稳定的快照镜像 [[https://downloads.openwrt.org/snapshots/targets/armsr/armv8/openwrt-armsr-armv8-generic-ext4-combined.img.gz|snapshot]] * 解压缩下载得到的gzip文件,你将得到一个原始的''openwrt.img''镜像文件 :!: 提示:保留原始的gzip压缩的镜像文件的副本,它可以用作sysupgrade的镜像。 ===== UTM虚拟机设置 ===== ==== 通过以下步骤创建虚拟机 ==== {{media:virtualization:utm:1-utmstart.png?direct&70}} 启动UTM,然后点击//Create a new Virtual Machine// ---- {{media:virtualization:utm:2-virtualize.png?direct&70}} 选择 //Virtualize// ---- {{media:virtualization:utm:3-other.png?direct&70}} 选择//Other//(因为//Linux//的安装路径需要一个安装ISO映像文件,而我们在OpenWrt中不使用这种映像文件)。 ---- {{media:virtualization:utm:4-no-iso-boot.png?direct&70}} 勾选 //Skip ISO boot// ---- {{media:virtualization:utm:5-cpu-memory.png?direct&70}} 配置为512MB内存和2个CPU(需要保证有足够资源运行sysupgrade)。 ---- {{media:virtualization:utm:6-storage.png?direct&70}} 接受默认的存储设置(稍后将删除这个驱动器并替换为OpenWrt镜像)。 ---- {{media:virtualization:utm:7-shared.png?direct&70}} 无需配置共享目录 ---- {{media:virtualization:utm:8-summary.png?direct&70}} 勾选//Open VM Settings//。为虚拟机命名,然后点击//Save// ---- ==== 虚拟机配置 ==== 如果您根据本文档了设置,请继续参考下列配置: == 网络设置 == {{media:virtualization:utm:11-host-only.png?direct&70}} 选择//Network//。将网络模式更改为//Host Only//。勾选//Show Advanced Settings//。在//Guest Network//框中,输入虚拟机LAN的网络范围://10.0.2.0/24//。 ---- {{media:virtualization:utm:12-wan.png?direct&70}} 在"Devices"下,点击///+New//条目,添加一个新的//Network//。点击这个网络并确认它被配置为//Shared Network//。 ---- 虚拟机上的**br-lan** 接口连接到**lan** 接口,固定地址为10.0.2.2,在UTM中设置为**Host Only Network**。此接口将始终对当前主机可用。\\ 虚拟机上的**eth1**接口连接到**wan**接口,使用动态地址,在UTM中设置为**Shared Network**(NAT)。此接口将通过主机进行互联网访问。\\ :!:"**Host Only Network**"和“**Shared Network**”的顺序对于运行在虚拟机中OpenWrt的即插即用操作非常重要。虽然后续你可以使用控制台进行配置,但以这种方式配置可以简化启动配置的过程。 ---- == 移除未使用的设备 == {{media:virtualization:utm:10-remove.png?direct&70}} 在//Display//选项上右键点击并删除它。在//Sound//选项上右键点击并删除它。(由于OpenWrt运行在终端,无需声音图形设备,删除可以减轻资源压力)在//VirtIO Drive//选项上右键点击并删除它。确认删除驱动器,点击//Delete//。(这是UTM在创建虚拟机时创建的空白磁盘) ---- == 其他设备设置 == {{media:virtualization:utm:13-serial.png?direct&70}} 继续在下方点击///+New//条目,添加一个新的//Serial//设备。点击串口设备并检查模式。默认模式是一个内置终端窗口,支持使用macOS原生键盘快捷键进行复制和粘贴。可自由终端样式。 ---- {{media:virtualization:utm:14-disk.png?direct&70}} 在//Drives//选项部分,选择//New...//。接受接口默认设置(VirtIO),然后点击//Import...//。目标文件夹为你之前解压的''openwrt.img''文件。 ---- 点击//Save//保存以上设置 . === 虚拟机中OpenWrt设置 === ---- * 启动你的虚拟机(点击启动按钮) * 等待几秒GRUB自动启动 * 当启动消息完成滚动时,按Enter键以激活虚拟机内的控制台 * 显示当前LAN网络配置。请注意,在第一次启动时,默认的LAN地址为192.168.1.1。<code>root@openwrt:~# uci show network.lan network.lan=interface network.lan.device='br-lan' network.lan.proto='static' network.lan.ipaddr='192.168.1.1' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60'</code> * 编辑网络配置以允许SSH访问,将以下命令粘贴到控制台中:<code>uci set network.lan.ipaddr='10.0.2.2' uci commit service network restart</code> * 如果您熟悉vim编辑器,可以直接对config文件进行,使用指令:<code>vim /etc/config/network</code>进行修改后重启网络:<code>service network restart</code> * 现在,你可以通过SSH访问你的虚拟机,使用用户root(无密码),IP地址为10.0.2.2 * 如果你安装了一个稳定发布版本的镜像,如23.05.0,LuCi web界面可以通过 http://10.0.2.2/ 进行访问 * 如果你安装了不包含LuCi的快照版本,可以使用以下命令安装luci:<code>opkg update && opkg install luci</code> * 你的主机需要接入互联网(尝试运行opkg update)并需要一个具有静态地址的LAN接口,以确保你可以随时通过SSH进行连接 * 如果你有更复杂的需求,你需要通过阅读其他文档或使用LuCi来自行进行设置 Last modified: 2023/11/08 11:52by imashenyoo