Skip to content

Releases

KUYASE 1.4.0

Choose a tag to compare

@vypivshiy vypivshiy released this 04 Nov 20:33

[+] — добавлено
[*] — изменено / исправлено
[-] — удалено

  • [+] Поддержка Яндекс Станции Мини 3 Про (pickle): контурное кольцо 16 RGB LED (/dev/fb0), центральный круговой логотип oknix 6 RGB LED (/dev/fb1), эмуляция подключаемого аккумуляторного модуля pogo-pin (/sys/devices/platform/ya_pd/*, 18 Вт PD), усилителя ACM8625S (2-002c), датчика AW933xx (2-0034) и карточка периферии в GUI.
  • [+] Интерактивный редактор верхней полноцветной световой панели 11×8 (88 RGBW LED, /dev/fb0 gowin_led_device + station2:*:ring0..87) для Яндекс Станции 2 (station2) с попиксельным рисованием, палитрой кисти, регулировкой ШИМ (0..255), процедурными фигурами («Волна», «Лайк», «Радуга») и запуском фоновых шоу panel/*.led.
  • [+] Поддержка директивы frame:<hex_0> ... <hex_N> в HostCommand::SetLedPattern (qemu-hw-bridge) для прямой покадровой передачи произвольных RGB-буферов в световое кольцо или матричную панель.
  • [+] Эмуляция USB-C PD контроллера HUSB238 (/sys/class/power_supply/ya_pd/*), цифровых усилителей SY6045S / TAS5825M (1-002a, /tmp/amp_settings_file) и карточка управления периферией station2 в GUI.
  • [+] Аппаратно-точные топологии корпусов в Виртуальном двойнике: CirclePuck (4 ревизии верхней крышки для yandexmini, yandexmini2*, bergamot/pickle, yandexmicro/plum*), SquircleCube (station2, cucumber), RectLightPanel (orion), CylinderPortable (mango с 4-LED шкалой АКБ AW9110 /dev/fb0 и 3-LED логотипом oknix AW21012 /dev/fb1) и SaturnSphere (saturn).
  • [+] Информационная строка-инспектор под сценой корпуса и лицевой панелью с отображением координат, аппаратного индекса светодиода/сегмента, пути sysfs / /dev/fb* и цвета RGB/#HEX при наведении курсора.
  • [+] Профили сегментных часов на 32, 36 и 45 сегментов по ревизиям плат (включая диагональные сегменты, minus, deg и центральный разделитель DH/DL/DM), пресет глаз Алисы (👀 Глаза) и рендеринг температуры (-5°, +24°).
  • [+] Автоматическое сканирование штатных анимаций /system/vendor/quasar/ledpatterns/*.led напрямую из образа .ext4 с классификацией директив (gradient, smooth, rotate), цветовой маркировкой и отдельным выпадающим списком «Из прошивки (.led)» в GUI.
  • [*] Элементы управления и индикация лазерного дальномера ToF (VL53L0X) изолированы исключительно для профиля yandexmini, где датчик присутствует физически.
  • [*] Явная отправка паттерна HostCommand::SetLedPattern в qemu-hw-bridge немедленно сбрасывает активный таймер оверлея громкости (volume_overlay_until_ms).
  • [*] Выбор между быстрыми пресетами моста, паттернами из прошивки (.led) и пользовательским кадром frame: в GUI синхронизирован со взаимным сбросом неактивного списка.
  • [-] Неинтерактивный дубликат нижней полосы кнопок убран из увеличенной проекции световой панели 11×8 на профиле station2.

KUYASE 1.3.0

Choose a tag to compare

@vypivshiy vypivshiy released this 04 Nov 12:33

[+] — добавлено, [*] — изменено/исправлено, [-] — удалено

[+] Поддержка двух поколений бинарного протокола QuasarMessage (LegacyDirect для прошивок <= 0.367 и Envelope252 с LITE_RUNTIME-конвертом payload = 252, type = 253 для прошивок >= 0.368) с автоопределением формата
[+] Поддержка интерактивной консоли /system/vendor/quasar/q cli с эмуляцией Remoting (PlaybackControlCapability, DeviceStateCapability, AliceCapability) и IOHub (EndpointStorage_, FilePlayerCapability) на портах :9875, :9850 и :9903
[+] Stateful-мок glagold на внутреннем IPC-порту :9899 (для q glagol-connections и metrics_collector) и внешнем HTTP/WebSocket API :1961 (GET /state, POST /command, управление play/pause/stop/prev/next/setVolume/sendText)
[+] Полноценный режим Full Mode (--mode full) для запуска оригинального монолита maind --platformd: единый /var/run -> /run, права 04750 (0:85) на dbus-daemon-launch-helper, автозапуск dbus-daemon --system и встроенный D-Bus стаб org.bluez + org.bluealsa
[+] Полная поддержка всех команд оригинального скрипта /system/vendor/quasar/q без его модификации (version, device-id, full-info, wifi-info, getprop, glagol-connections, start, stop, restart, backend-dev, backend-prod)
[+] Стабы окружения вендора: Linkplay fnvram (Device ID: EMU0001 для yandexmini), SDIO Wi-Fi ID (0x02d0/0xa9bf), дефолтный pcba_ids, автоинжекция devConfig (devFlag) в quasar.cfg, виртуальный netlink-интерфейс wlan0 и единый симлинк maind.log

[*] Устранено предупреждение libasound.so.2: no version information available при вызове вендорских утилит на yandexmini, yandexmicro и station2 (автоматический патчинг секции DT_VERNEED в tmpfs и LD_PRELOAD)
[*] Подстановка команд $(/system/vendor/quasar/q start|restart) больше не зависает и не выводит mkfifo: /tmp/loop_capture_pcm: File exists (закрытие унаследованных FD и очистка FIFO при SIGTERM в стабе quasar_launcher2)
[*] Инициализация гостевого окружения (D-Bus, fnvram, wlan0 и org.bluez.service через mount --bind) перенесена в qemu-hw-bridge с сохранением обратной совместимости со старыми образами .ext4 без пересборки
[*] На wlan0 сохраняется аппаратный MAC-адрес 52:4b:59:* при работе с --lan-tap, а при отключении WebSocket-клиента Glagol :1961 статус пира сбрасывается в active: false

[-] Каталог examples/ (все актуальные сценарии автоматизации находятся в tests_e2e/)
[-] Дублирующая shell-инициализация D-Bus, fnvram и сетевых заглушек в guest-init/equasar-qemu-init.sh

KUYASE v1.2.0

Choose a tag to compare

@vypivshiy vypivshiy released this 03 Nov 15:59
  • Профиль mango (Яндекс Станция Стрит, YNDX-00065): проверена сборка и эмуляция на дампе реального устройства (32-bit armhf, amlogic,a1 / yandex,mango). Эмулируются 4-LED индикатор заряда AW9110 (/dev/fb0 + mango:*:ring1..4, паттерны ledpatterns/battery/*.led), 3-LED RGBW логотип oknix AW21012 (/dev/fb1 + mango:*:logo0..2, паттерны ledpatterns/oknix/*.led), аудиоусилитель ACM8625S (2-002c, пресеты mango-acm8625.cfg и mango-acm8625-outside.cfg), кулонометр АКБ CW2217 (/sys/devices/virtual/cw2217_cls/cw2217_coulomb/*), контроллер зарядки USB-C PD IP2366 (/sys/devices/virtual/ip2366_cls/ip2366_charger/*) и интерфейс /sys/class/power_supply/battery/* (4b4a14f, 4343f2c, a63a3a4, 6d1e1e2).
  • Побайтовый терминал VT100/ANSI на ttyAMA0 (serial_vt100.rs): консоль ядра и интерактивный /bin/sh -i переведены на потоковый парсер SerialScreenBuffer без буферизации по \n, с поддержкой escape-последовательностей CSI K/J/H/D/C/G/P/@, автоответом на запрос позиции курсора DSR (\x1b[6n для живого Tab-автодополнения BusyBox ash), выравниванием чанков UART по границам символов UTF-8 и доставкой сигналов Ctrl+C (0x03 / SIGINT) и Ctrl+D (0x04 / VEOF) (caea33f, 5a4a907, 2aa841a).
  • Двусторонняя синхронизация громкости и голосовой транспорт (Luna / AirPlay): распознавание голосовых команд громкости («громкость 0..10») и медиа-транспорта («пауза», «продолжи», «следующий трек», «предыдущий трек») с маршрутизацией в приватную шину D-Bus /run/station-airplay/private-bus (org.gnome.ShairportSync.RemoteControl), синхронизация шкалы last_vendor_volume (0..20 <-> 0..10) с HTTP API рантайма luna (:8099/api/volume/set) и двухфазная публикация AliceState (LISTENING -> recognizedPhrase) на :9875 (#4, #5, #6, #7, fda2626, d47a9ee, 7d15bdf, спасибо @ryysel).
  • Сквозной контур E2E-тестирования (tests_e2e/): автоматическая проверка оригинальных установщиков nyakokitsu/yam (install.sh / install.ps1), рантайма nyakokitsu/luna (install.sh / install.ps1 + HTTP API :8099) и пакета ryysel/Station-airplay (.yampkg) поверх kuyase run --headless --board <board> --snapshot --exec (7d15bdf, 112d58c, c8b3e94).

Изменено

  • Единый каталог плат BOARD_CATALOG и декомпозиция workspace: описания всех профилей плат и рендерер 7-сегментных часов / матрицы 21×12 объединены в крейте protocol (boards.rs, display.rs), периферия hw-bridge разделена на 4 доменных трейта в hw-bridge/src/devices/{mod,led_ring,aux_light,front_display,audio_hw}.rs, а GUI и распаковщики образов в kuyase разбиты на модули gui/{canvas,faceplates,display_geom,terminal,signal_log,docks/*}, rootfs_tree.rs и archive_formats/{ubifs,squashfs}.rs (a34df1f, 161b4bd, 7816b93, 4061d8a, 2aa841a, 35fc672).
  • Аудиозахват snd-aloop и ресурсы QEMU: задержка перезапуска чтения из hw:0,1,0 сокращена с 500 мс до 20 мс, буфер dmix увеличен до 680 мс (устраняет периодические выпадения звука EPIPE при стриминге AirPlay), добавлено автоопределение числа потоков vCPU (KUYASE_SMP, KUYASE_MEM) (#4, #5, c0258a9, fda2626, спасибо @ryysel).
  • Геометрия фреймбуферов светового кольца (24 bpp): виртуальные фреймбуферы bergamot (/dev/fb0, 6×1), station2 (/dev/fb0, 89×1) и orion (/dev/fb2, 36×1) переведены на упакованный формат RGB24 (24 bpp) для побайтовой совместимости с драйверами подсветки luna (#4, #6, 25b9e9d, a340079, a3b802a, спасибо @ryysel).

Исправлено

  • Игнорирование SIGINT/SIGQUIT в фоновых шеллах ttyAMA0 и adbd: добавлен принудительный сброс маски сигналов (sigprocmask) и диспозиции SIG_DFL в pre_exec, устраняющий наследование S_HARD_IGN от неинтерактивного init и восстанавливающий прерывание команд по Ctrl+C (5a4a907, 2db7db3).
  • Приоритет SoC/DTB при автоопределении station2 и cucumber: детект платы теперь проверяет маркеры /proc/device-tree/compatible (amlogic,axg vs amlogic,a5) и DSP-профили *-acm8625.cfg раньше поля deviceType: yandexmidi в quasar.cfg, а также сохраняет точные имена образов yandexmini2nc и plumnc (cb2ae09, 3d91056, 7d15bdf, 7816b93).
  • Очистка сторонних SSH init-скриптов при подготовке дампа: в sanitize_tree и scripts/sanitize-rootfs.* добавлено удаление кастомных скриптов S99zalicebridge-ssh (4b4a14f).

Full Changelog: 1.1.0...1.2.0

add bergamot (Station mini 3)

Choose a tag to compare

@vypivshiy vypivshiy released this 01 Nov 03:08
  • Профиль bergamot (Яндекс Станция Мини 3, YNDX-00027): проверена сборка и эмуляция на дампе реального устройства (32-bit armhf, Buildroot 2020.02.1, 4794652521). Эмулируются 6-LED панель (/dev/fb0 + bergamot:*:ring0..5, AW21018, паттерны ledpatterns/oknix/*.led), 32-сегментные часы AW21036 (bergamot:white:clock{A..G}{0..3}, clockDH, clockDL, clockDM, clockDEGREE, device/brightness_scale), I2C-усилитель ACM8625P (2-002c, bergamot-acm8625.cfg), датчик освещённости LTR-308ALS-01 (in_intensity_input) и контроллер питания USB-C PD husb238_pd (12 В) (8c98bda).
  • Профили plum, plumnc, station2, yandexmini2nc: добавлены и проверены на дампах профили Яндекс Станции Лайт 2 с часами (plum) и без часов (plumnc / ревизия prune), Яндекс Станции 2 (station2 / YNDX-00051, 88-LED панель /dev/fb0) и Станции Мини 2 без часов (yandexmini2nc / YNDX-00020) (#1, спасибо @ryysel).
  • Постоянный диск /data (--persist-data): подключение отдельного образа work/<board>-data.ext4 (256 МиБ) третьим virtio-blk диском (/dev/vdc) с автозапуском сервисов из /data/yam (etc/init.d/S99kuyase-yam) (#1, #3, 737da89, спасибо @ryysel).
  • Сетевой мост LAN TAP (--lan-tap <ifname> [--lan-mac <mac>]): проброс второго сетевого интерфейса в гостевую ОС как wlan0 с получением IP по DHCP в физической локальной сети (для AirPlay, mDNS и локальных сервисов) (#2, #3, 737da89, спасибо @ryysel).
  • Пакетный headless-раннер CLI: поддержка флагов kuyase run --headless --board <slug|all> --exec "<cmd>" --keep-alive для прогона shell-скриптов по всей линейке собранных образов work/*-system.ext4 (0b4e1cd) и демо-стенд examples/test_yam_lineup.py (d90cef6).

Изменено

  • Образ гостевого ядра: файл ядра переименован из Image в kuyase-kernel-arm64.img (обратная совместимость с kernel/Image сохранена) (bc7e066).
  • Окно «Образы и QEMU...» и терминал ttyAMA0: сборка .ext4 из дампа и снятие дампа по ADB переведены на пошаговый мастер, в терминал добавлено автодополнение путей по Tab и история команд (ff427d1).
  • Аудиоконфигурация гостя (/etc/asound.conf): добавлены устройства pcm.dmix_spk, pcm.dmix_speakers и pcm.multi_capture поверх snd-aloop для совместимости с AirPlay-ресивером и штатным audiod (#3, 61ac022, 8c98bda).

Исправлено

  • 0-индексированные сегменты часов на bergamot и plum: исправлена раскладка симлинков clock{A..G}{0..3} -> clock-{a..g}{1..4} в /sys/class/leds/, устраняющая наложение первого и второго разрядов часов (8c98bda).
  • Автоопределение bergamot и yandexmini2: разделён детект плат с общим скриптом /etc/init.d/S61leds_brightness по наличию /lib/firmware/bergamot-acm8625.cfg и распознаванию каталога mini3 в kuyase prepare (8c98bda).

Full Changelog: 1.0.0...1.1.0

1.0.0

Choose a tag to compare

@vypivshiy vypivshiy released this 01 Nov 00:08
  • kuyase-win64-portable.zip — портативная сборка для Windows x64 (kuyase.exe, гостевое ядро kuyase-kernel-arm64.img, демон qemu-hw-bridge, скрипты и документация)
  • kuyase-linux64-portable.tar.gz — портативная сборка для Linux x64 (kuyase, гостевое ядро kuyase-kernel-arm64.img, демон qemu-hw-bridge, скрипты и документация)
  • kuyase-kernel-arm64.img — пропатченное гостевое ядро Linux 6.6.60 (aarch64, CONFIG_COMPAT=y, i2c-stub, vfb, snd-aloop) отдельно для сборки из исходников