Raspbmc naar OpenELEC

Toen ik vorig jaar mijn IR-receiver ontving heb ik Raspbmc op mijn Raspberry Pi geïnstalleerd. Dit deed ik vanwege het feit dat ik zo zowel een kleine Debian-server als een mediaspeler kon maken van mijn Raspberry Pi. Het was echter al een hele tijd (zo ongeveer altijd?) dat de apt-database enkele fouten bevatte, in die zin dat een aantal pakketten steeds errors gaven. Daarnaast begon ik me ferm te ergeren aan het feit dat er, in plaats van gebruik te maken van het uitstekende apt-systeem van repositories met Debian pakketten, er een eigen update systeem gebruikt werd, wat voor heel wat mensen ook problemen bleek op te leveren bij elke update. Persoonlijk heb ik hier weliswaar geen last van gehad, of toch zeker niet zo vaak als vele anderen, maar nu had ik in december een probleem dat de Raspberry Pi constant vast liep tijdens het afspelen van bestanden.

Het was praktisch onbruikbaar geworden, en aangezien Raspbmc steeds verder afweek van Raspbian/Debian heb ik beslist om OpenELEC te proberen. Die laatste zou sneller moeten zijn, stabieler, en samenhangender, maar heeft als nadeel dat het praktisch onmogelijk is om zelf software toe te voegen. Toch heb ik besloten OpenELEC op zijn minst eens te proberen, aangezien Raspbmc toch niet meer te doen was, en ik liever een paar beperkingen heb, waar ik dan misschien uiteindelijk rond kan werken, dan steeds schrik te moeten hebben of de update wel zal werken, en of de vele vertragingen van de laatste updates misschien terug een beetje ongedaan gemaakt zullen worden ...

Enfin, ik heb in december uiteindelijk OpenELEC geïnstalleerd, en dat was wel een grote verbetering qua prestaties. De Raspberry Pi presteerde bijna beter op stock speed met OpenELEC dan ferm overklokt met Raspbmc. Uiteindelijk heb ik toch nog een kleine overklok gedaan, en op deze manier heb ik toch een mooie prestatiewinst.

Van de beperkingen heb ik eigenlijk weinig last. In de praktijk doe ik namelijk maar 1 ding buiten de functionaliteit van XBMC, en dat is met name het tunnelen van verschillende poorten van mijn netwerk in Eggewaartskapelle. Met Raspbmc deed ik dit met een daemon met autossh. Wat ik nu gedaan heb is de basisfunctionaliteit van autossh met behulp van enkele shellscripts. Die scripts worden opgeroepen door een cronjob die elke 5 minuten wordt uitgevoerd:
*/5 * * * * /storage/bin/sshtunnel.sh 9981 192.168.1.4:9981

#!/bin/sh
echo "" | nc localhost $1
if [ $? -ne 0 ]; then
	killall ssh
	ssh -TCNgL $1:$2 kevin@paretje.dyndns.org &
fi

De 2de regel van de code test hierbij of er enige reactie is op de lokale poort van de tunnel. Indien niet, dan wordt een nieuwe tunnel gestart. Dit doet in de basisch ongeveer hetzelfde als wat ik verwachte van autossh. Dat wil wel zeggen dat er altijd tot zo'n 5 minuten vertraging is wanneer er een probleem is, of wanneer OpenELEC opgestart is.

Verder is er maar een ding spijtig: het is enkel mogelijk als root gebruiker in te loggen via ssh. Het is ook onmogelijk om een nieuwe gebruiker aan te maken, er is immers geen volledige omgeving die je tegenwoordig zou mogen verwachten. OpenELEC is immers bedoeld voor de beste prestaties als mediacenter, niet als een volledig OS.