测试多个设备的连接

背景

可以通过执行以下命令来运行多个 Cuttlefish 虚拟设备

launch_cvd --num_instances=n

当您使用 --num_instances 标志运行两个或更多实例时,这些实例会共享 Wi-Fi 和蓝牙的连接介质。此设置允许 Cuttlefish 实例通过蓝牙和 Wi-Fi 相互发现和连接,而无需执行其他操作。

但是,如果您通过使用 --base_instance_num 标志和多个 launch_cvd 调用来执行多个实例,则需要指定 wmediumd 的 vhost 服务器路径以共享 Wi-Fi 介质,并防止为 AP 启动多个 VM 实例。

多设备启动示例

以下命令展示了如何启动两个 Cuttlefish 实例,这两个实例通过串行执行 launch_cvd 共享 Wi-Fi 介质。

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

蓝牙

Rootcanal 支持 Cuttlefish 蓝牙实现,并且可以通过 Web 界面命令行控制台进行控制。

在控制台中,有几个命令允许控制访客设备上的蓝牙

命令 说明
list 列出当前设备和物理层
add DEVICE_TYPE [ARGS] 创建类型为 DEVICE_TYPE 的新设备
del DEVICE_INDEX 删除设备
add_phy PHY_TYPE 添加具有 PHY_TYPE 的新物理层
del_phy PHY_INDEX 删除物理层
add_device_to_phy DEVICE_INDEX PHY_INDEX 将设备添加到物理层
del_device_from_phy DEVICE_INDEX PHY_INDEX 从物理层删除设备
add_remote HOSTNAME PORT PHY_TYPE 添加远程 Rootcanal 作为设备并将其注册到物理层
设备类型和参数
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