測試多部裝置的連線情形

背景

如要執行多個 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

藍牙

Cuttlefish 藍牙實作項目由 rootcanal 支援,可透過 Web UI 指令列控制台控制。

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

指令 說明
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 從 phy 刪除 `device
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 在兩個電台之間設定訊號雜訊比值 (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