Инструменты пользователя

Инструменты сайта


wiki:hydra-video
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
Последняя версия
wiki:hydra-video [2014/05/19 22:50] – [Хедеры ядра] maxx
Строка 1: Строка 1:
 +====== Аппаратное ускорение видео на Hydro/i.MX6 ======
 +//За основу взяты инструкции отсюда: [[http://boundarydevices.com/mx6-video-acceleration-raring-debian/]]//
  
 +На SD карту установим образ файловой системы Linaro-nano. Это файловая система, которая предоставляет только доступ через консоль виртуальную, либо по последовательному порту.
 +<code>
 +wget https://releases.linaro.org/13.08/ubuntu/raring-images/nano/linaro-raring-nano-20130826-474.tar.gz
 +</code>
 +
 +===== Установка необходимых компонент =====
 +Загружаем плату с Linaro-nano и устанавливаем необходимые компоненты.
 +
 +Убедимся, что ссылки репозитория обновлены
 +<code>
 +root@linaro-nano:~# apt-get update
 +</code>
 +Устанавливаем компилятор
 +<code>
 +root@linaro-nano:~# apt-get install build-essential
 +</code>
 +Теперь плагин Gstreamer:
 +<code>
 +root@linaro-nano:~# apt-get install libgstreamer-plugins-base0.10-dev
 +root@linaro-nano:~# apt-get build-dep gst-plugins-base0.10
 +</code>
 +===== Установка пакетов для 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 карту командой
 +<code>
 +sudo make ARCH=arm INSTALL_HDR_PATH=/media/rootfs/usr headers_install
 +</code>
 +  * Скачать и распаковать готовый архив с файлами заголовков:
 +<code>
 +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
 +</code>
 +==== Пакеты от Freescale ====
 +<code>
 +# 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
 +</code>
 +Во время установки необходимо согласится с условиями лицензии для каждого из пакетов. Для этого пролистайте соглашение до конца и печатаете букву "y".
 +<code>
 +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
 +</code>
 +==== Компиляция пакетов ====
 +Пакет firmware-imx надо просто скопировать в директорию /lib/firmware:
 +<code>
 +root@linaro-nano:~# cp -ravf firmware-imx-3.5.7-1.0.0/firmware/* /lib/firmware/
 +</code>
 +Пакет imx-lib имеет ошибку в библиотеке rng, поэтому пропустим его
 +<code>
 +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
 +</code>
 +Пакет fsl-alsa-plugins требует выполнения некоторых функций autotools перед компиляцией:
 +<code>
 +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
 +</code>
 +Пакеты libfslparser, libfslvpuwrap, и gst-fsl-plugins имеют скрипт autogen.sh:
 +<code>
 +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
 +</code>
 +==== Проверка ====
 +Для проверки аппаратного декодирования видео можно скачать фильм Sintel в качестве 1080p отсюда: [[http://www.sintel.org/download/]].
 +<code>
 +gplay  /mnt/Sintel.2010.1080p.mkv
 +</code>
wiki/hydra-video.txt · Последнее изменение: 2014/05/19 22:50 — maxx