Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 4.56 KB

development.md

File metadata and controls

62 lines (50 loc) · 4.56 KB

Разработка iman

Следуйте AGENTS.md и IDLE.md.

Features

  • rgb565 — включена по умолчанию; DRM-буферы RGB565 вместо XRGB8888.
  • pc — собственное окно менеджера на X11.
  • drm — владение дисплеем через DRM/KMS.
  • diagnostics — все пассивные сборщики и интерактивный тест контроллеров.
  • io-monitor — наблюдение за записью на файловую систему комплекта.
  • diag-perf — CPU/потоки и доступные частоты во время игры.
  • diag-memory и diag-klog — память и ограниченный журнал ядра.
  • diag-display — показатели вывода IGUI и самого менеджера.
  • diag-input — показатели ввода и интерактивный тест контроллеров.
  • diag-uart — разовый пассивный снимок учётного состояния UART0 в Linux.
  • diag-memdump — дамп памяти при выходе, отдельно от обычной диагностики.

Каждый сборщик подключает общий diag-cycle для сегментов и экспорта. Пассивные сборщики включаются автоматически составом сборки, не параметрами запуска. Без диагностических features отчёты не собираются и не экспортируются. Активных UART/GPIO-проб в iman нет. Сегменты, команды и ограничения.

Исходники и инструменты

  • runtime — проверенные файлы, запуск ELF и RAM-ресурсы.
  • session — жизненный цикл и обработка IPC-команд.
  • emulation — настройки RetroArch, BIOS, переназначение управления и параметры ядер.
  • diagnostics — сборщики и ограниченные отчёты.
  • display — DRM/PC, владение дисплеем и заставки.
  • input_test — тест контроллеров и кандидаты профилей.

Статический предпросмотр заставки — Cargo example splash_preview с feature drm; выдаёт PPM в stdout без обращения к устройствам. Оконный предпросмотр использует обычный менеджер с feature pc.

Проверки

Из каталога iman:

cargo test --locked -- --test-threads=1
cargo test --locked --all-features -- --test-threads=1
cargo check --locked --no-default-features --all-targets

Для синтетических дочерних программ нужен python3.12 в PATH. Тесты проверяют версию и находят абсолютный путь интерпретатора; привязки к /usr/bin нет. Тестовые конфигурации и профиль контроллера синтетические и находятся в самом iman. Проверки отсчётов используют подменяемые монотонные часы; процессы и локальный IPC проверяются в изолированных временных каталогах. Тесты не требуют реальной SD, NOR, DRM или геймпадов и не подтверждают работу на ARM-устройстве. Для аппаратного запуска нужна отдельно собранная совместимая цепочка компонентов.

GitHub Actions задаёт те же host-проверки на Ubuntu 24.04 с Rust 1.85.0/stable и Python 3.12. Отдельная задача проверяет компиляцию ARMv7 musl с drm,rgb565,diagnostics,diag-memdump, без запуска тестов на устройстве. Workflow реагирует на push, pull request и ручной запуск; автоматической публикации нет.