onsdag 23 mars 2011

Motgångar del 2

Spelarens nav är programmen RootApp och DvdPlayer, som styr det mesta som spelaren gör. De tar emot ir-signalerna från fjärrkontrollen, navigerar i menyerna, spelar upp media, sköter webtjänsterna och mycket mer. Det gör det ytterst svårt att göra betydande förändringar i de delarna så därför siktade jag i första hand in mig på webtjänsterna och webgränssnittet.

Utöver den befintliga tjänsten YouTube har SVTPlay med flera playtjänster efterfrågats så jag gjorde ett försök. De listningar från YouTube som visas är helt enkelt RSS-flöden som definieras i en xml-fil. Jag skapade därför en ny fil med flödena från SVTPlay och länkade in den bland de andra. Programlistorna kom upp snällt som önskat men när jag försöker visa något får jag det kortfattade felmeddelandet "400". Min första gissning är att specifika taggar från sidorna används för att hitta länken till flash-videon och den teorin ska jag jobba vidare på.

I valet mellan att ha en paketsniffer externt mot att ha en lokalt på spelaren valde jag det senare vilket på sikt kommer underlätta debugning hos andra personer än mig själv. Därför kompilerade jag netcat och för en gångs skull gick kompileringen helt utan problem vilket var glädjande. Sedan insåg jag att det inte var det verktyg jag behövde. Netcat kan skapa nätverksförbindelser av nästan alla sorter och både läsa och skriva från dem, men inte sniffa paket från en befintlig förbindelse som var det jag önskade. I stället gav jag mig på tcpdump och efter lite bråk med konfigureringsscripten som inte detekterade linuxversionen lyckades kompileringen. Därefter insåg jag att det även krävs stöd i kärnan för paketsniffning vilket det inte fanns. Jag får använda Netcat som proxy i stället.

De (få) programmen som används för webtjänsterna är kompilerade vilket effektivt hindrar förändringar av dem. För att slippa skriva cgi-shell-script beslutade jag mig för att använda php som webplattform. Hittills har kompileringen misslyckats trots att jag patchat bort ett par kompileringsfel så det kommer bli besvärligt att få programmet att fungera. Många av de idéer jag har bygger på att kunna använda webservern på ett smidigt sätt så php (eller något alternativ) ser jag som det viktigaste att få klart just nu.

Alla de problem jag stött på vid kompileringarna har fått mig att börja fundera på om det finns brister i den toolchain jag använder. Frågan är om jag ska fortsätta kämpa eller om det blir mindre arbete att kompilera en ny toolchain som jag tror går enklare att utvidga vid behov.