====== Аппаратное ускорение видео на Hydro/i.MX6 ======
//За основу взяты инструкции отсюда: [[http://boundarydevices.com/mx6-video-acceleration-raring-debian/]]//
На SD карту установим образ файловой системы Linaro-nano. Это файловая система, которая предоставляет только доступ через консоль виртуальную, либо по последовательному порту.
wget https://releases.linaro.org/13.08/ubuntu/raring-images/nano/linaro-raring-nano-20130826-474.tar.gz
===== Установка необходимых компонент =====
Загружаем плату с Linaro-nano и устанавливаем необходимые компоненты.
Убедимся, что ссылки репозитория обновлены
root@linaro-nano:~# apt-get update
Устанавливаем компилятор
root@linaro-nano:~# apt-get install build-essential
Теперь плагин Gstreamer:
root@linaro-nano:~# apt-get install libgstreamer-plugins-base0.10-dev
root@linaro-nano:~# apt-get build-dep gst-plugins-base0.10
===== Установка пакетов для Gstreamer =====
Для компиляции Gstreamer необходимы следующие компоненты:
* Набор файлов заголовков ядра (хедеры)
* firmware-imx-3.5.7-1.0.0
* imx-lib-3.5.7-1.0.0
* fsl-alsa-plugins-3.5.7-1.0.0
* libfslcodec-3.5.7-1.0.0
* libfslparser-3.5.7-1.0.0
* libfslvpuwrap-3.5.7-1.0.0
* gst-fsl-plugins-3.5.7-1.0.0
==== Хедеры ядра ====
Некоторые пакеты используют аппаратно зависимые API и поэтому они ожидают файлы заголовков ядра в директории /usr/include.
Есть два способа, чтобы установить хедеры.
* Если вы уже [[hydra-kernel|компилировали ядро]], то можно установить хедеры на SD карту командой
sudo make ARCH=arm INSTALL_HDR_PATH=/media/rootfs/usr headers_install
* Скачать и распаковать готовый архив с файлами заголовков:
root@linaro-nano:~# wget http://commondatastorage.googleapis.com/boundarydevices.com/linux-headers-3.0.35-02829-gac24896_4.1.0.tar.gz
root@linaro-nano:~# tar zxvf linux-headers-3.0.35-02829-gac24896_4.1.0.tar.gz -C /usr
==== Пакеты от Freescale ====
# first, the open-source codec package:
root@linaro-nano:~# wget http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/gst-fsl-plugins-3.5.7-1.0.0.tar.gz
# then the restricted files
root@linaro-nano:~# for pkg in firmware-imx \
imx-lib \
fsl-alsa-plugins \
libfslcodec \
libfslparser \
libfslvpuwrap ; do \
wget http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/${pkg}-3.5.7-1.0.0.bin ; \
done
Во время установки необходимо согласится с условиями лицензии для каждого из пакетов. Для этого пролистайте соглашение до конца и печатаете букву "y".
root@linaro-nano:~# tar zxf gst-fsl-plugins-3.5.7-1.0.0.tar.gz
root@linaro-nano:~# for pkg in firmware-imx \
imx-lib \
fsl-alsa-plugins \
libfslcodec \
libfslparser \
libfslvpuwrap ; do \
sh ${pkg}-3.5.7-1.0.0.bin ; \
done
==== Компиляция пакетов ====
Пакет firmware-imx надо просто скопировать в директорию /lib/firmware:
root@linaro-nano:~# cp -ravf firmware-imx-3.5.7-1.0.0/firmware/* /lib/firmware/
Пакет imx-lib имеет ошибку в библиотеке rng, поэтому пропустим его
root@linaro-nano:~# cd imx-lib-3.5.7-1.0.0/
root@linaro-nano:~/imx-lib-3.5.7-1.0.0# rm -rf rng
root@linaro-nano:~/imx-lib-3.5.7-1.0.0# make PLATFORM=IMX6Q all && make PLATFORM=IMX6Q install
Пакет fsl-alsa-plugins требует выполнения некоторых функций autotools перед компиляцией:
root@linaro-nano:~# cd fsl-alsa-plugins-3.5.7-1.0.0/
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# aclocal && autoconf && automake --add-missing
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# ./configure --prefix=/usr
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# make all && make DESTDIR=/ install
Пакеты libfslparser, libfslvpuwrap, и gst-fsl-plugins имеют скрипт autogen.sh:
root@linaro-nano:~# cd libfslcodec-3.5.7-1.0.0
root@linaro-nano:~/libfslcodec-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslcodec-3.5.7-1.0.0# cd ../libfslparser-3.5.7-1.0.0
root@linaro-nano:~/libfslparser-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslparser-3.5.7-1.0.0# cd ../libfslvpuwrap-3.5.7-1.0.0
root@linaro-nano:~/libfslvpuwrap-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslvpuwrap-3.5.7-1.0.0# cd ../gst-fsl-plugins-3.5.7-1.0.0
root@linaro-nano:~/gst-fsl-plugins-3.5.7-1.0.0# ./autogen.sh PLATFORM=MX6 --prefix=/usr
root@linaro-nano:~/gst-fsl-plugins-3.5.7-1.0.0# make all && make DESTDIR=/ install
==== Проверка ====
Для проверки аппаратного декодирования видео можно скачать фильм Sintel в качестве 1080p отсюда: [[http://www.sintel.org/download/]].
gplay /mnt/Sintel.2010.1080p.mkv