====== Аппаратное ускорение видео на 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