Televízny HDMI-CEC na netelevíznej x86_64 mašine bez HDMI-CEC?
Posted: Fri Apr 17, 2026 10:51 pm
aneb jak som nestel ťahať jeden ethernet kábel navyše a ani nevymýšlať nič vačšé navrch
Situácia je taká, na PS60E6500ke plazme v obývačke začína pomaly zjavne odchádzať panel. Mal som pre ten televízor plány so SamyGO, ale disasociácia mi nepomohla a nedostal som sa k tomu.
Jak poslednú možnosť čo k televízoru spraviť bez toho, aby tá námaha nepadla popolom až tak strašne moc som jako sidequest cvičení pre použití NixOSu (lebo šak prečo ne) zebral jeden zasponzoruvaný HP ProDesk 600 G2 DM, nehal mu iba 4GB RAM, nehal tam to SSDčko s kerým som ho vyfasuval, nainštaluval NixOS a začal experimentuvať. Priznám sa, zprvoti to šecko boli pokusy s LineageOS TV, s RPi 3, inakšou vellajšou krabicou s Amlogicom (o kerej tu padlo slovo na fóre ťéž) ale šecko to boli také ťažkopádne veci bez reálnych koncov lebo šecko padalo na iných problémoch. Táto NixOS zázrakovina teda štartuje do KDE Plasma Bigscreen-u, lebo šak keď Samsung plazma tak neh to má KDE Plasma! Ale o to nejde, to by bola vec na inakší deň.
V tomto poste pójde o taký rychloprojekt, hento HPčko totižto (narozdíl od maliny a amlogicov a takýchto nedovarkov) nemá HDMI-CEC a ja som rozmýšlal jak ríšiť tento problém. Ono nejde ani moc o to, že na HPčku neni HDMI-CEC, jak skór to, že neni jak televízor zapať a vypať jennou ovládačkou. Je 2026 a snáď nebudem vymýšlať večne opakujúci sa systém miliónov ovládačék. Už len ten celý HTPC projekt bol totižto zlepenec predchádzajúcich scrapov, takže pravidlo bolo nekupuvať už absolutne nič a skladať z toho co dům dal.
Potenciálnym nápadom sa naskytlo teoreticky zneužiť tú ovládačku čo mám k P5B, lenže P5B je mašina multimediálna a tam proste nedopustím tú ovládačku brať. Preto mi ostala vec posledná, ovládačka z volakedajšého settopbox projektu kerý siaha až do roku 2016. Ovládačke nič neni, je USBčková, ví airmouse hovadiny a nevím čo. K radosti pod Linuxom jej chýba iba premapuvať klávesy a tak, čo bola vec pár rádkov v .nix configu čo sa spísal a hotovo. Ale to furt, furt utekám od pointy.
Hlavný bod programu. Ovládaní televízora.
Zopakujem sa, hlavný bod programu. Ovládaní televízora.
Jak bolo spomenuté, SamyGO som z televízora načil odstaveu, ethernet kábel odpojeu a pichol do tej HP krabice. Televízor je teda momentálne bez jakéhokoľvek prístupu na okolitý svet a jediná vec čo ho spája s čímkolvek je čil iba eletrika a HDMIčko k tomu HPčku.
Teoreticky som mohol zebrať Arduino a navaliť na to voláky IR shield a nehať to odporne trčať pred televízorom, lenže to som ťéž nestel. Preto som kukal, či sa zrovna nedá to Arduino (mal som po ruke momentálne iba Leonardo) zneužiť na HDMI-CEC. Jak je známe, HDMI-CEC jeho funkcionalitou jako always on protokol na šeckých portoch je volačo, čo by bolo fakt dobré na zneužití.
Bol som teda kukať ostatné pozostatky a scrap, že či nenájdem volačo čo by pasuvalo. Po hardwarovej stránke som teda doma našóv jeden HDMI breakout z roku pána 2019 kedy som stel rootuvať kuchynský Xiaomi Mi TV 4A televízor a teda to Arduino Leonardo, čo sa už spomenulo hore vyšší. Rozstrihaných dupontov bola našťastí kopa takže bolo z čoho brať.
Na signálovú integritu sa samozrejme nehráme. Keby velice silno potrebujem tak sa k tomu silou mocou spraví aj deska, ale srať do toho.
Našóv som teda voláke repo, oforkuval som ho, začal som sa v ňom rýpať dokedy sa mi nepodarilo posílať vysnívané príkazy, zbúchal som experimentálne na to pythonovinu čo používa DBus (lebo zas a znova som si stel vyprobuvať že jaké to je a inakšá volovina ma nenapadla), hodil som tam flake.nix neh si to vím hodiť do toho Nix konfigu a mať možnosť potom replikuvať s celým configom od mašiny.
Oni ti programové omáčky sú celkom nudné, pythonový daemon čítajúci a zapisujúci z TTYčka daného Arduina visí na systemd službe, implementuje to kvázi "state machine" keďže HDMI-CEC neví porádny state polling a zároveň nemá toggle príkazy (reálne existuje iba Text Mode On/Image View On a Standby, polling robím zneužívaním Play príkazu kedy kukám či na mňa televízor spätne kričí alebo mlčí) a ono sa to ve výsledku celé napichlo skrz ten DBus na klávesovú skratku cez KDE nastaveňá, kde to proste iba posíla ten DBus toggle príkaz. To je tak šecko, tam neni extra čo povedať.
Voláke slovo na záver
LeoCEC k dostání na vašom GitHube: https://github.com/TheMorc/LeoCEC
Na záver len jedno, treba to ešte trochu očesať, šecko sú to také experimentačné veci keré možno nevydržá ani týždeň. Za mňa je celý tento dodatek na ten HTPC projekt celkom podarená rychlohovadina. Aj keď mosím povedať že ten RPi projekt v 2016-2024 mal vačší klimat a bol zaujímavejší, lebo to malo aj displej a aj nevím čo, tak toto je zas také mierne inakšé. Zábavka bola paradoxne aj vtedy pred rokmi, lebo tedy bolo zas treba premapuvať ten power čudel na ovládačke tak, aby to púšťalo jeden Kodi skript, kerý zase orchestruval zastavuvaní playbacku a vypínaní televízora cez HDMI-CEC inakšími spósobmi.
Teoretická pozitívnejšá úprava by bola buď tlačiť celé HDMI cez ten breakout, alebo poríšiť ten CEC split, aby sa ten one-wire nebil sám se sebou. Potenciálny dodatek číslo dva by bol zas dohodiť to, aby to komunikuvalo priamo s Pulse-Eight CEC daemonom a takýmito vecami. Tak ale keď som nevymýšlal na strane Arduina, tak sa zas vymýšlalo na strane HTPCčka. Ono to je ve výsledku aj tak jedno, nido to používať mimo mňa nebude a potom celé toto za roky aj tak vymizne, lebo sa priority zmeňá, kúpi sa inakší televízor de bude Android alebo ja nevím čo.
Budúcnosť neh sa určuje v čase prítomnom toho časového úseku kerý vtedy nastane. Čil to bude takto a takto to zaťál ide bezproblémovo.
Situácia je taká, na PS60E6500ke plazme v obývačke začína pomaly zjavne odchádzať panel. Mal som pre ten televízor plány so SamyGO, ale disasociácia mi nepomohla a nedostal som sa k tomu.
Jak poslednú možnosť čo k televízoru spraviť bez toho, aby tá námaha nepadla popolom až tak strašne moc som jako sidequest cvičení pre použití NixOSu (lebo šak prečo ne) zebral jeden zasponzoruvaný HP ProDesk 600 G2 DM, nehal mu iba 4GB RAM, nehal tam to SSDčko s kerým som ho vyfasuval, nainštaluval NixOS a začal experimentuvať. Priznám sa, zprvoti to šecko boli pokusy s LineageOS TV, s RPi 3, inakšou vellajšou krabicou s Amlogicom (o kerej tu padlo slovo na fóre ťéž) ale šecko to boli také ťažkopádne veci bez reálnych koncov lebo šecko padalo na iných problémoch. Táto NixOS zázrakovina teda štartuje do KDE Plasma Bigscreen-u, lebo šak keď Samsung plazma tak neh to má KDE Plasma! Ale o to nejde, to by bola vec na inakší deň.
V tomto poste pójde o taký rychloprojekt, hento HPčko totižto (narozdíl od maliny a amlogicov a takýchto nedovarkov) nemá HDMI-CEC a ja som rozmýšlal jak ríšiť tento problém. Ono nejde ani moc o to, že na HPčku neni HDMI-CEC, jak skór to, že neni jak televízor zapať a vypať jennou ovládačkou. Je 2026 a snáď nebudem vymýšlať večne opakujúci sa systém miliónov ovládačék. Už len ten celý HTPC projekt bol totižto zlepenec predchádzajúcich scrapov, takže pravidlo bolo nekupuvať už absolutne nič a skladať z toho co dům dal.
Potenciálnym nápadom sa naskytlo teoreticky zneužiť tú ovládačku čo mám k P5B, lenže P5B je mašina multimediálna a tam proste nedopustím tú ovládačku brať. Preto mi ostala vec posledná, ovládačka z volakedajšého settopbox projektu kerý siaha až do roku 2016. Ovládačke nič neni, je USBčková, ví airmouse hovadiny a nevím čo. K radosti pod Linuxom jej chýba iba premapuvať klávesy a tak, čo bola vec pár rádkov v .nix configu čo sa spísal a hotovo. Ale to furt, furt utekám od pointy.
Hlavný bod programu. Ovládaní televízora.
Zopakujem sa, hlavný bod programu. Ovládaní televízora.
Jak bolo spomenuté, SamyGO som z televízora načil odstaveu, ethernet kábel odpojeu a pichol do tej HP krabice. Televízor je teda momentálne bez jakéhokoľvek prístupu na okolitý svet a jediná vec čo ho spája s čímkolvek je čil iba eletrika a HDMIčko k tomu HPčku.
Teoreticky som mohol zebrať Arduino a navaliť na to voláky IR shield a nehať to odporne trčať pred televízorom, lenže to som ťéž nestel. Preto som kukal, či sa zrovna nedá to Arduino (mal som po ruke momentálne iba Leonardo) zneužiť na HDMI-CEC. Jak je známe, HDMI-CEC jeho funkcionalitou jako always on protokol na šeckých portoch je volačo, čo by bolo fakt dobré na zneužití.
Bol som teda kukať ostatné pozostatky a scrap, že či nenájdem volačo čo by pasuvalo. Po hardwarovej stránke som teda doma našóv jeden HDMI breakout z roku pána 2019 kedy som stel rootuvať kuchynský Xiaomi Mi TV 4A televízor a teda to Arduino Leonardo, čo sa už spomenulo hore vyšší. Rozstrihaných dupontov bola našťastí kopa takže bolo z čoho brať.
Na signálovú integritu sa samozrejme nehráme. Keby velice silno potrebujem tak sa k tomu silou mocou spraví aj deska, ale srať do toho.
Našóv som teda voláke repo, oforkuval som ho, začal som sa v ňom rýpať dokedy sa mi nepodarilo posílať vysnívané príkazy, zbúchal som experimentálne na to pythonovinu čo používa DBus (lebo zas a znova som si stel vyprobuvať že jaké to je a inakšá volovina ma nenapadla), hodil som tam flake.nix neh si to vím hodiť do toho Nix konfigu a mať možnosť potom replikuvať s celým configom od mašiny.
Oni ti programové omáčky sú celkom nudné, pythonový daemon čítajúci a zapisujúci z TTYčka daného Arduina visí na systemd službe, implementuje to kvázi "state machine" keďže HDMI-CEC neví porádny state polling a zároveň nemá toggle príkazy (reálne existuje iba Text Mode On/Image View On a Standby, polling robím zneužívaním Play príkazu kedy kukám či na mňa televízor spätne kričí alebo mlčí) a ono sa to ve výsledku celé napichlo skrz ten DBus na klávesovú skratku cez KDE nastaveňá, kde to proste iba posíla ten DBus toggle príkaz. To je tak šecko, tam neni extra čo povedať.
Voláke slovo na záver
LeoCEC k dostání na vašom GitHube: https://github.com/TheMorc/LeoCEC
Na záver len jedno, treba to ešte trochu očesať, šecko sú to také experimentačné veci keré možno nevydržá ani týždeň. Za mňa je celý tento dodatek na ten HTPC projekt celkom podarená rychlohovadina. Aj keď mosím povedať že ten RPi projekt v 2016-2024 mal vačší klimat a bol zaujímavejší, lebo to malo aj displej a aj nevím čo, tak toto je zas také mierne inakšé. Zábavka bola paradoxne aj vtedy pred rokmi, lebo tedy bolo zas treba premapuvať ten power čudel na ovládačke tak, aby to púšťalo jeden Kodi skript, kerý zase orchestruval zastavuvaní playbacku a vypínaní televízora cez HDMI-CEC inakšími spósobmi.
Teoretická pozitívnejšá úprava by bola buď tlačiť celé HDMI cez ten breakout, alebo poríšiť ten CEC split, aby sa ten one-wire nebil sám se sebou. Potenciálny dodatek číslo dva by bol zas dohodiť to, aby to komunikuvalo priamo s Pulse-Eight CEC daemonom a takýmito vecami. Tak ale keď som nevymýšlal na strane Arduina, tak sa zas vymýšlalo na strane HTPCčka. Ono to je ve výsledku aj tak jedno, nido to používať mimo mňa nebude a potom celé toto za roky aj tak vymizne, lebo sa priority zmeňá, kúpi sa inakší televízor de bude Android alebo ja nevím čo.
Budúcnosť neh sa určuje v čase prítomnom toho časového úseku kerý vtedy nastane. Čil to bude takto a takto to zaťál ide bezproblémovo.