测试多台设备的连接

背景

只需执行以下命令,即可运行多台 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