7.8 KiB
Executable File
WebOS TV — luna-send via SSH
TV IP: 192.168.1.70 (Ethernet), user: root
Проблема
luna-send пишет вывод в tty, не в stdout. Через SSH без PTY — пусто.
Решение — через script
ssh root@192.168.1.70 "script -q -c \"luna-send -n 1 -f luna://...\" /tmp/o.txt; cat /tmp/o.txt"
Методы
Список запущенных приложений
ssh root@192.168.1.70 "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.70 "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.70 "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.70:/tmp/
ssh root@192.168.1.70 "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.70 "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— нет метода, правильно:runningapplicationManager/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/id_rsa, StrictHostKeyChecking no |
| Порты | 22 SSH, 3000/3001 Luna |
| webOS | 5.4.2, ядро 4.4.84, image starfish-dvb-secured, build 2602 |
| eth0 link | 100 Mbit/s full duplex — ЖЕЛЕЗНЫЙ ПОТОЛОК ТВ (проверено 2026-09-22) |
| Кастомные приложения | org.webosbrew.hbchannel 0.7.2, org.webosbrew.inputhook, me.wouterdek.magic4pc, com.lampac.tv |
⚠️ SSH печатает post-quantum key exchange warning — это норма, не ошибка.
🔴 Ключ ~/.ssh/konka_webos ОТКЛОНЁН (проверено 2026-09-22). Permission denied (publickey,password)
на всех вариантах (konka_webos, konka_webos.bak, 988d8c6ece, webos_emul).
Рабочий ключ — ~/.ssh/id_rsa. В ~/.ssh/config при этом есть хвост Host 192.168.1.76 с
IdentityFile ~/.ssh/konka_webos — этот хост не ТВ (ТВ = .70), не путать.
Рабочая команда:
ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i ~/.ssh/id_rsa \
-o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa \
root@192.168.1.70 'cat /sys/class/net/eth0/speed; cat /sys/class/net/eth0/duplex'
# → 100
# full
⚠️ Только ключ id_rsa. Опция -o PasswordAuthentication=no + -o BatchMode=yes рвёт соединение
раньше, чем успевает пройти pubkey-аутентификация на этой прошивке — не использовать как «проверку»,
что ключа нет.
Скорость eth-порта ТВ — потолок железа
eth0: 100 Mbit/s, full duplex
🔴 Это предел сетевой карты телевизора, а не кабеля. Проверено с заведомо гигабитным
кабелем — ТВ всё равно показывает 100, больше не даёт. Не диагностировать это как
«битый кабель», не менять патч-корд, не искать гигабит: модель физически не умеет.
Порт роутера со стороны ТВ при этом может показывать 1000FD — рассинхрон нормален
и означает, что ограничение на стороне ТВ.
Проверка (только ключ id_rsa):
ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i ~/.ssh/id_rsa \
-o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa \
root@192.168.1.70 'cat /sys/class/net/eth0/speed; cat /sys/class/net/eth0/duplex'
Другой телевизор: Новосибирск
Эта заметка описывает ТВ 192.168.1.70 / webOS 5.4.2. Konka Q85 85″ в Новосибирске — отдельное устройство: 192.168.2.124, webOS 7.5.6. Его root, отключённые службы, результаты проверки и порядок отката зафиксированы в personal/tech/konka-q85-novosibirsk (2026-10-30). Не переносить между ними SSH-параметры и особенности luna-send без проверки.
Связанные заметки
- family/how-to/tv-luna-send — враппер
~/Automation/tv-luna-send.sh - personal/tech/lampac-deployment — что именно ставили на ТВ и зачем
- family/how-to/kraken-network — сеть Кра́кена и ТВ