返回犀客博客
试装手册 · Skill v0.2
Xieke Phone 跨平台安装指南
把带 SIM 的 4G 模块接到 Windows、Mac 或 NAS,再用 Xieke Phone 在 iPhone 和 iPad 上测试通话与短信。三种部署路线共用一个 Skill。
先备齐试装所需的东西
- 一只经确认兼容语音与短信的 4G USB 模块、已开通相应服务的 SIM 卡,以及能保持联网的主机。
- 一个试点账号,以及由服务方单独交付的配置、可信清单 SHA-256 和对应 CPU 架构的网关镜像。
- 在 iPhone 或 iPad 上取得可用的试点 App。公开的 ZIP 提供预检工具、说明和部署脚本,不含 App 安装文件、账号或镜像。
还没拿到试点配置?可以先做设备预检。请只回报平台、CPU 架构、模块型号和阻碍,不要发送 SIM 号码、配置文件或密钥。
用 WorkBuddy 协助安装
在 WorkBuddy 中选择「技能 → 添加技能 → 上传技能」,导入下载的 ZIP。也可以解压后在本机终端运行脚本,以下命令以解压后的技能目录为起点。
用 xieke-phone-gateway 在这台机器上部署。我已插好 4G 模块,请先检查系统和设备,缺项就告诉我卡在哪一步。WorkBuddy 导入说明
按模块实际插入的机器选择路线
Windows
windows-wsl- 把模块插到 Windows 11 x64 电脑,从 PowerShell 运行下方预检。也可直接运行包内的试装 EXE;它检查环境,并可按提示准备缺少的组件。
- 准备专用 Ubuntu 24.04 WSL 2 发行版和本机 Docker Engine、Compose 插件。用 usbipd list 确认实际 Bus ID,再按微软说明共享并附加这只空闲模块。别照抄别人的 Bus ID。
- 在 WSL 内进入技能目录运行 Linux 预检。确认 USB 控制接口、录音和播放节点属于同一只模块。试点配置存到 WSL 自己的 Linux 文件系统。
Windows PowerShell
powershell.exe -NoProfile -File .\scripts\preflight-windows.ps1保持 WSL 终端开启,核对空闲模块后再共享并附加。把示例中的 ID 换成 usbipd list 列出的值;首次 bind 需要管理员权限。
usbipd list
usbipd bind --busid <BUS-ID>
usbipd attach --wsl --busid <BUS-ID>在网关的 Linux 环境内
python3 scripts/preflight-linux.py --target windows-wsl --jsonMac
macos-vm- 在 Mac 上运行下方预检,核对 CPU、模块和虚拟机软件。Intel Mac 使用 amd64 Linux 客体与镜像;Apple 芯片使用 arm64。
- 新建支持 USB 直通的专用 Ubuntu 虚拟机,通过虚拟机的 USB 菜单把整只模块交给客体。在客体中准备 Python 3、Docker Engine 与 Compose 插件。只在 Mac 上看到 USB 设备还不够。
- 把技能目录复制到客体,进入目录运行 Linux 预检,核对模块的控制接口以及双向音频节点。网关在虚拟机里运行。
Mac 终端
python3 scripts/preflight-macos.py --json在网关的 Linux 环境内
python3 scripts/preflight-linux.py --target macos-vm --jsonNAS
fnos- 把模块插到运行网关的飞牛或兼容 Linux NAS。在该 NAS 的本机终端或已授权 SSH 会话里进入技能目录。
- 确认 NAS 可访问本机 Docker Engine 和 Compose 插件,再运行下方预检。只看到 Docker 网页或 USB 设备,不代表系统已提供模块对应的录音、播放和控制接口。
- 选择适配 NAS 架构和实际模块的镜像及配置。部分模块需要专用语音适配;缺少对应接口时先停下核对硬件支持。
NAS 终端
python3 scripts/preflight-linux.py --target fnos --json用独立配置部署网关
Windows 在 WSL 2 内操作,Mac 在 Linux 虚拟机内操作,NAS 在本机操作。把服务方给的配置放进仅当前用户可访问的 Linux 目录(0700),其中 .env 权限设为 0600。下面的示例要替换为实际目录、服务方另行提供的清单摘要,以及表中对应的目标。
profile_dir="$HOME/xieke-phone-pilot"
manifest_sha256='<trusted-64-character-SHA256>'
target='windows-wsl' # macos-vm / fnos
python3 scripts/verify-profile.py --profile "$profile_dir" --manifest-sha256 "$manifest_sha256" --target "$target" &&
python3 scripts/deploy-linux.py plan --profile "$profile_dir" --manifest-sha256 "$manifest_sha256" --target "$target"先验证配置并查看部署计划。核对计划中的项目名、架构与设备路径,再启动网关并检查状态。
python3 scripts/deploy-linux.py apply --profile "$profile_dir" --manifest-sha256 "$manifest_sha256" --target "$target" &&
python3 scripts/deploy-linux.py status --profile "$profile_dir" --manifest-sha256 "$manifest_sha256" --target "$target"需要撤回试装时,在同一环境使用相同参数,把 apply 换成 rollback。回退会保留项目数据卷。
容器跑起来之后,实测这几项
- App 注册后,用普通号码实测呼出和呼入,双方都能听到声音。
- 在带语音菜单的通话中按键,确认菜单有响应。
- 锁屏后测试系统来电、接听及通话声音,再测试短信收发、锁屏提醒与解锁后的正文。
- 拔插模块或重启后重新检查设备路径,再测一次。路径变了,请服务方按当前设备更新试点配置。
这是试装流程。设备被识别、容器运行和 App 注册是不同的检查项;只有实际打通电话、收发短信才能确认对应功能。不同模块、NAS 型号及虚拟机组合需要分别验证。