Установка SIMtrace Analyser
Требования
- Python 3.9+
- PyUSB —
pip install pyusb(нужен только для захвата с оборудования SIMtrace2; захват GSMTAP/UDP и импорт PCAP работают без него) - libusb — системная библиотека, обычно уже есть в Linux; в Windows нужно заменить драйвер SIMtrace2 (см. Доступ к USB-устройству)
- Оборудование SIMtrace2 с прошивкой в режиме trace (только для прямого захвата; VID
1d50, PID60e3, USB classff, subclass01). О сборке и прошивке trace-прошивки см. проект SIMtrace2.
Других зависимостей нет. Вывод PCAP, GSMTAP и hex dump использует только стандартную библиотеку Python.
Установка
Есть два способа получить анализатор: установить артефакт релиза (без истории git) или склонировать репозиторий для разработки. В обоих случаях в комплекте одна и та же PWA.
Из релиза (без истории git)
Всё находится на странице последнего релиза.
Wheel (PWA внутри пакета):
pip install ./simtrace_analyser-2.7.13-py3-none-any.whl
# затем запуск (интерфейс отдаётся на http://127.0.0.1:8081/):
simtrace-analyser-server --capture gsmtap
Если системный Python управляется извне (PEP 668 — обычное дело в Arch и Fedora), сначала создайте виртуальное окружение: python3 -m venv .venv && . .venv/bin/activate.
pip также может скачать wheel прямо со страницы релиза (подставьте версию, указанную там):
pip install https://github.com/anttro/simtrace-analyser/releases/download/v2.7.13/simtrace_analyser-2.7.13-py3-none-any.whl
С GitHub CLI можно скачать wheel последнего релиза, не зная версии:
gh release download --pattern '*.whl'
pip install ./simtrace_analyser-*.whl
Архив исходников — ассеты Source code (zip / tar.gz) содержат полное дерево без истории git: распакуйте, перейдите в каталог и используйте скрипты запуска ниже (./start.sh в Linux/macOS, start.bat в Windows).
Zip (для Windows, без установки) — simtrace-analyser-2.7.13.zip содержит только рабочее дерево (пакеты, PWA, скрипты запуска, документацию; без тестов и git): скачайте, распакуйте в любое место и запустите start.bat (Windows) или ./start.sh (Linux/macOS). Python 3 должен быть в PATH; pip install pyusb нужен только для прямого захвата с SIMtrace2.
Из клона репозитория (для разработки)
git clone https://github.com/anttro/simtrace-analyser.git
cd simtrace-analyser
./start.sh # Linux/macOS; в Windows: start.bat
Скрипты запуска добавляют каталог в PYTHONPATH и запускают python -m simtrace_analyser, поэтому для просмотра и захвата GSMTAP установка не нужна; они принимают параметры сервера (./start.sh --capture direct --port 8080). Для прямого захвата с оборудования нужен PyUSB (pip install pyusb).
Чтобы получить консольные команды (simtrace-analyser-server, simtrace2-pysniff), установите пакет:
pip install -e .
simtrace-analyser-server --capture gsmtap
В Windows скрипты .bat вызывают команду python, поэтому Python 3 должен быть в PATH (проверьте python --version); для прямого захвата по USB дополнительно нужна замена драйвера, описанная в разделе Доступ к USB-устройству.
деле Доступ к USB-устройству.
Запуск
# Слушать GSMTAP от simtrace2-pysniff (или оригинального simtrace2-sniff):
simtrace-analyser-server --capture gsmtap
# Захват напрямую с оборудования SIMtrace2 (внешний инструмент не нужен):
simtrace-analyser-server --capture direct
# Просмотр/анализ существующих записей без бэкенда захвата:
simtrace-analyser-server --capture disabled
Параметры сервера:
--host ADDR адрес привязки HTTP (по умолчанию: 127.0.0.1)
--port PORT порт HTTP-сервера (по умолчанию: 8081)
--db FILE путь к базе SQLite (по умолчанию: ~/.simtrace-analyser/sessions.db)
--capture MODE gsmtap | direct | disabled (по умолчанию: gsmtap)
--gsmtap-port PORT UDP-порт листенера GSMTAP (по умолчанию: 4729)
--gsmtap-bind ADDR UDP-адрес привязки листенера GSMTAP (по умолчанию: 127.0.0.1;
используйте 0.0.0.0, чтобы принимать из Docker-сети или с другого хоста)
--web-dir PATH каталог статических файлов PWA (по умолчанию: PWA внутри
установленного пакета или <repo>/frontend при запуске из исходников)
Затем откройте http://127.0.0.1:8081/ в браузере — PWA отдаётся сервером, поэтому UI и API используют один origin, и настройка CORS/Private-Network-Access не требуется. Используйте --web-dir PATH, чтобы отдавать другой каталог PWA (по умолчанию: PWA внутри пакета или <repo>/frontend при запуске из исходников).