Trvale běžící *ELEC a ukončení Kodi - Verze k tisku +- XBMC-Kodi.cz (https://www.xbmc-kodi.cz) +-- Fórum: Obecná diskuse (https://www.xbmc-kodi.cz/forum-obecna-diskuse) +--- Fórum: Tipy, triky a návody (https://www.xbmc-kodi.cz/forum-tipy-triky-a-navody) +--- Téma: Trvale běžící *ELEC a ukončení Kodi (/prispevek-trvale-bezici-elec-a-ukonceni-kodi) Stran:
1
2
|
Trvale běžící *ELEC a ukončení Kodi - JiRo - 14.8.2022 Často potřebujeme, aby systém s Kodi postavený na *ELEC instalaci běžel trvale. Můžeme k tomu mít dva důvody:
Vypínání celého Kodi. Předesílám, že to, co tu popisuji, není nijak dokonalé. A také, že není určené pro úplné laiky. Zvolil jsem nástroje a prostředky, které mi to řešení umožnily navrhnout a dostat do funkční podoby za minimálních časových nákladů. V první řadě jsem vytvořil dva sh scripty. Prvním se Kodi (a TV) vypne, to je kodioff.sh, a druhým zase zapne, tedy kodion.sh. Zatímco vypnutí Kodi je celkem jasné a jednoduché, při zapnutí jsem musel počítat s tím, že vše ovládám jen jedním tlačítkem a proto musím respektovat kontext. Pro zapnutí je tedy nutný test, zda už Kodi neběží. Pokud běží, tak script skončí bez jakékoliv akce. Je to nutné také proto, že pokud Kodi vypínáme, trvá to řádově několik vteřin, než se aplikace skutečně ukončí. Pro interakci s Kodi používám v uvedených scriptech standardní *ELEC aplikaci kodi-send. Není to úplně ideální, ale funguje to, a to je důležité. Kodioff.sh Kód: #! /bin/sh Kodion.sh Kód: #! /bin/sh Jak scripty spouštět? Pro start obou scriptů používám tlačítko POWER na ovladači. Používám zásadne taková DO, která umožňují POWER tlačítko naučit libovolný IR povel. Spuštění scriptu kodioff.sh je celkem jednoduché, mapuji ho v Kodi. Například takto: Kód: <?xml version="1.0" encoding="UTF-8"?> Pro přemapování tlačítka v systému musíme jeho stisk zachytit. To se dosáhne vytvořením souboru mapování, např. keymaps.cfg. Ten pro naše účely může vypadat takto: Kód: begin Abychom zachycení stisku a definovanou akci provedli, musíme ještě soubor s mapováním zaregistrovat. Toho dosáhneme tím, že do soubru autoexec.sh vložíme řádky: Kód: killall irexec Se startem záznamu stisknuto POWER na DO, start Kodi, v 23 vteřině opět stisknuto tlačítko POWER, zahájeno ukončování Kodi. Záznam aplikace VNC Viewer na W10. Případné nejasnosti vysvětlím v diskusi. Nechci popis příliš nafukovat, přeci jen je to už dost speciální, takže se o to asi nebudou snažit úplní laici. Pro ostatní snad prostý výčet jednotlivých kroků a stručné ukázky postačí. RE: Trvale běžící *ELEC - jkmh - 14.8.2022 @JiRo: Výborný námět, určitě to vyzkouším. RE: Trvale běžící *ELEC - JiRo - 14.8.2022 Ono to tím, co je v uvedeno úvodu tématu, skončit nutně nemusí. V okamžiku, jakmile máme možnost jednoduše Kodi spouštět a ukončovat, nabízí se další možnosti. Napadla mě hned jedna. Vložit funkci zastavení Kodi do Power menu Kodi. Je to vlastně analogie funkce Ukončit, kterou mají jiné systémy než *ELEC, tedy systémy, které mají vlastní GUI. Tady se ale do GUI systému uživatel nedostane, prostě se mu Kodi vypne spolu s TV. Edituje se soubor DialogButtonMenu.xml, do kterého se přidá další item. V Estuary to může vypadat nějak takto? Kód: <item> <!--EASY+ --> RE: Trvale běžící *ELEC - jkmh - 14.8.2022 Pro ty, kteří používají skin Confluence jako já, bude ve stejném souboru kód trochu jiný: Kód: <control type="button" id="22"> Pokud byste měli problém, zkontrolujte si, že id="22" je ve vašem souboru jedinečné. Případně ho na jedinečné změňte. RE: Trvale běžící *ELEC - JiRo - 14.8.2022 Splash screen A ještě bych asi měl popsat, jak vypadá zobrazení splash screen. Používám jeden obrázek na všechno, momentálně tedy Kodi 19 - Matrix. Nahradil jsem splash screen *ELEC systémů, protože to uživatele mátlo. Teď tedy, ať si pustí Kodi na čemkoliv, uvidí stále stejnou obrazovku. Tzn., když sputím box s CoreELEC z vypnutého stavu, po úvodním logu výrobce se zobrazí uvedená stránka, a ta je nahrazena až Home stránkou Kodi. Všechny stránky, a u CoreELEC se postupně zobrazují tři, mají stejný obrázek. Já k nim přidávám ještě čtvrtou (při startu skinu) a pátou, před ukončením Kodi. Start skinu řeším úpravou definičního souboru Startup.xml, např. takto. Je tam navíc nastaveno zpožděné spuštění skinu o 5 s, které umožní náběh PVR ještě před spuštěním addons od widgetů a vyřeší se tím občasné potíže způsobené startem service částí některých addons: Kód: <?xml version="1.0" encoding="UTF-8"?> Ukončení Kodi jsem popsal výše, splash screen před ukončením zobrazuji přes uživatelsky definované okno id=1190: Kód: <?xml version="1.0" encoding="utf-8"?> RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 10.9.2022 Trochu mě štvalo, že když při spuštění Kodi nechám přehrát hodební motiv skinu (nyní tedy Matrix-u), objeví se v záhlaví Home stránky jméno přehrávaného souboru. V první kroku jsme to potlačil úpravou ve skinu, která v případě, že se přehrává soubor startup.mp3, jeho zobrazení zablokovala. Ale nelíbilo se mi to a protože jsem už dlouho chtěl mít v Kodi vlastní uisound, orientoval jsme se tímto směrem. Výsledkem je vlasní addon souborů uisound. Zatím jsme ho odvodil od už dlouhodobě používaného zvukového schématu titan.modern a vytvořil analogické schéma easy, tedy adddon resource.uisounds.easy. V něm jsme vyměnil stávající startup.wav (pro uisound musí být soubory wav, mp3 je tedy třba překonvertovat) za nový, který obsahuje jingle z Matrix-u, který se přehrává při startu Kodi. Přidal jsme také shutdown.wav, který obsahuje jiný jingle Matrix-u, který se naopak přehrává při ukončení Kodi. Upravil jsme příslušně i konfigurační sooubor uisound addon, kde jsem přidal přehrání při otevření okna Id 1190, které se zobrazuje při ukončení Kodi: Kód: <window> Při spuštění Kodi se tedy zobrazí tento obrázek: a naopak při ukončení tento: Analogicky k tomu se pak při spuštění a ukončení Kodi přehrávají dva různé jingly. jingles.zip (Velikost: 3,16 MB / Stažení: 2) Samozřejmě už mám připraveny jak obrázky, tak jingl (zatím jen jeden) pro Nexus. U těch jinglů je to trochu problém, codename Nexus odkazuje na několik východisek a zdrojů, takže je těžké vybrat ten, který je pro něj jednoznačně charakteristický. U Matrix s tímhle samozřejmě problém nebyl. Momentálně mám tedy zatím toto: jingle_nexus.zip (Velikost: 126,2 KB / Stažení: 1) RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 10.9.2022 *ELEC RMD Pozn. RMD je reminiscence na OS RSX pro počítače firmy Digital, se kterými jsem před více než 30 lety (tedy ještě před érou PC) začínal vážnou prací s počítači a řídicími systémy. Trvale běžící *ELEC mě inspiroval k napsání jednoduchého scriptu rmd.sh, který mi rychle zobrazí stav běžícího systému, ve kterém vidím jen mnou vybrané a zajímavé hodnoty. Kód: #! /bin/sh Spuštění a zobrazení řeším přes PuTTY, kde mám vytvořen profil, který script spustí s pomocí watch v okně přizpůsobeném jeho velikosti. Kód: watch -n 5 /storage/.config/script/system/rmd.sh Výsledek pak vypadá takto: RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 18.9.2022 *ELEC RMD a drobné vylepšení V předchozí verzi RMD.sh jsem chtěl indikovat počet existující nahrávání v Tvheadend, ale dopadlo to tak, že indikace probíhala následovně: 0 =není žádné, =1 běží alespoň jedno. Tak je tady oprava, po které se už zobrazuje počet aktuálně probíhajících nahrávání (3. řádek): Kód: #! /bin/sh To že RMD.sh lze spustit i na mobilu asi připomínat nemusím. Na Androidu používám free Putty SSH. Reklamy skoro neobtěžují, základní funkce jsou víceméně shodné s PuTTY, kterou používám na Windows. Včetně možnosti přímého spuštění scriptu po přihlášení. RE: Trvale běžící *ELEC a ukončení Kodi - meda - 18.9.2022 @JiRo: Se zpožděním mám ke kódu v prvním příspěvku dotaz. Pokud posílám do LE příkazy z PuttySSH, lze použít i příkaz systemctl start kodi ke spuštění. Ty používáš pro spuštění ve scriptu restart, je to zvoleno účelově? Je to v jiných systémech (Android, CoreElec) jinak než v LE? RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 18.9.2022 @meda Jo, pokud Kodi neběží, vede start i restart v konečném důsledku ke stejnému výsledku. Spuštění Kodi. Já ho používám proto, že kdyby náhodou Kodi běželo (on se někdy ten stop nemusí povést), tak to restart dostane do nějakého jasně definovaného stavu. V android nevím, spíše ale ne. Ten příkaz systemctl restart/stop/start je linuxový. CE a LE jsou v tomto úplně stejné. RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 09.10.2022 *ELEC RMD a další drobné vylepšení Nyní jsem ještě přidal žádanou informaci o celkovém počtu streamů (Tvheadend subscriptions). Výsledkem je tedy počet všech streamů, tedy jak právě přehrávaných, a to za každého klienta zvlášť, tak i nahrávaných. Kód: #! /bin/sh RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 03.1.2023 Hrátky s led Pro výše popsaná řešení trvale běžícího systému (CoreELEC) na HW Beelink GT King instalace, která kromě Kodi zajišťuje i funkce TVServeru pro celou domácnost jsem chtěl nějak uživatelsky využít led diody boxu Pozn. Ve skutečnosti rozvěcují tyto diody oči lebky, která je vyobrazené na horní straně box-u. Oči svítí jednu ze dvou barev. Červenou, která se rozsvěcí při zapnutí napájení a zelenou, jejíž rozvícení se dá definovat v nastavení CoreELEC. Já jim mám nastavenou jako reakci na přijetí IR povelu z DO. V mém případe IR povel vysílá pouze tlačítku POWER, což je přesně to, co potřebuji vědět. Tedy že jsem DO správně namířil a povel byl přijatý. Dlouho jsem se snažil zjistit, jak by se v CoreELEC dala led rozvěcet z prostředí pythonu, ale nikdo mi nebyl schopen poradit, až jsem v jednom článku narazil na to, jak jsou tyto věci řešeny obecně v Linux-u. Pak už to bylo celkem jednoduché. Přirazení akce, která rozvítí led, je v tomto případě definováno v /sys/class/leds/sys_led/trigger. Po zadání Kód: cat /sys/class/leds/sys_led/trigger Kód: none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight gpio cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 default-on transient panic emmc sd sdio rfkill0 rfkill1 rfkill2 [rc-feedback] rfkill3 Kód: echo default-on > /sys/class/leds/sys_led/trigger Kód: echo default-on > /sys/class/leds/sys_led/trigger Nejde o žádnou důležitou funkci, spíše jsem si jen v době delší nemoci pohrál, ale možná to pro podobné hračičky bude zajímavá inspirace. Použít to lze u všech *ELEC a Linux instalací. Je ale třeba počítat, že konečné adresy /sys/class/leds/... se mohou v jiných systémech nebo verzích lišit, a že i HW může být různý (tzn. nemusí to nutně být Beelink GT King). RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 05.1.2023 Hrátky s led V minulém postu jsem, kromě jiného, napsal: (03.1.2023, 23:07)JiRo Napsal(a): Kromě toho mám ještě doplněný další script, který mi led rozsvěcí v jiné periodě, pokud Kodi neběží, ale v Tvheadend probíhá nějaké nahrávání a nebo je k němu připojen nějaký jiný Kodi klient. V tomto případě s pauzou 5 sekund led rychle po sobě zabliká (s periodou 0.4 sekundy) a počet těchto rychlých zabliknutí je dán součtem počtu právě probíhajících nahrávek plus počet aktivních klientů připojených k Tvheadend. To už je ale zase záležitost sh scriptu běžícího v systému mimo Kodi, který je aktivní pouze v okamžiku, kdy Kodi neběží.Takže pro případné zájemce i tento script. Kód: #! /bin/sh Pokud je aktivní alespoň jedno nahrávání nebo alespoň jeden klient Kodi, který je připojený k Tvheadend serveru, tak počet rychlých bliknutí led (0.2/0.2 sec) odpovídá sumě počtu aktivních klientů a probíhajících nahrávání. V případě pokud není aktivní žádný klienta ani neprobíhá nahrávání, rozsvítí se led na 3 sec, tzn. že led v tomto případě bliká v periodě 3/3 sec. To je výrazně a na první pohled odlišné od periody 1/1 sec, kdy led bliká, pokud je aktivní Kodi i od série krátkých bliknutí, jejichž počet udává sumu počtu připojených klientů a probíhajících nahrávání. Pokud to rekapituluji, tak všechny identifikované stavy běžícího boxu zelenou led jsou:
RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 20.1.2023 Splash & jingle pro Nexus Čas oponou trhnul a u nás doma, až na testovací instalace, nenajdete jiné Kodi než Nexus. A tak jsem zároveň aktulizoval sadu obrázků a jeden jingle. Zatím se mi nepodařilo ze zdrojů, které jsem nasbíral, najít či vyeditovat vhodný jingle pro shutdown, a tak pro něj používám ten stejný, jako pro startup. Kdyby měl někdo zájem, tak přikládám. RE: Trvale běžící *ELEC a ukončení Kodi - jkmh - 21.1.2023 Prosím tě, použil jsem na splash gif soubor. Zatěžuju tím nadbytečně náběh skinu? Vizuálně mi to tak nepřipadá. RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 21.1.2023 @jkmh To by na to nemělo mít vliv. Náběh skinu zpomalí, když nedostane nějaká data, ale pokud je dostane, tak jejich zobrazení již není jeho věcí (tím myslím thready, které ty jednodlivé dílčí úkoly řeší). RE: Trvale běžící *ELEC a ukončení Kodi - jkmh - 21.1.2023 Tak v to jsem doufal. Dík RE: Trvale běžící *ELEC a ukončení Kodi - JiRo - 21.1.2023 (21.1.2023, 0:04)jkmh Napsal(a): Prosím tě, použil jsem na splash gif soubor.Nemáš to náhodou ten gif, co se zobrazuje při startu CE 20? Já ho nikde nemohu nalézt. Už jsem dal prohledávat úplně všechno, ale stále nic... RE: Trvale běžící *ELEC a ukončení Kodi - jkmh - 21.1.2023 Bohužel nemám. RE: Trvale běžící *ELEC a ukončení Kodi - jkmh - 21.1.2023 Tak jse ho ani já nenašel. Možná je v binárkách. Jedině, že by sis ho udělalz podkladů sám. sám CoreELEC/distributions/CoreELEC/splash/Amlogic-ng at coreelec-20 · CoreELEC/CoreELEC · GitHub |