适用场景:
- OpenWrt(实体机 / 虚拟机 / iStore)
- ARM64 架构
- 无外网 / 离线环境
- VirtualHere USB Server
- 系统完全启动后再运行服务
❗ 本教程 不包含任何授权 / 许可 / 破解内容
procd)kmod-usb-core 等已安装)本文统一使用以下目录结构:
/usr/VirtualHere/
├── vhusbdarm64 # VirtualHere Server 主程序
├── config.ini # 配置文件(可选)
如果你的文件名或路径不同,请按实际情况替换
mkdir -p /usr/VirtualHere
将 vhusbdarm64 上传或复制到:
/usr/VirtualHere/vhusbdarm64
chmod +x /usr/VirtualHere/vhusbdarm64
OpenWrt 推荐使用 /etc/init.d/ + procd 来管理长期服务。
本方式具备:
vi /etc/init.d/virtualhere
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
VH_DIR="/usr/VirtualHere"
VH_BIN="$VH_DIR/vhusbdarm64"
VH_CONF="$VH_DIR/config.ini"
start_service() {
logger -t virtualhere "Waiting for USB subsystem..."
# 等待 USB 子系统加载完成(离线安全)
while [ ! -d /sys/bus/usb/devices ]; do
sleep 1
done
# 给 hotplug/udev 最后缓冲时间
sleep 2
logger -t virtualhere "Starting VirtualHere USB Server (arm64)"
procd_open_instance
procd_set_param command "$VH_BIN" -c "$VH_CONF"
procd_set_param respawn
procd_close_instance
}
stop_service() {
logger -t virtualhere "Stopping VirtualHere USB Server"
}
chmod +x /etc/init.d/virtualhere
/etc/init.d/virtualhere enable
/etc/init.d/virtualhere start
ps | grep vhusbd
logread | grep virtualhere
正常情况下你会看到类似:
Waiting for USB subsystem...
Starting VirtualHere USB Server (arm64)
数值越大,启动越靠后
确保:
ls -l /usr/VirtualHere/vhusbdarm64
确认:
ls /sys/bus/usb/devices
若为空,请确认:
本方案特点:
非常适合:
本文未包含任何授权、许可或破解内容,仅涉及部署与系统服务管理。