TL;DR: Eräänlainen ratkaisu alempana
Hankin joulukuussa Vu+ Uno 4K SE -boksin ja siinä on ollut satunnaisia kaatuiluja, joidenka jälkeen boksi on ilmoittanut että tallennelista on korruptoitunut eikä sitä voi ladata. Päivitin imagen toki ja etsin apua. Monet suosittelivat hankkimaan signaalinvahvistajaa ja asentamaan uusin image tai vanhempi image. Mikään ei auttanut. Kunnes sitten jossain ulkolaisella foorumilla sivumennen puhuttiin merkistöistä ja kuinka joku väärä merkki saattaa aiheuttaa kaatumisen. Tämä vaikutti mielenkiintoiselta ominaisuudelta.
Kuinka ollakkaan, kun seuraavan kerran boksi simahti, kävin tutkimassa timers.xml_old -tiedoston (varsinainen timers.xml oli kadonnut eli uudelleennimetty) ja selvitin kellonaikojen perusteella, että kyseessä oli eräs Ylen kanavan ohjelma. Tiedostossa luki:
Kuten huomaatte, ohjelmakuvauksen merkki on joku erikoismerkki. Veikkaan että tämä kaatoi tallennushetkellä boksin. Ja tämän tallennus epäonnistui. Pahaksi kaatumiseksi asian teki että myös tulevat tallennusajastukset katosivat.
Pitkällisen yritys&erehdyksen kautta löysin keinon jolla siivota timers.xml ja säilyttää tulevat ajastukset. Sen jaan tässä:
Selite tämän alla.
1. Ota telnet-yhteys boksiisi ja syötä seuraavat:
2. Vaikka käyttöliittymä käynnistyi, EPG on sekaisin, joten käynnistä laite vielä valikon kautta uudestaan.
3. Uudelleenkäynnistyksen jälkeen mene tallennevalikkoon ja ihmettele mikset näe eilen tallentamaasi tiedostoa hakemistossa mihin sen piti mennä. Paina kaukosäätimen keltaista nappia ("listaa viimeiset tallenteet") ja näet myös ne kadonneet tallenteet.
4. Jos menet tulevien tallenteiden listaan, näet myös nuo kadonneet tallennukset. Ehkä ne poistuu sieltä ajan myötä, keksin ratkaisun vasta enkä ole ehtinyt odottaa.
Koodipätkän kuvailu:
Eka more-komento listaa vain timers-tiedoston sisällön. Luultavasti sieltä löytyy kielletty merkki. Tämän ajaminen on täysin vapaaehtoista eikä poisjättäminen vaikuta mihinkään.
init 4 sammuttaa käyttöliittymän ja laite tuo tyhjän timers.xml -tiedoston
cd menee hakemistoon missä timers on
cp kopioi varmuuskopsusta toisen (jotta alkuperäinen olisi tallessa jos mokataan jotain)
sed etsii ja merkkaa tiedostosta pelastus.xml kaikki merkit jotka sisältyvät pieniin tai isoihin aakkosiin, numeroihin ja tuossa lueteltuihin erikoismerkkeihin, mukaanlukien space ja kauttaviiva. Valitettavasti väliviivaa ei voi merkata koska sitä käytetään muuhun. Pipe-merkki eli pystyviiva on erotinmerkki. Ekan kahden välissä luetellut merkit merkataan ja 2. ja 3. erotinmerkin välissä oleva merkki (tässä väliä ei ole, eli se on NULL) korvaa jokaisen ekassa välissä olevan merkin. Mutta koska ekan hakasulun jälkeen on ^ -merkki, efekti tapahtuu käänteisesti, eli merkatut merkit ovatkin turvassa ja vain kaikki muut merkit korvataan tyhjällä. Kolmannen erotinmerkin jälkeen on pieni g joka tarkoittaa että koko tiedosto käydään läpi (oletuksen käytäisiin vain ensimmäinen osuma joka riviltä). Lopputulos, eli ne talletetut merkit, ohjataan tiedoston timers.xml päälle.
Välikommenttini sed-komennosta: Hieno työkalu tuo sed, ihan kuin olisin oppinut puhumaan latinaa kun opettelin tuon syntaxin. Never again.
init 3 käynnistyy käyttöliittymän ja EPG on tyhjä. Käynnistä laite uudestaan.
Tuon äskeisen voisi toki kirjoittaa lyhemmin näinkin:
Nyt kun saisi vielä tuon laitteen ajamaan tämän puhdistuksen automaattisesti tai tarvittaessa, mutta vu-imagesta ei löydy ajastettuja toimintoja (cron).
Oikea ja parempi ratkaisu olisi saada ohjelmisto filtteröimään jo tallentaessa muut kuin perus-ascii-merkit huis Nevadaan, koska tämähän on vain tulipalon sammuttamista.
Kommentteja? Toimiiko tämä sinulla?
Hankin joulukuussa Vu+ Uno 4K SE -boksin ja siinä on ollut satunnaisia kaatuiluja, joidenka jälkeen boksi on ilmoittanut että tallennelista on korruptoitunut eikä sitä voi ladata. Päivitin imagen toki ja etsin apua. Monet suosittelivat hankkimaan signaalinvahvistajaa ja asentamaan uusin image tai vanhempi image. Mikään ei auttanut. Kunnes sitten jossain ulkolaisella foorumilla sivumennen puhuttiin merkistöistä ja kuinka joku väärä merkki saattaa aiheuttaa kaatumisen. Tämä vaikutti mielenkiintoiselta ominaisuudelta.
Kuinka ollakkaan, kun seuraavan kerran boksi simahti, kävin tutkimassa timers.xml_old -tiedoston (varsinainen timers.xml oli kadonnut eli uudelleennimetty) ja selvitin kellonaikojen perusteella, että kyseessä oli eräs Ylen kanavan ohjelma. Tiedostossa luki:
<timer begin="1748797020" end="1748804346" serviceref="1:0:19:5DF:2001:20F6:EEEE0000:0:0:0:" repeated="0" name="Elokuva: UFO Sweden (12)" description="Nuorisokotiin sijoitettu kapinallinen teini Denise epäilee, ettei hänen isänsä ole oikeasti kuollut, vaan ufot ovat kidnapanneet hänet. Niinpä hän pyytää ufoja tutkivan UFO Sweden -järjestön apua, jotta totuus selviäisi. T�" afterevent="auto" eit="16063" location="/media/hdd/movie/leffat/" tags="" disabled="0" justplay="0" zapbeforerecord="0" justremind="0" wakeup_t="0" shutdown_t="0" notify_t="0" notify_after_t="0" standby_t="0" ignore_ds_wakeup="0" exec_fnc_when="always" descramble="1" autoadjust="1" allow_duplicate="1" fnc_t="off">
</timer>
Kuten huomaatte, ohjelmakuvauksen merkki on joku erikoismerkki. Veikkaan että tämä kaatoi tallennushetkellä boksin. Ja tämän tallennus epäonnistui. Pahaksi kaatumiseksi asian teki että myös tulevat tallennusajastukset katosivat.
Pitkällisen yritys&erehdyksen kautta löysin keinon jolla siivota timers.xml ja säilyttää tulevat ajastukset. Sen jaan tässä:
Eräänlainen ratkaisu
Selite tämän alla.
1. Ota telnet-yhteys boksiisi ja syötä seuraavat:
more /etc/enigma2/timers.xml_old
init 4
cd /etc/enigma2
cp timers.xml_old pelastus.xml
sed 's|[^a-zA-Z0-9<>?/,. :=_()"äöÄÖ]||g' pelastus.xml > timers.xml
init 3
2. Vaikka käyttöliittymä käynnistyi, EPG on sekaisin, joten käynnistä laite vielä valikon kautta uudestaan.
3. Uudelleenkäynnistyksen jälkeen mene tallennevalikkoon ja ihmettele mikset näe eilen tallentamaasi tiedostoa hakemistossa mihin sen piti mennä. Paina kaukosäätimen keltaista nappia ("listaa viimeiset tallenteet") ja näet myös ne kadonneet tallenteet.
4. Jos menet tulevien tallenteiden listaan, näet myös nuo kadonneet tallennukset. Ehkä ne poistuu sieltä ajan myötä, keksin ratkaisun vasta enkä ole ehtinyt odottaa.
Koodipätkän kuvailu:
Eka more-komento listaa vain timers-tiedoston sisällön. Luultavasti sieltä löytyy kielletty merkki. Tämän ajaminen on täysin vapaaehtoista eikä poisjättäminen vaikuta mihinkään.
init 4 sammuttaa käyttöliittymän ja laite tuo tyhjän timers.xml -tiedoston
cd menee hakemistoon missä timers on
cp kopioi varmuuskopsusta toisen (jotta alkuperäinen olisi tallessa jos mokataan jotain)
sed etsii ja merkkaa tiedostosta pelastus.xml kaikki merkit jotka sisältyvät pieniin tai isoihin aakkosiin, numeroihin ja tuossa lueteltuihin erikoismerkkeihin, mukaanlukien space ja kauttaviiva. Valitettavasti väliviivaa ei voi merkata koska sitä käytetään muuhun. Pipe-merkki eli pystyviiva on erotinmerkki. Ekan kahden välissä luetellut merkit merkataan ja 2. ja 3. erotinmerkin välissä oleva merkki (tässä väliä ei ole, eli se on NULL) korvaa jokaisen ekassa välissä olevan merkin. Mutta koska ekan hakasulun jälkeen on ^ -merkki, efekti tapahtuu käänteisesti, eli merkatut merkit ovatkin turvassa ja vain kaikki muut merkit korvataan tyhjällä. Kolmannen erotinmerkin jälkeen on pieni g joka tarkoittaa että koko tiedosto käydään läpi (oletuksen käytäisiin vain ensimmäinen osuma joka riviltä). Lopputulos, eli ne talletetut merkit, ohjataan tiedoston timers.xml päälle.
Välikommenttini sed-komennosta: Hieno työkalu tuo sed, ihan kuin olisin oppinut puhumaan latinaa kun opettelin tuon syntaxin. Never again.
init 3 käynnistyy käyttöliittymän ja EPG on tyhjä. Käynnistä laite uudestaan.
Tuon äskeisen voisi toki kirjoittaa lyhemmin näinkin:
Nyt kun saisi vielä tuon laitteen ajamaan tämän puhdistuksen automaattisesti tai tarvittaessa, mutta vu-imagesta ei löydy ajastettuja toimintoja (cron).
Oikea ja parempi ratkaisu olisi saada ohjelmisto filtteröimään jo tallentaessa muut kuin perus-ascii-merkit huis Nevadaan, koska tämähän on vain tulipalon sammuttamista.
Kommentteja? Toimiiko tämä sinulla?