Платформа Qualcomm SDX55: руководство по тестированию модемной петли
Платформа Qualcomm SDX55: руководство по тестированию модемной петли

Платформа Qualcomm SDX55: руководство по тестированию модемной петли

1. Предыстория

Скорость 5G очень высока. Чтобы подключенное к нему хост-устройство обеспечивало полную производительность 5G, главный компьютер должен быть правильно настроен, например, балансировка нагрузки ЦП, решения для программного и аппаратного ускорения и т. д. Однако на данном этапе развертывание 5G еще не завершено, а фактическая скорость сети составляет примерно 1 Гбит/с. В настоящее время проблемы с высокой скоростью могут даже не быть обнаружены. Стоимость развертывания счетчиков на стороне клиента для измерения скорости слишком высока. Отсюда и решение для тестирования Loopback.

Тестирование по шлейфу не требует SIM-карты, реальной сети или инструментов. Очень удобно проверить, в порядке ли программное и аппаратное обеспечение клиента. Поэтому рекомендуется, прежде чем приступать к реальному тестированию сети или приборов, сначала провести тестирование по шлейфу, чтобы убедиться, что программная и аппаратная среда в порядке.

SDX55 поддерживает петлю сетевой карты rmnet/qmi. То есть после установки режима обратной связи все данные, отправленные на SDX55 через сетевую карту rmnet главного компьютера, могут быть возвращены обратно на главный компьютер с помощью X55. В то же время, чтобы снизить нагрузку на главный компьютер во время загрузки, X55 поддерживает собственный цикл обратной связи, кратный. Например, предположим, что мы определяем 8-кратную петлю, когда главный компьютер отправляет 10M данных на X55. X55 возвращает 80M данных на главный компьютер.

  • Примечание. В настоящее время нет необходимости пытаться выполнить пинг управления сетью 192.168.48.172. Шлюз режима обратной связи не ответит на ping-пакет правильно, но вернет данные без изменений.

2. Включите функцию X55Loopback.

2.1 Подключитесь к QPST EFS Explorer

После правильной установки драйвера USB модуля SDX55 и инструмента Qualcomm QPST вставьте модуль X55. Откройте конфигурацию QPST, QPST автоматически распознает наше устройство:

Нажмите «Пуск» в QPST. Clients ->EFS Explorer:

Откройте инструмент EFS Explorer. Инструмент автоматически определит вставленный модуль X55. Нажмите «ОК» непосредственно во всплывающем окне «Выбор телефона», как показано на рисунке ниже:

После правильной идентификации модуля X55 нажмите «ОК». Через некоторое время появится подробный список конфигурации, как показано на рисунке ниже.

2.2 Создайте файл Loopback_config.txt.

Создайте файл:loopback_config.txt по пути /nv/item_files/modem/data/3gpp/ps/.

Содержимое файлаloopback_config.txt следующее: LOOPBACK_ENABLED:1; L2_LOOPBACK_ENABLED:0; СИСТЕМНЫЙ РЕЖИМ: 9; REP_FACTOR: 5;

REP_FACTOR в файле является коэффициентом обратной связи. Рекомендуется, чтобы максимальное значение не превышало 14, иначе произойдет блокировка данных.

В каталоге /nv/item_files/modem/data/3gpp/ps/.,Щелкните правой кнопкой мыши в окне справа,выбраноNew->File:

Нажмите «Обзор» во всплывающем окне и выберите созданный выше файл «loopback_config.txt». После нажатия «ОК» файл «loopback_config.txt» будет загружен в каталог /nv/item_files/modem/data/3gpp/ps/. Процесс работы показан на рисунке ниже:

После завершения это будет выглядеть как на картинке ниже:

После проверки правильности перезапустите модуль, чтобы изменения вступили в силу.

3. Проверьте функцию обратной связи в Windows.

3.1 Подготовка тестовой среды

Для тестирования под Windows вам необходимо подготовить один модуль, кабель для передачи данных USB3.0, клиент iperf2 и инструмент мониторинга скорости сети DU Meter. QMItestPro, инструмент коммутируемого доступа под Windows.

Наберите номер с помощью QMItestPro:

  1. Установите для модуля порт Qualcomm через at+gtusbmode=31.
  2. Открыть QMITestPro
  3. Выберите WDS
  4. Выберите сетевую карту
  5. Выберите SIM-карту как WDS_DEFAULT_SUBS.
  6. Нажмите «Подключиться».
  7. Проверьте результат набора. Если это QMI_RESAULT_SUCCESS, набор успешен.

3.2 Выполнение тестов

Откройте два окна cmd в Windows и перейдите в папку iperf2.

  1. Один конец — это сервер, выполните iperf.exe -s -i 1 -u -b 1000m.
  2. Один конец — это клиент, выполните iperf.exe -c 192.168.48.172 -i 1 -u -b 1000m -l 9000
  3. Просмотр результатов мониторинга в ДУ-метре

3.3 Результаты испытаний

Вы можете увидеть результаты теста: скорость нисходящего потока USB стабильна и составляет около 2,7 Гбит/с. Пиковая загрузка процессора составляет 93%, а средняя — 43%.

Тестовая аппаратная среда: Lenovo K43c-80, процессор: i5-8250U, память 8 ГБ, 64-битная операционная система win10.

4. Проверьте функцию обратной связи в Linux.

4.1 Подготовка тестовой среды

Для тестирования под Linux вам необходимо подготовить один модуль, кабель для передачи данных USB3.0, клиент iperf2 и инструмент мониторинга скорости сети nload. QMI_Dial, инструмент коммутируемого доступа в Linux.

После включения модуля модуль должен поддерживать режим rmnet. Выполнение QMI_Dial Часть вывода журнала QMI_Dial после набора номера выглядит следующим образом:

4.2 Выполнение тестов

Откройте два терминала и действуйте как сервер и клиент соответственно.

  1. Один конец является сервером и выполняет
Язык кода:javascript
копировать
iperf -s -i 1 -u -b 1000m
  1. Один конец является клиентом и выполняет
Язык кода:javascript
копировать
iperf -c 192.168.48.172 -i 1 -u -b 1000m -l 9000
  1. Используйте nload -u H для просмотра результатов мониторинга.

4.3 Результаты испытаний

Вы можете увидеть результаты теста: скорость нисходящего потока USB стабильна и составляет около 3,99 Гбит/с.

Тестовая аппаратная среда: Lenovo P300, процессор: i7-4790, память 16 ГБ, 64-битная операционная система ubuntu14.04.

5. Проверьте функцию обратной связи под Android.

5.1 Установка режима USB-порта модуля X55

Переключите USB-порт модуля в режим RMnet.

5.2 Настройка IP сетевой карты

Используйте следующую команду, чтобы остановить работу Android ril: остановить ril-daemon, как показано на рисунке ниже:

Введите следующую команду, чтобы настроить IP-адрес сетевой карты USB0:

Язык кода:javascript
копировать
echo -ne "at\$qcrmcall=1,1,1\r" > /dev/ttyUSB2
ifconfig usb0 up
busybox udhcpc -i usb0
ip addr add 192.168.48.171/24 dev usb0

Как показано ниже:

5.3 Использование Iperf для измерения скорости

Введите следующую команду, чтобы запустить сервер Iperf:

Язык кода:javascript
копировать
iperf -s -i 1 -u -b 1000m

Введите следующую команду, чтобы запустить клиент Iperf

Язык кода:javascript
копировать
iperf -c 192.168.48.172 -i 1 -u  -b 1000m -t 3600
  • Примечание. Поскольку IP-адрес, который мы назначили сетевой карте USB0, — 192.168.48.171, IP-адрес модуля X55 — 192.168.48.172, поэтому IP-адрес сервера, установленный нашим клиентом Iperf, — 192.168.48.172.

Будем использовать скрипт для подсчета скорости сетевой картыspeedmonitor.sh push в rk3399,Так как для этого скрипта требуется awk, которого нет в нашем RK3399,Следующее может бытьawk Нажмите на /system/bin.

Скриншот теста скорости представлен на рисунке:

Здесь вы можете видеть, что скорость загрузки USB0 в 5 раз превышает скорость загрузки. В соответствии с 5 разами, которые мы определили в loopback_config.txt.

6. Подробное объяснение использования Iperf.

Iperf — это широко используемый инструмент тестирования скорости. Его функция заключается в отправке пакетов от клиента к серверу. Например, если вы хотите проверить данные нисходящего канала модуля, прибор действует как клиент, а клиентское устройство — как клиент. Сервер.

Iperf –h Вы можете посмотреть справочный документ. Вот параметры, которые нам нужно использовать при тестировании. Давайте еще раз представим их подробно:

Таблица 1. Значение особых опций на стороне сервера

Параметры командной строки

Описание значения

-s

Запустите в режиме сервера, например: iperf -s

-D

Запустите iperf как службу, например: iperf -s -D

-U

Работает в однопоточном режиме UDP.

-s

Запустите в режиме сервера, например: iperf -s

Таблица 2. Значение опций, специфичных для клиента

Параметры командной строки

Описание значения

-c

Запустить в клиентском режиме

-d

Одновременное тестирование в обоих направлениях

-n

Указывает количество байт для передачи

-r

Выполняйте двустороннее тестирование в одиночку

-t

Время передачи (секунды) (по умолчанию 10 секунд)

-B

Привяжите адрес источника для инициации связи.

-F

Введите данные для переноса из файла

-I

Введите данные, которые будут переданы из стандартного ввода

-L

Порт для получения двунаправленного результата теста

-P

Количество параллельных клиентских потоков для запуска

-T

Время жизни многоадресной рассылки (по умолчанию — 1)

-Z

Установите алгоритм управления перегрузкой TCP (только Linux)

Таблица 3. Значение общих опций между клиентом и сервером

Параметры командной строки

Описание значения

-f

Формат отчета: Кбит, Мбит, Кбайт, Мбайт.

-p

Укажите порт сервера для прослушивания/подключения

-i

Количество секунд между периодическими отчетами о пропускной способности

-b

Пропускная способность отправки в битах/секунду или пакетах в секунду

-e

Используйте расширенные отчеты, чтобы предоставить больше информации о TCP/UDP и трафике.

-l

Длина буфера для чтения или записи (по умолчанию 8 КБ)

-m

Печать максимального размера сегмента TCP (MTU — заголовок TCP/IP)

-o

Выводить отчеты или сообщения об ошибках в этот указанный файл.

-u

Использовать протокол UDP

-w

Укажите размер окна TCP (размер буфера сокета)

-z

Запросить планировщик в реальном времени

-B

обязательностьприезжать<Хозяин>,интерфейс или адрес многоадресной рассылки

-C

Совместимость со старыми версиями

-M

Установить максимальный размер сегмента TCP (MTU — 40 байт)

-N

Установите TCP без задержки и отключите алгоритм Нейгла.

-V

Установите имя домена на IPv6

Мой блог скоро будет синхронизирован с сообществом разработчиков Tencent Cloud, и приглашаю всех присоединиться: https://cloud.tencent.com/developer/support-plan?invite_code=2m8wqr7qn7s4g

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose