測試多部裝置的連線能力

背景

您可以執行下列指令,執行多個 Cuttlefish 虛擬裝置:

launch_cvd --num_instances=n

使用 --num_instances 標記執行兩個以上的執行個體時,執行個體會共用 Wi-Fi 和藍牙的連線媒介。這項設定可讓 Cuttlefish 例項透過藍牙和 Wi-Fi 偵測並連線,而無需採取其他動作。

不過,如果您使用 --base_instance_num 旗標和多個 launch_cvd 叫用來執行多個執行個體,就必須指定 wmediumd 的 vhost 伺服器路徑來共用 Wi-Fi 媒介,並避免啟動多個 VM 執行個體供 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

藍牙

Rootcanal 支援 Cuttlefish 藍牙實作,且可以透過網頁版 UI 指令列控制台進行控制。

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

指令 說明
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 將裝置新增至螢幕上
del_device_from_phy DEVICE_INDEX PHY_INDEX 從 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