測試多部裝置的連線情形

背景

如要執行多個 Cuttlefish 虛擬裝置,請執行下列指令:

launch_cvd --num_instances=n

使用 --num_instances 標記執行兩個以上的執行個體時,執行個體會共用 Wi-Fi 和藍牙的連線媒介。這項設定可讓 Cuttlefish 例項透過藍牙和 Wi-Fi 相互偵測及連線,無須額外採取任何動作。

不過,如果您使用 --base_instance_num 旗標和多個 launch_cvd 叫用來執行多個執行個體,就必須指定 wmediumd 的 vhost 伺服器路徑,以便共用 Wi-Fi 媒介,並防止為 AP 啟動多個 VM 執行個體。

多裝置啟動範例

以下命令說明如何啟動兩個共用 Wi-Fi 介面的 Cuttlefish 例項,並使用 launch_cvd 的逐一執行功能。

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 藍牙實作,可透過網頁版 UI 指令列控制台進行控制。

在控制台中,您可以使用多個指令控制訪客裝置上的藍牙:

指令 說明
list 列出目前的裝置和物理裝置
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 刪除 `device from phy
add_remote HOSTNAME PORT PHY_TYPE 將遠端 Rootcanal 新增為裝置,並將其註冊至 phy
裝置類型和 args
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