[2026-10-08] eagle: family/how-to/htpc-bazzite-ecosystem.md family/how-to/htpc-system.md family/how-to/htpc-webos-luna.md family/how-to/magic4pc-webos.md personal/projects/virfield.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-08 11:43:53 +06:00
1 parent a44dcf6bde
commit 49589b9caa
5 files changed
+33 -20

No files matched your search

+1 -1
View File
@@ -20,7 +20,7 @@ Synthesis across [[htpc-bazzite-proton]], [[tech/htpc-steam-emulators]],
[[tech/htpc-kodi-layout]], and [[tech/htpc-magic4pc]].
Intel i7-6800K / RX 570 / Bazzite 44 at `192.168.1.86`. Connected to
LG webOS TV (`192.168.1.75`) via HDMI.
LG webOS TV (`192.168.1.70`, Ethernet) via HDMI.
## Mode Map
+2 -2
View File
@@ -6,7 +6,7 @@
- RAM: 32 GB
- GPU: AMD Radeon RX 570
- Подключение к TV: HDMI
- TV: LG webOS (192.168.1.75)
- TV: LG webOS (Ethernet `192.168.1.70`)
- HTPC IP: 192.168.1.86
## Контроллеры
@@ -542,4 +542,4 @@ systemd-inhibit --what=sleep:idle --who=rsync-storage-backup --why="Data transfe
```sudo
bazzite ALL=(ALL) NOPASSWD: /usr/bin/systemctl
bazzite ALL=(ALL) NOPASSWD: /usr/bin/rsync
```
```
+8 -8
View File
@@ -1,41 +1,41 @@
# WebOS TV — luna-send via SSH
TV IP: `192.168.1.75`, user: `root`
TV IP: `192.168.1.70` (Ethernet), user: `root`
## Проблема
`luna-send` пишет вывод в tty, не в stdout. Через SSH без PTY — пусто.
## Решение — через `script`
```bash
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.70 "script -q -c \"luna-send -n 1 -f luna://...\" /tmp/o.txt; cat /tmp/o.txt"
```
## Методы
### Список запущенных приложений
```bash
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.70 "script -q -c \"luna-send -n 1 -f luna://com.webos.service.applicationmanager/running '{}'\" /tmp/o.txt; cat /tmp/o.txt"
```
### Закрыть приложение
```bash
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"
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)
```bash
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"
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
```bash
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"
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"
```
### Запустить приложение
```bash
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"
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"
```
## Не работает
+15 -9
View File
@@ -12,6 +12,12 @@
- `inputBackKey()` → Esc в gamescope, x1 в KDE
- Репо: https://github.com/mallexxx/magic4pc_altclient (ветка `main`)
## Текущая сеть (проверено 2026-10-08)
- TV по Ethernet: `192.168.1.70` (MAC `ac:5a:f0:25:11:c6`); старый Wi-Fi IP `.75` не использовать.
- HTPC-клиент по умолчанию подключается к `192.168.1.70:42831`; после обновления клиент запущен, ошибок повторного подключения нет.
- WoL MAC HTPC: `B0:6E:BF:60:6D:64`. Проверить/обновить сохранённый WoL MAC в TV-приложении: сейчас там `60:6e:bf:60:6d:64` (не совпадает).
## Исходники
| Компонент | Путь |
@@ -69,7 +75,7 @@ NODE_OPTIONS=--openssl-legacy-provider npm run build
> ⚠️ Оба аргумента `dist/ service/` обязательны — иначе сервис не попадёт в IPK.
> ⚠️ `npm run package` = `ares-package -n` (unsigned) — **не использовать**, TV отклоняет.
## Деплой на TV (192.168.1.75)
## Деплой на TV (192.168.1.70)
### Правильный способ — deploy.sh
@@ -92,14 +98,14 @@ cd ~/Developer/magic4pc/webos
cd ~/Developer/magic4pc/webos
NODE_OPTIONS=--openssl-legacy-provider npm run build
/Users/admin/webOS_TV_SDK/CLI/bin/ares-package dist/ service/ --outdir .
scp me.wouterdek.magic4pc_1.1.0_all.ipk root@192.168.1.75:/tmp/magic4pc.ipk
scp me.wouterdek.magic4pc_1.1.0_all.ipk root@192.168.1.70:/tmp/magic4pc.ipk
~/Automation/tv-luna-send.sh -n 1 -f luna://com.webos.service.applicationmanager/closeByAppId '{"id":"me.wouterdek.magic4pc"}' || true
~/Automation/tv-luna-send.sh -n 1 -f luna://com.webos.appInstallService/dev/remove '{"id":"me.wouterdek.magic4pc"}' || true
sleep 2
# install — через прямой script (luna-send -i не работает через враппер)
ssh root@192.168.1.75 "script -q -c \"luna-send -i -f luna://com.webos.appInstallService/dev/install '{\\\"id\\\":\\\"me.wouterdek.magic4pc\\\",\\\"ipkUrl\\\":\\\"/tmp/magic4pc.ipk\\\",\\\"subscribe\\\":true}'\" /tmp/install.txt &
ssh root@192.168.1.70 "script -q -c \"luna-send -i -f luna://com.webos.appInstallService/dev/install '{\\\"id\\\":\\\"me.wouterdek.magic4pc\\\",\\\"ipkUrl\\\":\\\"/tmp/magic4pc.ipk\\\",\\\"subscribe\\\":true}'\" /tmp/install.txt &
for i in \$(seq 1 30); do sleep 1; grep -q '\"state\":\"installed\"' /tmp/install.txt 2>/dev/null && break; done
kill %1 2>/dev/null; grep -v '^Script ' /tmp/install.txt; rm -f /tmp/install.txt"
@@ -164,8 +170,8 @@ Magic4pc автоматически запускает выбранный app п
```bash
# Деплой
scp tv-scripts/init.d-magic4pc.sh root@192.168.1.75:/var/lib/webosbrew/init.d/magic4pc
ssh root@192.168.1.75 "chmod +x /var/lib/webosbrew/init.d/magic4pc"
scp tv-scripts/init.d-magic4pc.sh root@192.168.1.70:/var/lib/webosbrew/init.d/magic4pc
ssh root@192.168.1.70 "chmod +x /var/lib/webosbrew/init.d/magic4pc"
# Применяется после ребута TV
```
@@ -175,14 +181,14 @@ ssh root@192.168.1.75 "chmod +x /var/lib/webosbrew/init.d/magic4pc"
```bash
# Лог UI (appendLogPersist пишет сюда)
ssh root@192.168.1.75 "tail -30 /tmp/m4p_debug.log"
ssh root@192.168.1.70 "tail -30 /tmp/m4p_debug.log"
# Run-state
ssh root@192.168.1.75 "cat /tmp/magic4pc-run-state"
ssh root@192.168.1.70 "cat /tmp/magic4pc-run-state"
# Settings / last-app
ssh root@192.168.1.75 "cat $PERSISTENT_DIR/magic4pc-settings"
ssh root@192.168.1.75 "cat $PERSISTENT_DIR/magic4pc-last-app"
ssh root@192.168.1.70 "cat $PERSISTENT_DIR/magic4pc-settings"
ssh root@192.168.1.70 "cat $PERSISTENT_DIR/magic4pc-last-app"
```
> ⚠️ `appendLog()` пишет **только в UI**. В файл попадает только `appendLogPersist()`. При отладке использовать `appendLogPersist`.
+7
View File
@@ -14,6 +14,13 @@ tags:
**Текущий статус: Stage 1 (Tart/Orchard migration) в работе; продолжать в `/Users/admin/Developer/virfield-v3`, branch `codex/virfield-v3-stage1`.** Это актуальная запись состояния; ниже сохранена история v2 от 2026-10-03.
## Обновление 2026-10-08 — MBP Big Sur: несколько host keys на одну ноду
- Каждый том MBP имеет свой SSH host key → `runtime.nodes[].host_keys` (доп. идентичности); dialer принимает любой из них, lease отдаёт фактически предъявленный. Коммит `a37bddf`, задеплоено.
- Big Sur 11.7.9: ключ пользователя и management key добавлены в authorized_keys тома Big Sur; ключ Big Sur в `~/.ssh/known_hosts` (бэкап `known_hosts.bak-*`) и в config. Приёмка `mbp2014-big-sur` 5/5.
- Ранее сегодня: Finder/ASIF — спек-кэш `tart get` + листинг каталогов вместо `tart list` (`96dfae3`, `0283901`); Clone будит спящую ноду (`ad78b8d`).
- Дальше: Catalina/Ventura — enroll при загрузке (ключ пользователя + management.pub, `ssh-keyscan` → `host_keys`); HTPC VT-x/libvirtd → R2; повтор теста пробуждения арендой.
## Обновление 2026-10-08 11:20 — Remote nodes R1 работает вживую
- Спека `docs/superpowers/specs/2026-10-08-remote-nodes-r1-design.md`. SSH-first (агент позже), без sudo на нодах, «аренда того, что загружено». HEAD `9f2dabd`.