Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Проверка подключения нескольких устройств
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Фон
Запустить несколько виртуальных устройств Cuttlefish можно, выполнив следующую команду:
launch_cvd --num_instances=n
При запуске двух или более экземпляров с использованием флага --num_instances
экземпляры совместно используют среду подключения для Wi-Fi и Bluetooth. Эта настройка позволяет экземплярам Cuttlefish обнаруживать и подключаться друг к другу через Bluetooth и Wi-Fi без дополнительных действий.
Однако если вы запускаете несколько экземпляров с помощью флага --base_instance_num
и нескольких вызовов launch_cvd
, вам необходимо указать путь к серверу vhost wmediumd
для совместного использования среды Wi-Fi, а также запретить запуск нескольких экземпляров виртуальной машины для точки доступа.
Пример запуска на нескольких устройствах
Следующие команды показывают, как запустить два экземпляра Cuttlefish, которые совместно используют среду Wi-Fi, используя последовательное выполнение 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
Bluetooth
Реализация Bluetooth в Cuttlefish поддерживается rootcanal и может управляться с помощью консоли командной строки веб-интерфейса.
В консоли есть несколько команд, позволяющих управлять Bluetooth на гостевом устройстве:
Команда | Описание |
---|
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 | Добавьте удаленный корневой канал как устройство и зарегистрируйте его в физиотерапевтическом отделении. |
Тип устройства и аргументы |
---|
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 | Установить положение станции в двумерном пространстве |
OpenWRT
Если вы хотите подключиться к OpenWRT (точке доступа), вы можете использовать ssh
или веб-страницу администратора.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Test connectivity of multiple devices\n\nBackground\n----------\n\nRunning multiple Cuttlefish virtual devices can be done by executing the\nfollowing command: \n\n```\nlaunch_cvd --num_instances=n\n```\n\nWhen you are running two or more instances using `--num_instances` flag,\ninstances share the connectivity medium for Wi-Fi and Bluetooth. This setting\nallows the Cuttlefish instances to discover and connect to each other via\nBluetooth and Wi-Fi without additional action.\n\nHowever, if you are executing multiple instances by using the\n`--base_instance_num` flag and multiple `launch_cvd` invocations, you need\nto specify `wmediumd`'s vhost server path to share Wi-Fi medium, and also\nprevent launching multiple VM instances for AP.\n\nMulti-device launch example\n---------------------------\n\nThe following commands show how to launch two Cuttlefish instances that share\nthe Wi-Fi medium using serial execution of `launch_cvd`. \n\n```\nlaunch_cvd\n``` \n\n```\nlaunch_cvd --base_instance_num=2 \\\n --vhost_user_mac80211_hwsim=$HOME/cuttlefish_runtime.1/internal/vhost_user_mac80211 \\\n --ap_kernel_image=\"\" --ap_rootfs_image=\"\" #Prevent launching multiple VM instances for AP\n```\n\nBluetooth\n---------\n\nThe Cuttlefish bluetooth implementation is supported by rootcanal and can be\ncontrolled with the Web UI command line console.\n\nIn the console, there are several commands that allow for the control of\nbluetooth on the guest device:\n\n| Command | Description |\n|--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|\n| `list` | List current devices and phys |\n| `add` \u003cvar translate=\"no\"\u003eDEVICE_TYPE\u003c/var\u003e \u003cvar translate=\"no\"\u003e[ARGS]\u003c/var\u003e | Create new device of type \u003cvar translate=\"no\"\u003eDEVICE_TYPE\u003c/var\u003e |\n| `del` \u003cvar translate=\"no\"\u003eDEVICE_INDEX\u003c/var\u003e | Delete a device |\n| `add_phy` \u003cvar translate=\"no\"\u003ePHY_TYPE\u003c/var\u003e | Add new phy with \u003cvar translate=\"no\"\u003ePHY_TYPE\u003c/var\u003e |\n| `del_phy` \u003cvar translate=\"no\"\u003ePHY_INDEX\u003c/var\u003e | Delete a phy |\n| `add_device_to_phy` \u003cvar translate=\"no\"\u003eDEVICE_INDEX\u003c/var\u003e \u003cvar translate=\"no\"\u003ePHY_INDEX\u003c/var\u003e | Add a device to phy |\n| `del_device_from_phy` \u003cvar translate=\"no\"\u003eDEVICE_INDEX\u003c/var\u003e \u003cvar translate=\"no\"\u003ePHY_INDEX\u003c/var\u003e | Delete a \\`device from phy |\n| `add_remote` \u003cvar translate=\"no\"\u003eHOSTNAME\u003c/var\u003e \u003cvar translate=\"no\"\u003ePORT PHY_TYPE\u003c/var\u003e | Add a remote Rootcanal as device and register it to phy |\n\n| Device type and args |\n|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `beacon` \u003cvar translate=\"no\"\u003e[MAC_ADDRESS]\u003c/var\u003e \u003cvar translate=\"no\"\u003e[ADVERTISE_INTERVAL]\u003c/var\u003e |\n| `scripted_beacon` \u003cvar translate=\"no\"\u003e[MAC_ADDRESS]\u003c/var\u003e \u003cvar translate=\"no\"\u003e[CONFIG_PATH]\u003c/var\u003e \u003cvar translate=\"no\"\u003e[EVENTS_PATH]\u003c/var\u003e |\n| `keyboard` \u003cvar translate=\"no\"\u003e[MAC_ADDRESS]\u003c/var\u003e \u003cvar translate=\"no\"\u003e[ADVERTISE_INTERVAL]\u003c/var\u003e |\n| `loopback` \u003cvar translate=\"no\"\u003e[MAC_ADDRESS]\u003c/var\u003e \u003cvar translate=\"no\"\u003e[ADVERTISE_INTERVAL]\u003c/var\u003e |\n| `sniffer` |\n\nWi-Fi\n-----\n\n### wmediumd_control\n\n`wmediumd_control` is a command-line tool that controls Wi-Fi connectivity\nmedium. The tool has the following commands to manipulate Wi-Fi:\n\n| Command | Description |\n|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `set_snr` \u003cvar translate=\"no\"\u003eMAC_ADDR1\u003c/var\u003e \u003cvar translate=\"no\"\u003eMAC_ADDR2\u003c/var\u003e \u003cvar translate=\"no\"\u003eSNR_VALUE\u003c/var\u003e | Set SNR value (0\\~255) between two stations |\n| `start_pcap` \u003cvar translate=\"no\"\u003ePCAP_FILE_PATH\u003c/var\u003e | Start capturing all frames transmitted to air and stores it to .pcap file |\n| `stop_pcap` | Stop and finalize current packet capture |\n| `list_stations` | List all stations attached to wmediumd |\n| `reload_config` \u003cvar translate=\"no\"\u003e[CONFIG_FILE_PATH]\u003c/var\u003e | Reload wmediumd configuration with \u003cvar translate=\"no\"\u003eCONFIG_FILE_PATH\u003c/var\u003e, if \u003cvar translate=\"no\"\u003eCONFIG_FILE_PATH\u003c/var\u003e is omitted, reload currently loaded config file |\n| `set_position` \u003cvar translate=\"no\"\u003eMAC_ADDR\u003c/var\u003e \u003cvar translate=\"no\"\u003eX_POSITION\u003c/var\u003e \u003cvar translate=\"no\"\u003eY_POSITION\u003c/var\u003e | Set position of the station in two-dimensional space |\n\n### OpenWRT\n\nIf you want to connect to OpenWRT (Access Point), you can use either `ssh` or\nthe admin webpage.\n\n| Connection Type | Method |\n|-----------------|-------------------------------|\n| ssh | ``` ssh root@192.168.96.2 ``` |\n| Admin webpage | \u003chttps://192.168.96.2\u003e |"]]