Содержание
Аппаратное ускорение видео на 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.
Есть два способа, чтобы установить хедеры.
- Если вы уже компилировали ядро, то можно установить хедеры на 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