HTPC Część 3 – Instalacja XBMC

W trzeciej części przechodzimy do sedna budowania domowego centrum rozrywki. Xbmc umożliwi nam oglądanie filmów, słuchanie muzyki czy przeglądanie zasobów youtube’a.

Cel: Instalacja xbmc, konfiguracja karty graficznej i sterowników do pilota

Wymagania:
1. Laptop z wifi

1. Instalacja xbmc
Łączymy się do sieci wifi skonfigurowanej w poprzedniej części. Następnie nawiązujemy połączenie ssh do naszego serwera. Jeśli używamy linuksowego systemu operacyjnego wystarczy uruchomić konsolę i wydać polecenie:

ssh root@10.50.100.1

Do połączenie ssh z poziomu systemu Windows będzie potrzebny dodatkowy program np.: putty.

Ok, dodajemy do pliku /etc/apt/sources.list repozytoria debian multimedia, w których znajdują się paczki z xbmc.

deb http://www.deb-multimedia.org squeeze main non-free

Przy okazji dodajmy opcję „contrib” oraz „non-free” do pozostałych repozytoriów – będą konieczne przy instalacji sterowników do karty graficznej. Cały plik powinien prezentować się następująco:

deb http://ftp.pl.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.pl.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://www.deb-multimedia.org squeeze main non-free

Aktualizujemy informacje o pakietach:

root@htpc1:~# apt-get update 

Polecenie zgłosi błąd ponieważ nie mamy zainstalowanego klucza repozytoriów – musimy go dodać:

root@htpc1:~# apt-get install deb-multimedia-keyring 

Potwierdzamy instalację i ponownie aktualizujemy listę pakietów:

root@htpc1:~# apt-get update 

Instalujemy właściwe pakiety:

root@htpc1:~# apt-get install xbmc-standalone xinit 

Następnie instalujemy paczki ze sterownikami:

root@htpc1:~# apt-get install nvidia-kernel-2.6-vserver-amd64 nvidia-vdpau-driver nvidia-glx nvidia-kernel-dkms 

Od razu edytujemy/tworzymy plik /etc/X11/xorg.conf z następującą zawartością:

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    #Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "CRT: nvidia-auto-select +0+0, DFP: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Module"
    Load	"glx"
EndSection

Dodajemy użytkownika systemowego xbmc:

root@htpc1:~# useradd -r xbmc 

Tworzymy katalog domowy i nadajemy uprawnienia:

root@htpc1:~# mkdir /home/xbmc && chown xbmc:xbmc /home/xbmc && chmod 750 /home/xbmc 

W katalogu /home/xbmc tworzymy plik „.profile”:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

## uruchomienie xow
/usr/bin/startx --
exit

Tworzymy kolejny plik w katalogu użytkownika xbmc – „.xinitrc”:

#!/bin/bash
exec /usr/bin/xbmc --standalone

Nadajemy plikowi uprawnienia z możliwością wykonania:

root@htpc1:~# chmod 755 /home/xbmc/.xinitrc 

Teraz wystarczy już tylko dodać wpisy do pliku /etc/inittab aby zapewnić uruchomienie xbmc przy starcie. Dodatkowo jeśli xbmc „wyłoży się” zostanie automatycznie uruchomiony ponownie. Do tego celu potrzebujemy jeszcze jeden pakiet – mingetty. Standardowo, instalujemy go poleceniem:

root@htpc1:~# apt-get install mingetty 

Na koniec edytujemy plik /etc/inittab, szukamy linii:

1:2345:respawn:/sbin/getty 38400 tty1

Wstawiamy przed nią znak „#” i dodajemy nową linię:

 1:2345:respawn:/sbin/mingetty --autologin xbmc tty1

Na koniec restartujemy nasz serwer. Po ponownym uruchomieniu przełączamy TV na wejście HDMI. Xbmc powinno zostać uruchomione.

Jeśli wykorzystujemy kabel hdmi do odtwarzania dźwięku na głośnikach telewizora to konieczne jest wyłączenie wyciszenia na wyjściu S/PDIF – bez tego dźwięk nie będzie działać. Do tego celu będziemy potrzebować programu alsamixer.

root@htpc1:~# apt-get install alsa-utils 

Uruchamiamy program alsamixer:

root@htpc1:~# alsamixer 

Ustawiamy jak na zrzucie ekranu. Sterujemy strzałkami klawiatury. Wyciszenie włączamy/wyłączamy klawiszem „m”.

2. Sterowniki do pilota oraz bluetooth.

Pobieramy paczkę ze strony:
„http://code.google.com/p/zester/downloads/detail?name=asus-at3iont-i-deluxe-dkms_1.0.1_all.deb&can=2&q=” lub z mojego serwera: http://blog.ezrodlo.pl/archeo/asus-at3iont-i-deluxe-dkms_1.0.1_all.deb
Przed instalacją WARTO sprawdzić sumę kontrolną poleceniem shasum i md5sum. Polecenia powinny zwrócić następujące wyniki:

SHASUM:  82b9854a8dfd9985bc9e74b0615c41180f19ac0f  asus-at3iont-i-deluxe-dkms_1.0.1_all.deb
MD5SUM: 9c3646405fb4758e2eba19220e138eba  asus-at3iont-i-deluxe-dkms_1.0.1_all.deb

Przed instalacją instalujemy nagłówki dla aktualnego jądra linuksa:

root@htpc1:~# apt-get install linux-headers-2.6-vserver-amd64 

Instalujemy paczkę ze sterownikami. Wchodzimy do katalogu gdzie została zapisana i wydajemy polecenie:

root@htpc1:~# dpkg -i asus-at3iont-i-deluxe-dkms_1.0.1_all.deb 

Jeśli wszystko pójdzie ok, powinny zostać zbudowane moduły ath3k.ko i hid-philips-asus.ko.
Dodatkowo, po każdej aktualizacji jądra linuksa moduły te zostaną automatycznie przebudowane.

Do pliku /etc/rc.local (przed linią „exit 0″ ) dodajemy:

 sh /usr/src/asus-at3iont-i-deluxe-1.0.1/drivers/hid-philips-asus/load-module.sh

Pozostaje jeszcze dopracować mapowania klawiszy pilota. Edytujemy plik /usr/src/asus-at3iont-i-deluxe-1.0.1/drivers/hid-philips-asus/mappings.h, usuwamy zawartość i wklejamy:

/***************************************************
 * Button mappings
 *
 * Change the key values according to linux/input.h
 * and then rebuild the driver
 ***************************************************/

/* Power button */
#define BUTTON_POWER		KEY_MUTE

/* Play, rewind, forward buttons */
#define BUTTON_REWIND		KEY_REWIND
#define BUTTON_PLAYPAUSE	KEY_PLAYPAUSE
#define BUTTON_FORWARD		KEY_FASTFORWARD

/* Previous, stop, next buttons */
#define BUTTON_PREVIOUS		KEY_PREVIOUS
#define BUTTON_STOP			KEY_STOP
#define BUTTON_NEXT			KEY_NEXT

/* Volume buttons */
#define BUTTON_MUTE			KEY_MUTE
#define BUTTON_VOLUMEUP		KEY_VOLUMEUP
#define BUTTON_VOLUMEDOWN	KEY_VOLUMEDOWN

/* Arrow buttons */
#define BUTTON_RIGHT		KEY_RIGHT
#define BUTTON_LEFT			KEY_LEFT
#define BUTTON_DOWN			KEY_DOWN
#define BUTTON_UP			KEY_UP

/* OK button */
/*#define BUTTON_OK			KEY_OK */
#define BUTTON_OK                       KEY_ENTER

/* Back button */
#define BUTTON_BACK			KEY_BACKSPACE

/* Special buttons from left to right counter clockwise*/
#define BUTTON_HOME			KEY_ESC
#define BUTTON_WINDOWS		KEY_I
#define BUTTON_RADIO		KEY_O
#define BUTTON_MUSIC		KEY_C
#define BUTTON_DTS			KEY_SUBTITLE
#define BUTTON_TRANQUIL		KEY_INFO
#define BUTTON_FULLSCREEN	KEY_ZOOM

/* Middle special button */
#define BUTTON_HOMETHEATER	KEY_MENU

Jak widzicie zastąpiłem BUTTON_POWER funkcją KEY_MUTE. Korzystając z pilota łatwo wyłączyć cały serwer. W moim przypadku jest to zbędne ponieważ serwer działa w trybie 24/7.

Na koniec musimy jeszcze raz przebudować moduły:

root@htpc1:~# dpkg-reconfigure asus-at3iont-i-deluxe-dkms 

Restartujemy serwer po raz ostatni. Po ponownym uruchomieniu klawisze pilota powinny działać poprawnie.
Skoro pilot działa poprawnie to czytelnikowi pozostawiam „wyklikanie” w ustawieniach xbmc ustawienia wyjścia audio.

Powiązane wpisy:

HTPC Część 2 – Debian jako ruter oraz ruter wifi dla sieci lokalnej
Measy U1A/U2A - alternatywa dla Raspberry Pi?
XEN - Instalacja systemu bazowego
Wysłany 15.11.2011 w 13:06 · przez blog.ezrodlo.pl · Stały link
W: debian, HTPC · Opisany jako: , , , , ,

4 Odpowiedzi

Subskrybuj komentarze przez RSS

  1. Napisany przez Mariusz Sielicki
    na 6 kwietnia, 2012 w 15:12
    Stały link

    Dla XBMC 11 zmieniła się troche klawiszologia (może zmieniła się wcześniej ale dopiero po przesiadce na 11’ke ją odczułem). Proponuję poniższa sekcje klawiszy specjalnych:

    #define BUTTON_HOME KEY_ESC
    #define BUTTON_WINDOWS KEY_I
    #define BUTTON_RADIO KEY_M
    #define BUTTON_MUSIC KEY_C
    #define BUTTON_DTS KEY_L
    #define BUTTON_TRANQUIL KEY_O
    #define BUTTON_FULLSCREEN KEY_Z

  2. Napisany przez Ubik
    na 6 kwietnia, 2012 w 17:28
    Stały link

    Hej, jeszcze nie aktualizowałem xbmc i szczerze powiedziawszy nie pamiętam kiedy ostatnio raz używałem :)
    Dzięki za informacje, przyda się przy aktualizacji :)

  3. Napisany przez Mariusz Sielicki
    na 6 sierpnia, 2013 w 01:26
    Stały link

    brakuje jeszcze:
    adduser xbmc video
    adduser xbmc audio

  4. Napisany przez Mariusz Sielicki
    na 10 sierpnia, 2013 w 13:46
    Stały link

    i jeszcze do dekompresji mp3:
    aptitude install libmad0

Subskrybuj komentarze przez RSS