背景
只需执行以下命令,即可运行多台 Cuttlefish 虚拟设备:
launch_cvd --num_instances=n
使用 --num_instances
标志运行两个或更多实例时,实例会共享 Wi-Fi 和蓝牙的连接媒介。此设置可让 Cuttlefish 实例通过蓝牙和 Wi-Fi 发现彼此并互相连接,而无需执行任何其他操作。
但是,如果您使用 --base_instance_num
标志和多个 launch_cvd
调用执行多个实例,则需要指定 wmediumd
的 vhost 服务器路径以共享 Wi-Fi 媒介,并且还需要防止针对 AP 启动多个虚拟机实例。
多设备启动示例
以下命令展示了如何使用 launch_cvd
的串行执行启动两个共享 Wi-Fi 媒介的 Cuttlefish 实例。
launch_cvd
launch_cvd --base_instance_num=2 \ --vhost_user_mac80211_hwsim=$HOME/cuttlefish_runtime.1/internal/vhost_user_mac80211 \ --ap_kernel_image="" --ap_rootfs_image="" #Prevent launching multiple VM instances for AP
蓝牙
Cuttlefish 蓝牙实现由 rootcanal 支持,可通过网页界面命令行控制台进行控制。
在控制台中,可通过几个命令控制访客设备上的蓝牙:
命令 | 说明 |
---|---|
list |
列出当前设备和 PHY |
add DEVICE_TYPE [ARGS] |
创建类型为 DEVICE_TYPE 的新设备 |
del DEVICE_INDEX |
删除设备 |
add_phy PHY_TYPE |
添加类型为 PHY_TYPE 的新 PHY |
del_phy PHY_INDEX |
删除 PHY |
add_device_to_phy DEVICE_INDEX PHY_INDEX |
向 PHY 添加设备 |
del_device_from_phy DEVICE_INDEX PHY_INDEX |
从 PHY 删除设备 |
add_remote HOSTNAME PORT PHY_TYPE |
添加远程 Rootcanal 作为设备并将其注册到 PHY |
设备类型和参数 |
---|
beacon [MAC_ADDRESS] [ADVERTISE_INTERVAL] |
scripted_beacon [MAC_ADDRESS] [CONFIG_PATH] [EVENTS_PATH] |
keyboard [MAC_ADDRESS] [ADVERTISE_INTERVAL] |
loopback [MAC_ADDRESS] [ADVERTISE_INTERVAL] |
sniffer |
Wi-Fi
wmediumd_control
wmediumd_control
是一种命令行工具,用于控制 Wi-Fi 连接媒介。该工具包含用于操控 Wi-Fi 的以下命令:
命令 | 说明 |
---|---|
set_snr MAC_ADDR1
MAC_ADDR2
SNR_VALUE |
设置两个站点之间的 SNR 值 (0~255) |
start_pcap PCAP_FILE_PATH
|
开始捕获所有无线传输的帧并将其存储到 .pcap 文件 |
stop_pcap
|
停止并最终确定当前数据包捕获 |
list_stations
|
列出附加到 wmediumd 的所有站点 |
reload_config
[CONFIG_FILE_PATH]
|
使用 CONFIG_FILE_PATH 重新加载 wmediumd 配置;如果省略了 CONFIG_FILE_PATH,则重新加载当前已加载的配置文件 |
set_position MAC_ADDR
X_POSITION
Y_POSITION |
设置站点在二维空间中的位置 |
OpenWRT
如果您想连接到 OpenWRT(接入点),可以使用 ssh
或管理员网页。
连接类型 | 方法 |
---|---|
ssh | ssh root@192.168.96.2 |
管理员网页 | https://192.168.96.2 |