Tag Archive: Ubuntu


Zprovoznění VDPAU v Linuxu

Předem bych chtěl upozornit, že návod jsem vytvářel pod Ubuntu 9.10 KK, takže nevím jestli postup bude stejný u nových či starších distribucí. Takže než začneme zkontrolujeme jestli je naše karta podporovaná touto technologii, to uděláme na Wikipedii pro VDPAU. Pokud tedy vlastníme jeden z čipů ze seznamu, tak stačí nahrát poslední verzi ovladače grafické karty ze stránek NVIDIA

Potřebný software

v terminálu spustíme příkazy

sudo apt-get update
sudo apt-get build-dep ffmpeg vlc
sudo apt-get install build-essential libtool automake git-core xcb xlibs-dev libdrm-dev

Získáme zdrojové kódy

Poté co máme systém připravený, získáme zbytek zdrojáků které jsou potřeba a to sekvencí

mkdir ~/vdpau_proj
cd ~/vdpau_proj
wget http://www.splitted-desktop.com/~gbeauchesne/libva/libva-latest.tar.gz
tar xvf libva-latest.tar.gz
wget http://www.splitted-desktop.com/~gbeauchesne/vdpau-video/vdpau-video-latest.tar.gz
tar xvf vdpau-video-latest.tar.gz
git clone git://git.ffmpeg.org/ffmpeg/
cd ffmpeg
git clone git://git.ffmpeg.org/libswscale/
cd ..
git clone git://git.videolan.org/vlc.git

Kompilace

Máme-li všechny potřebné zdrojáky a knihovny, mužeme zkompilovat jednotlivé projekty a to sekvencí. Pokud máme vícejádrový processor můžeme si kompilaci urychlit změnou příkazu „make“ na „make -j pocetjader+1„, což u dvoujádra znamená „make -j 3

Pro zkompilování libva (v adresáři libva)

for file in debian/patches/*.patch;do patch -p1 < $file;done

autoreconf -f -i
./configure
make
sudo make install

Pro zkompilování VDPAU backendu

./configure
make
sudo make install

Malá přestávka od kompilací, teď spustíme příkaz

vainfo

Pokud výstup vypadá zhruba takto, tak je to dobré. Pokud nikoliv, tak pečlivě projdeme kompilační log a podíváme se jestli nebyly v průběhu překladu nějaké chyby a kompilační postup opakujeme.

libva: libva version 0.31.0-sds3
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /home/thresh/sandbox/lib/va/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.31
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA API - 0.5.2
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD

Pro kompilaci ffmpeg následující

sudo cp libavcodec/vaapi.h /usr/local/include/libavcodec/vaapi.h
./configure --enable-vdpau --enable-shared --disable-static --enable-debug
make
sudo make install

A na konec kompilace VLC playeru

mkdir build
cd build
../configure --enable-libva
make
sudo make install

Spuštění

Po spuštění nějakého 720p či 1080p ve VLC playeru by mělo jít vidět značné odlehčení procesoru.

Acer T230H

10. února jsem si koupil monitor Acer T230H jakožto ovládací prvek mého projektu. Ovšem po rozbalení jsem záhy zjistil, že jeho zprovozění nebude řekněme až tak „Plug & Play“. Pro to, aby nám naše X reagovaly na dotykový systém monitoru je třeba pár věcí udělat.

Stažení

sudo apt-get install xserver-xorg-dev

Kompilace HidTouchSuite

V adresáři kde jsme rozbalili archiv s HidTouchSuite…

patch -p1 < hidtouch.patch
./configure --prefix=/usr
make && sudo checkinstall

Příprava příštího bootu

Udev

sudo gedit /etc/udev/rules.d/99-touchscreen.rules

a zde přidáme řádek

SUBSYSTEM=="usb", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="usb/quanta_touch"

X.org

sudo gedit /etc/X11/xorg.conf

vložte

Section "InputDevice"
Identifier "Acer T230H"
Driver "hidtouch"
Option "SendCoreEvents" "true"
Option "ReportingMode" "Raw"
Option "Device" "/dev/usb/quanta_touch"
Option "PacketCount" "13"
Option "OpcodePressure" "852034"
Option "OpcodeX" "65584"
Option "OpcodeY" "65585"
Option "CalibrationModel" "1"
Option "CornerTopLeftX" "0"
Option "CornerTopLeftY" "0"
Option "CornerTopRightX" "1920"
Option "CornerTopRightY" "0"
Option "CornerBottomLeftX" "0"
Option "CornerBottomLeftY" "1080"
Option "CornerBottomRightX" "1920"
Option "CornerBottomRightY" "1080"
Option "CornerScreenWidth" "1920"
Option "CornerScreenHeight" "1080"
EndSection

a najděte sekci „ServerLayout“ a zde přidejte

InputDevice "Acer T230H" "SendCoreEvents"

u mě to vypadá asi takhle :

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Acer T230H" "SendCoreEvents"
    Option         "Xinerama" "0"
EndSection

a těď už jen ..

sudo service gdm restart

Už delší dobu mě láká (jakožto fandu linuxových systémů) vyzkoušet schopnosti konzole PlayStation 3 (dále jen PS3) s Linuxovým systémem.

1. Výběr distribuce

Důležité je abych vybral správný základ neboli vhodnou distribuci Linuxu. Od prvopočátků, kdy Sony uvedla PS3 a jeho podporu jiných operačních sytémů, se Linuxový svět pro PS3 točil jen kolem Yellow Dog Linux, který byl také značně propagován. Nicméně nejsem obeznámený s tím, jak tato distribuce funguje. Naštěstí se postupem času začaly zprovozňovat i další distribuce ( Fedora, Ubuntu, Gentoo). Problém byl s jádrem které je třeba k běhu systému, musí být totiž zkompilován pro architekturu processorů PowerPC (Cell BE) a také s ovladači (patchy) které bylo třeba do jádra zavést. Pokud bych si chtěl zkompilovat vlastní jádro mohl bych, od kernelu 2.6.24 je podpora PS3 plná a není třeba žádné patche aplikovat.

Zpět k výběru distribuce. Po všem bádání jsem zvolil variantu „psXubuntu“ 9.10 z webu psubuntu.com, jelikož je mi Ubuntu blízké a mám zkušenosti s Debian systémy. psUbuntu nabízí 3 varianty grafického systému :

  1. Gnome (Ubuntu)
  2. KDE 4.1 (Kubuntu)
  3. Xfce (Xubuntu)

Jelikož PS3 disponuje jen s 256 MB operační paměti (+256 MB grafické, ale o ní až později) , tak je podle mě nejvýhodnější Xfce varianta. Gnome je více oblíbená a dobře se s ní pracuje, ale KDE 4 je zase novejší, více EyeCandy, výkonově optimalizované (díky Qt4 ) a bohužel zkonzumuje dvojnásobek paměti, což by mělo za důsledek, že by systém vše zapisoval na swap a rychlost prostředí by byla nulová.

2. Příprava instalace

Potřebné věci

  • stažení ISO obrazu psXubuntu
  • petitboot (zde)
  • prázdný CD nebo DVD disk
  • USB Flash disk
  • USB Klávesnici  a myš
  • Externí disk pro zálohu herních dat z PS3

Příprava instalačních materiálů

Při vypalování ISO obrazu na disk jsem poprvé použil CD, ukázalo se, že PS3 čte raději DVD  (měl jsem problémy při instalaci), takže jsem obraz přepálil na DVD. Na flash disku jsem vytvořil adresáře/PS3/otheros/ do kterého jsem nakopíroval petitboot (otheros.bld).

Příprava PS3

Když jsem vše připravil, pustil jsem se do zálohy systému. Našel jsem si starý 40 GB ATA disk který jsem napojil přes USB převaděč do PS3. Musel jsem ho naformátovat na FAT32. Pro spuštění zálohovacího procesu stačilo jít do [Settings] > [System Settings] > [Backup Utility]. Mých 34 GB se zálohovalo kolem hodiny a půl.

Po záloze je třeba vytvořit volný oddíl pro Linux. Formátování jsem spustil v [Settings] > [System Settings] > [Format Utility] > [Custom] > [Allot 10GB to the Other OS] > [Quick Format].

3. Instalace

Instalace a spuštění zavaděče

Do PS3 jsem připojil USB Flash disk s připraveným petitboot a naistaloval jej [Settings] > [System Settings] > [Install Other OS]. Po naistalování zavaděče petitboot jsem zapnul spouštění zavaděče jako výchozí a to v [Settings] > [System Settings] > [Default System] > [Other OS]. Po přepnutí se mě systém zeptal zda-li chci konsoli restartovat, vložil jsem instalační disk a potvrdil restart.

PetitbootPo restartu mě uvítala obrazovka petitbootu. Petitboot se dá ovládat klávesnicí nebo sixaxis ovladačem, ale jen připojeným přes USB (ovládání je popsáno na oficiálním webu petitboot). Zvolil jsem si jej ovládat klávesnicí. Pro návrat do standartního PS3 sysstému se mačká DEL, ale já chtěl nainstalovat Linux takže jsem zvolil možnost install.

Po načtení instalátoru jsem zvolil češtinu jako jazyk systému, posléze instalátor detekoval rozložení klávesnice které používám. Pro kompletní instalaci je třeba mít připojení k Internetu a tak jsem připojil síťový kabel do PS3 a v instalátoru zvolil eth0. Pro nejlepší výsledek jsem se rozhodl systém vytvořit na oddílu typu ext4, což přineslo malé komplikace, protože petitboot nepodporuje zavádění z ext4, ale to nevadí, dá se to lehce obejít. Disk „ps3sd“ jsem rozdělil ručně, vytvořil jsem :

  • 100 MB bootovatelný oddíl typu ext2 který se připojuje na „/boot“
  • 10000 MB oddíl typu ext4 připojený na „/“
  • a zbytek jsem vytvořil jako swap

Oblast „ps3vram“ zatím nekonfiguruju, až nakonec v rámci optimalizací. Poté jsem zadal uživatelské jméno, heslo a instalace se spustila. Asi za hodinu instalace zkončila a zeptala se mě na čas, odpověď byla „Ano, UTC“.

První spuštění a optimalizace

Swap na vram

Jak jsem se již zmínil, PS3 rozhodně nemá operační paměť na rozdávání, ale co rozhodně má je dalších 256 MB paměti na GPU. Tato paměť se dá využít pro swap („alternativní ram“). A to následovně :

  • příkaz : sudo gedit /etc/modules
    • přidat řádek „ps3vram“
  • příkaz : sudo gedit /etc/rc.local
    • před řádek s „exit 0“ vložit řádky :
      • mkswap /dev/ps3vram
      • swapon -p 1 /dev/ps3vram

A pak už jen restartovat linux