測試多部裝置的連線情形

背景

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

launch_cvd --num_instances=n

使用 --num_instances 旗標執行兩個以上的執行個體時, 執行個體會共用 Wi-Fi 和藍牙的連線媒介。這項設定 可讓 Cuttlefish 執行個體 藍牙和 Wi-Fi,不必進行額外操作。

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

多裝置啟動範例

以下命令說明如何使用 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,可透過網頁版 UI 指令列主控台進行控制。

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

指令 說明
list 列出目前的裝置和 phys
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 刪除 `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] 以下列條件重新載入 wmediumd 設定: CONFIG_FILE_PATH,如果 CONFIG_FILE_PATH 是 省略,重新載入目前載入中 設定檔
set_position MAC_ADDR X_POSITION Y_POSITION 將充電站的位置設在 2D 空間

OpenWRT

如要連線至 OpenWRT (存取點),可以使用 ssh 或管理員網頁。

連線類型 方法
ssh
ssh root@192.168.96.2
管理員網頁 https://192.168.96.2