Posts Tagged ‘Sylvester’

Sylvester del 3

oktober 8, 2008

Efter del 1 och 2 har jag en dator som fungerar ypperligt men som inte har en enda pinal som gör den till en media-dator. Det jag vill att min media-dator skall kunna göra är att spela musik och video samt ladda ner podcasts åt mig. Självklart skall användargränssnittet också vara hyggligt tilltalande.

En viktig detalj jag inte beskrivit än är hur X.org ställdes in för att visa bild på min TV. Min TV har HDMI-ingångar och Sylvester har en DVI-utgång, praktiskt nog är DVI och HDMI är kompatibla och kräver enbart en sladd som passar i båda ändar (DVI->HDMI). För att ställa in X.org för att ge en signal som passade jag min tv använde jag gentoo-wikis guide till HDMI. I mitt fall blev monitor sektionen i Xorg.conf:

Section "Monitor"
Identifier   "Philips26"
VendorName   "Philips"
ModelName    "26PFL5322"
Option       "IgnoreEDID"
VertRefresh  30-90
HorizSync    20-150
ModeLine     "720p" 73.825 1280 1320 1368 1640 720 722 724 751 +hsync +vsync
ModeLine     "1080i" 74.52 1920 1952 2016 2208 1080 1084 1096 1126 -hsync -vsync interlace
DisplaySize  320 180
EndSection

Efter jag lagt till detta producerar Sylvester kristallklar bild. Nu är all hårdvara fungerande och endast mjukvaran återstår.

Det finns många grafiska gränssnitt för mediadatorer att välja mellan och mitt val föll på MyMediaSystem (MMS) för att det var rätt minimalistiskt, konfigurerbart och communitien var trevlig (jag lyckades till och med hjälpa till att lösa en bugg). De funktioner jag använder är ogg/mp3-uppspelning, webbradio, video från disk/DVD, Spel och Python-applets. Jag valde att installera från källkod eftersom jag ville avaktivera vissa features och aktivera andra ickestandard features. För att installera på debian:

Ladda ner de paket MMS är beroende utav:

aptitude install libimlib2-dev libsdl1.2-dev autoconf bzr build-essential
aptitude install libxine-dev mplayer-nogui pkg-config
aptitude install w32codecs libtag1-dev libsqlite0-dev libpcre3-dev
aptitude install liblircclient-dev libtool gettext libalsaplayer-dev

Ladda ner senaste versionen av MMS från projektets repository och installera från källkoden.

bzr get http://bazaar.launchpad.net/~anders-gnulinux/mms/1.0.9 mms-1.0.9
cd mms-1.0.9
./configure --enable-python --disable-inotify --enable-lirc \
--enable-game --disable-epg
make
su -c  "make install"

Jag skippade inotify för jag kunde inte hitta ett paket som med rätt version för att passa med mms. Detta gav ett fungerande MMS men jag stötte på problem i grundkonfigurationen när jag vill köra ett spel. Ifall spelet körs i fullskärm återställs inte bilden till MMS (som per default körs i fullskärm), detta beror nog på någon liten bugg i openChrome. Dock kan problemet lätt gås runt genom att redigera /etc/mms/Config och ändra raden

fullscreen = true

till

fullscreen = false

samt ändra värdena för h_res och v_res så de motsvarar skärmupplösningen. I mitt fall:

h_res=1024
v_res=768

Detta gör att programmet startas i ett fönster med samma storlek som skärmen vilket ger ett intryck som är identiskt med fullskärmsalternativet.

För att starta MMS direkt från uppstart används GDM (Gnome Display Manager) (som är installerat tillsammans med Debians grundsystem) samt Fluxbox startscript. GDM konfigureras till att logga in media-användaren automatiskt vid uppstart användandes den förinställda fönsterhanteraren (som sätts till Fluxbox). Detta görs genom att lägga till raderna

AutomaticLoginEnable=true
AutomaticLogin=media-user

i /etc/gdm/gdm.conf. Eftersom vi inte vill köra Fluxbox utan MMS byter vi ut raden

exec /usr/bin/fluxbox

mot

exec /usr/local/bin/mms

i filen ~/.fluxbox/startup. Detta innebär att när Sylvester slås på kommer MMS startas direkt, men avslutar vi MMS hoppar vi tillbaka till login-skärmen och kan välja att starta Gnome för att surfa eller skriva dokument (varför man nu skulle vilja det).

Efter dessa steg dyker MMS upp när datorn startat

Efter dessa steg dyker MMS upp när datorn startat.

De mjukvaror jag sedan installerat för att komplettera mediaspelaren är

  • Peapod – Automatisk nedladdning av podcasts
  • SuperTux – Super Mario Bros-liknande plattformsspel
  • Frozen Bubble – PuzzleBubble-klon

Än så länge fungerar systemet hur bra som helst, dock har jag stött på patrull med min hembyggda IR-mottagare som gör systemet en gnutta instabilt så fort den kopplas in. Jag ska ta tag i problemet vilken dag som helst nu, hoppas jag.

Annonser

Sylvester del 2

juli 27, 2008

Förra delen lämnade av efter en snabb beskrivning av Sylvesters hårdvara och montering, vilket lämnar mjukvaran. Den här delen kommer ta upp installation och konfigurering av operativsystemet.

Som OS valde jag Debian (Etch) eftersom drivrutiner finns tillgängliga från VIA, det har ett bra pakethanteringssystem, det är enkelt att konfigurera och anpassa samt att Debian är en Linux-distribution jag länge velat prova.

Den stora nackdelen med Debian är att den stabila varianten har en relativt gammal kärna (2.6.18 ) vilket innebar att ett par saker inte fungerade som de skulle: hårddisk samt de inbyggda grafik- och ljud-kretsarna.

Dessa problem yttrade sig genom att maskinen låste samtliga aktiviteter under tiden någon större mängd data skulle läsas eller skrivas från/till hårddisken, ljudkretsen genererade helt enkelt inget ljud och den grafiska prestandan var låg (endast VESA). Dessa problem kunde dock lösas med drivrutiner från VIAs hemsida samt med öppna drivrutiner från tredje part, men inte utan pyssel. VIAs drivrutiner var byggda för en tidigare version av kärnan (Debian Etch 2.6.18-4) vilket innebar att installations-scripten inte fungerade utan drivrutinerna fick läggas till manuellt.

Hårddisken var den enklaste att fixa då den drivrutin som VIA tillhandahåller nästan går att installera automatiskt, och det var inte svårt att utifrån installations-scriptet utröna hur det var tänkt att installeras:

wget http://www.viaarena.com/Driver/via-ide_patch-debian4.0-20070612.tgz
tar -xzvf via-ide_patch-debian4.0-20070612.tgz
cd via-ide_patch-debian4.0-20070612.tgz
cp via82cxxx.ko /lib/modules/2.6.18-6/kernel/drivers/ide/pci
echo "via82cxxx.ko" >> /etc/initramfs-tools/modules
mkinitramfs -o /boot/initrd.img-2.6.18-6-686

De två sista raderna bygger en ramdisk (inkluderandes den nya via82cxxx.ko kernelmodulen) som laddas vid uppstart.

Problemet med grafiken var dock svårare, VIAs egna drivrutiner fick jag inte att kompilera men lyckligtvis hittade jag projektet Open Chrome. Open Chrome är en öppen X.org-drivrutin för VIAs grafik-chipset, drivrutinen inkluderar inte alla finesser ännu men den fungerar iallafall. Open Chrome var ganska enkel att installera tack vare en fin installationsguide. (Nu när jag kikade verkar det finnas ett debian-paket för att installera via apt, det hade varit ännu enklare.)

Problemet med ljudet krävde också att en kärnmodul laddades ned från VIA, tyvärr kan VIAs debian etch release inte installeras i sin helhet pga mindre skillnader i kärnan. Lyckligtvis räcker den del som kan installeras för att få ljudet att fungera.

cp /lib/modules/2.6.18-6-686/kernel/sound/pci/hda/snd-hda-codec.ko ./snd-hda-codec.ko.bak
wget http://www.viaarena.com/Driver/via_debian_4.0_linux_hd_audio_ig_v0.8.tar.gz
tar -xzvf via_debian_4.0_linux_hd_audio_ig_v0.8.tar.gz
cd VIA-HDA-v1.40-Debian4.0_bin/Debian_4.0
cp snd-hda-codec.ko /lib/modules/2.6.18-6-686/kernel/sound/pci/hda/snd-hda-codec.ko
rmmod snd-hda-codec && modprobe snd-hda-codec

Original-drivrutinen kan återställas genom att kopiera tillbaka snd-hda-codec.ko.bak till original katalogen:

cp snd-hda-codec.ko.bak /lib/modules/2.6.18-6-686/kernel/sound/pci/hda/snd-hda-codec.ko

Efter dessa modifieringar har vi ett system som klarar av dess tänkta funktion: uppspelning av ljud och bild. Mer om mjukvaran som används kommer i nästa del (förhoppningsvis tar det inte fyra månader tills den är klar…).

Sylvester del 1

april 21, 2008

Det här är första inlägget i en serie om min nya mediadator Sylvester som nu börjar bli funktionsduglig. I det här inlägget beskriver jag hårdvaran samt mina mål för projektet.

Mål: Den stora fördelen jag är ute efter är att slippa ha sladdar tvärs över golvet, och att slippa störningar i bilden när man tittar på video. Ett annat mål är att skapa en central lagringsenhet för all media som kan kommas åt och styras från direkt från soffan eller från en dator nära eller långt långt borta.

Hårdvara:

  • Via EPIA ex15000g Nano-ITX moderkort
  • Chassi (200 x 300 x 50 mm)
  • Slimline-IDE DVD
  • 2.5″ hårddisk (Maxeffekt 3 W)

Moderkortet inkluderar ljud-chipset, video-chipset, 1.5 GHz CPU och ett 100-Mb/s nätverksgränssnitt. Jag valde det här moderkortet eftersom dess video-chipset stödjer hårdvaruaccelererad dekodning av Mpeg-2 och Mpeg-4 vilket kan avlasta huvudprocessorn rejält vid uppspelning av film och därmed kan sänka effektförbrukningen. En annan viktig detalj är att den normala video-utgången är en DVI-D kontakt och därmed direkt kan kopplas till en HDMI-ingång på min TV och leverera bild i HD-kvalité. DVD-spelaren är av slot-in variant och hårddisken är vald för dess låga effektförbrukning. Eftersom både hårddisken och DVD-spelaren normalt sett är tänkta att användas i en bärbar dator krävdes ett par konverterare, vilka jag hittade på ”Kjell och Co” (som förövrigt verkar ha det mesta). Det tog dock två försök att få tag på slimline-IDE-till-IDE-konverteraren (ifall någon behöver en Slimline-IDE till IDE-fast-mindre så är det bara att höra av sig).

Efter detta gick monteringen ganska smärtfritt men ett par kvarstående problem finns. Det första är att DVD-enheten anser sig vara inställd på cable-select och vill inte vara på samma IDE-bus som hårddisken. De bråkar även ifall hårddisken också är ställd som cable-select men jag hoppas problemet går att lösa genom att maska cable-select-pinnen och på så vis tvinga DVD-enheten till att agera slav. Eftersom jag inte är så sugen på att förstöra någon kontakt håller jag på att tillverka en kabel som jag kan arbeta med.

Det andra problemet är att jag måste konstruera en IR-mottagare. Detta är lyckligtvis inte så svårt men den enda ingången jag har att arbeta med är USB samt mic- och line-in. Jag har valt att arbeta med det senare eftersom det kräver mindre hårdvara och blir en renare lösning.

Det är roligt nästan jämnt =)


Lite bilder från monteringen.