Files
obsidian-vault/family/how-to/htpc-webos-luna.md
T

4.9 KiB
Raw Blame History

WebOS TV — luna-send via SSH

TV IP: 192.168.1.75, user: root

Проблема

luna-send пишет вывод в tty, не в stdout. Через SSH без PTY — пусто.

Решение — через script

ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://...\" /tmp/o.txt; cat /tmp/o.txt"

Методы

Список запущенных приложений

ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://com.webos.service.applicationmanager/running '{}'\" /tmp/o.txt; cat /tmp/o.txt"

Закрыть приложение

ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://com.webos.service.applicationmanager/closeByAppId '{\"id\":\"APP_ID\"}'\" /tmp/o.txt; cat /tmp/o.txt"

Удалить приложение (dev)

ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://com.webos.appInstallService/dev/remove '{\"id\":\"APP_ID\"}'\" /tmp/o.txt; cat /tmp/o.txt"

Установить ipk

scp app.ipk root@192.168.1.75:/tmp/
ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://com.webos.appInstallService/dev/install '{\"id\":\"APP_ID\",\"ipkUrl\":\"/tmp/app.ipk\",\"subscribe\":true}'\" /tmp/o.txt; cat /tmp/o.txt"

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

ssh root@192.168.1.75 "script -q -c \"luna-send -n 1 -f luna://com.webos.applicationManager/launch '{\"id\":\"APP_ID\"}'\" /tmp/o.txt; cat /tmp/o.txt"

Не работает

  • ares-install/ares-launch — требует dev mode (порт 9922)
  • listRunningApps — нет метода, правильно: running
  • applicationManager/remove — нет, правильно: appInstallService/dev/remove
  • ⚠️ luna-send -a '{"appId":...}' — на прошивке ТВ 5.4.2 флаг -a не парсится, отдаёт хелп-экран. AppId только первым аргументом.

Установка IPK — рабочий рецепт (проверено 2026-09-22)

Установлено приложение Lampa (com.lampac.tv) на ТВ 192.168.1.70. Полный проход:

# 1. Скачать ipk прямо на ТВ (без scp с Mac)
ssh root@192.168.1.70 'curl -sS --max-time 60 -o /tmp/app.ipk "http://192.168.1.14:9118/lg.ipk"'
# → 6896874 байт; формат ar (!<arch>), НЕ tar/gzip

# 2. Установить — обёртка script ОБЯЗАТЕЛЬНА
ssh root@192.168.1.70 'rm -f /tmp/i.txt; script -q -c \
  "luna-send -n 1 -f luna://com.webos.appInstallService/dev/install \
   {\"id\":\"org.lampa.tv\",\"ipkUrl\":\"/tmp/app.ipk\",\"subscribe\":true}" /tmp/i.txt; cat /tmp/i.txt'
# → {"subscribed":true,"returnValue":true}

# 3. Проверить — appId из appinfo.json, НЕ из запроса
ssh root@192.168.1.70 'ls /media/developer/apps/usr/palm/applications/'
# → com.lampac.tv

# 4. Запустить
ssh root@192.168.1.70 'rm -f /tmp/l.txt; script -q -c \
  "luna-send -n 1 -f luna://com.webos.applicationManager/launch {\"id\":\"com.lampac.tv\"}" /tmp/l.txt'

🔴 Поле "id" в dev/install — произвольная метка. Реальный appId берётся из appinfo.json внутри ipk. В нашем случае запрос ушёл с org.lampa.tv, а установилось com.lampac.tv.

Проверка, что приложение реально открылось (а не просто «команда вернула true»):

ssh root@192.168.1.70 'rm -f /tmp/f.txt; script -q -c \
  "luna-send -n 1 -f luna://com.webos.applicationManager/getForegroundAppInfo {}" /tmp/f.txt; grep appId /tmp/f.txt'
# → "appId": "com.lampac.tv"

Альтернативный путь, который НЕ сработал

org.webosbrew.hbchannel.service/install — метод в образе есть (service.js, register("install",...)), но luna-send через SSH его не дёрнул. Используй com.webos.appInstallService/dev/install.

Текущий ТВ (2026-09-22)

Параметр Значение
IP 192.168.1.70 (проводной eth0); старый .75 больше не отвечает
SSH root@192.168.1.70, ключ ~/.ssh/konka_webos, StrictHostKeyChecking no
Порты 22 SSH, 3000/3001 Luna
webOS 5.4.2, ядро 4.4.84, image starfish-dvb-secured, build 2602
Кастомные приложения org.webosbrew.hbchannel 0.7.2, org.webosbrew.inputhook, me.wouterdek.magic4pc, com.lampac.tv

⚠️ SSH печатает post-quantum key exchange warning — это норма, не ошибка.

Связанные заметки