5 posts tagged

Kodi

Kodi 18 Mainline Linux AllWinner H3 на wayland

Тестировал на Armbian Bionic mainline kernel 4.14.y на имидже Orangepipc от armbian:
Armbian_5.65_Orangepipc_Ubuntu_bionic_next_4.14.78.img Armbian Link.

Kodi собран с опциями (про сборку kodi, распишу в отдельном посте)
-DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gles
патчи от jernejsk.

ставил на weston
Weston – это «эталонный» графический сервер от wayland который служит как пример реализации + для всяких тестов, в реальном DE (gnome, kde) он не используется

Wayland работает непосредственно поверх ядра, и позволяет клиентским приложениям осуществлять рендеринг напрямую без использования промежуточного слоя. В Wayland используется прямой рендеринг через OpenGL или OpenGL ES.

Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY
вывод команды uname -a

Linux orangepipc 4.14.78-sunxi #412 SMP Fri Oct 26 11:37:04 CEST 2018 armv7l armv7l armv7l GNU/Linux

для компиляции модуля mali нужны хидеры ядра, хидеры есть в бета версии armbian,
переключаемся на ночную версию:

sed -i 's/apt.armbian.com/beta.armbian.com/' /etc/apt/sources.list.d/armbian.list
apt update 
apt list --upgradable
apt -y upgrade
reboot

после перезагрузки ставим хидеры ядра:

apt install -y linux-headers-next-sunxi

собираем модуль mali.ko (просто скопируйте код, и вставьте в терминал )
исходники пропатчены, patch.

wget https://ua3nbw.ru/files/DX910-SW-99002-r9p0-01rel0.tgz
tar -xvf DX910-SW-99002-r9p0-01rel0.tgz
cd $HOME/DX910-SW-99002-r9p0-01rel0/driver/src/devicedrv/mali
export CROSS_COMPILE=arm-linux-gnueabihf-
export KDIR=/lib/modules/$(uname -r)/build

make MALI_PLATFORM_FILES=platform/sunxi/sunxi.c \
    EXTRA_CFLAGS="-DCONFIG_MALI_DVFS \
    -DMALI_FAKE_PLATFORM_DEVICE=1 \
    -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH" \
    CONFIG_MALI400=m USING_DVFS=1 

mkdir -p /lib/modules/$(uname -r)/extra
cp -PR mali.ko /lib/modules/$(uname -r)/extra/mali.ko

depmod
modprobe mali

вывод команды ls -l /dev/mali

crw------- 1 root root 10, 57 Oct 28 15:08 /dev/mali

вывод команды lsmod | grep mali

mali 475136 0

ставим блобы (просто скопируйте код, и вставьте в терминал )

cd
wget https://ua3nbw.ru/files/mali-blobs.tgz
tar -xvf mali-blobs.tgz
cd $HOME/mali-blobs
    cp -av include/wayland/* /usr/include
  mkdir -p /usr/lib/pkgconfig
    cp -PRv pkgconfig/*.pc /usr/lib/pkgconfig

  MALI="r6p2/arm/wayland/libMali.so"
  mkdir -p /usr/lib/mali
    cp -v $MALI /usr/lib/mali

    for lib in libEGL.so \
               libEGL.so.1 \
               libEGL.so.1.4 \
               libGLESv2.so \
               libGLESv2.so.2 \
               libGLESv2.so.2.0 \
               libgbm.so \
               libgbm.so.1; do
      ln -sfv libMali.so /usr/lib/mali/${lib}
        
    done

echo "/usr/lib/mali" > /etc/ld.so.conf.d/1-mali.conf
ldconfig

ставим необходимые пакеты

apt install -y xwayland  weston libavahi-client3  libbluray2  libcec4 \
 liblirc-client0 libmicrohttpd12  libnfs11  libpulse0 libpython2.7 \
 libsmbclient libxslt1.1 libass9 libcdio17  libva2 libvpx5 libopencore-amrwb0 \
 libopencore-amrnb0 libtheora0 libvo-amrwbenc0 libx264-152 libx265-146 \
 libxvidcore4 libva-drm2 libvdpau1 libfstrcmp0 libpcrecpp0v5 \
 libtag1v5-vanilla libtinyxml2.6.2v5 libva-x11-2

ставим пакет kodi

wget https://ua3nbw.ru/files/deb/kodi_18.0.3_armhf.deb
dpkg -i kodi_18.0.3_armhf.deb

для автозапуска weston-launch создаём файл

nano /lib/systemd/system/weston-launch.service

копируем и вставляем в nano следующий код.

[Unit]
Description=Weston Wayland compositor startup
RequiresMountsFor=/run

[Service]
User=root
EnvironmentFile=-/etc/default/weston
Environment="XDG_RUNTIME_DIR=/run/user/1000"
Environment="DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/dbus/user_bus_socket"
ExecStartPre=/usr/bin/sudo /bin/mkdir -p /run/user/1000/dbus
ExecStartPre=/usr/bin/sudo /bin/chown -R root:root /run/user/1000/dbus
ExecStartPre=/bin/chmod -R 0700 /run/user/1000
ExecStart=/usr/bin/sudo -E -- /bin/openvt -v -w -s -- su root -l -c "XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/weston-launch -- $OPTARGS 2>~/.weston-errors"

[Install]
WantedBy=multi-user.target

Сохраняем изменения в файле (ctrl + o) и закрываем файл (ctrl + x).
включение и запуск сервиса

systemctl enable weston-launch.service
systemctl start weston-launch.service

вывод команды systemctl status weston-launch.service


● weston-launch.service – Weston Wayland compositor startup
Loaded: loaded (/lib/systemd/system/weston-launch.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-10-18 11:48:29 UTC; 2s ago
Process: 1869 ExecStartPre=/bin/chmod -R 0700 /run/user/1000 (code=exited, status=0/SUCCESS)
Process: 1867 ExecStartPre=/usr/bin/sudo /bin/chown -R root:root /run/user/1000/dbus (code=exited, sta
Process: 1865 ExecStartPre=/usr/bin/sudo /bin/mkdir -p /run/user/1000/dbus (code=exited, status=0/SUCC
Main PID: 1870 (sudo)
Tasks: 2 (limit: 2225)
CGroup: /system.slice/weston-launch.service
├─1870 /usr/bin/sudo -E -- /bin/openvt -v -w -s -- su root -l -c XDG_RUNTIME_DIR=/run/user/10
└─1871 /bin/openvt -v -w -s -- su root -l -c XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/weston-l


если

lsmod | grep mali

выводит:
mali 475136 5
идём дальше, драйвер (модуль) mali, успешно загрузился и работает.

в левом углу weston иконка виртуального терминала
запускаем виртуальный терминал и из терминала запускаем kodi

kodi

Кому лень повторять эту ахинею, вот готовый образ для PC. img для OrangePI-PC
pass root:orangepi
user ua3nbw:orangepi
Audio на AV выход:

amixer -c 0 -q set "Line Out"  100%+ unmute
amixer -c 0 -q set "DAC"  100%+ unmute
speaker-test -twav -c2   #тест на аудио выход

Прикрыл комментарии в блоге, атака спамеров, на вопросы могу ответить на форуме orangepi.pp.ua, слежу за этой темой : mali на mainline ядре
иногда просматриваю Kodi vs mpv Video Player on Armbian

Вы должны понимать, что Weston не предназначен для повседневного использования,
а используется исключительно для тестов, гашение экрана каждые 5 минут
можно отключить добавив параметр idle-time=0 в секцию [core] в файле .config/weston.ini
Автозапуск kodi: в секцию [shell] добавить client=/usr/local/bin/kodi
weston.ini man page
Из Weston можно выйти по Ctrl+Alt+Backspace.
Про audio тут отвечал модифицировать .asoundrc

acestream: на данной сборке не проверял.
Инструкция по развертыванию acestream – acestream и TTV без aceproxy
iptvsimple тут: pvr.iptvsimple

Oct 18   Kodi   Mainline   Mali   OrangePI PC

Скрипты для запуска внешнего плеера Smplayer и mpv в Kodi

SMPlayer — кроссплатформенный медиаплеер с открытым исходным кодом, распространяемый по лицензии GNU GPL. Программа написана на C++ с использованием библиотеки Qt и представляет собой графическую оболочку для MPV и MPlayer.

Для Kodi использую Smplayer и MPV как внешние плеера, работают с плагином IPTV Simple Client, YouTube, ну и остальное проигрывают.
Ставим пакет Kodi 18 alpha, с поста Kodi 18 alpha and mpv with Hardware Decoding

создаём файл /root/.kodi/userdata/playercorefactory.xml:

<playercorefactory>
 <players>
  <player name="pvr_mpv" type="ExternalPlayer" audio="false" video="true">
  <filename>/root/pvr_mpv.sh</filename> 
     <args>"{1}"</args>	 
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
 </player>

  <player name="smplayer" type="ExternalPlayer" audio="false" video="true">
  <filename>/root/smplayer.sh</filename> 
     <args>"{1}"</args>	 
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
 </player>
</players>

 <rules action="prepend">
   <rule protocols="pvr" player="pvr_mpv" />
   <rule internetstream="true" player="smplayer" />
   <rule video="true"  player="smplayer"/>
  
 </rules>
</playercorefactory>

при воспроизведении video и YouTube запускается скрипт smplayer.sh
Smplayer помнит где окончился просмотр видео.
файл /root/smplayer.sh :

#!/bin/sh
DISPLAY=:0 smplayer -mpcgui -ontop $1;

при воспроизведении IPTV запускается скрипт pvr_mpv.sh
Для IPTV использую mpv плеер, без оболочки Smplayer, переключение программ быстрее, зависание при переключечении с использованиием acestream минимальна, по клавише F5 моментально выходит в оболочку kodi, при проподании интернета не тянет на себя одеяло.
файл /root/pvr_mpv.sh :

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DB_FILE=~/.kodi/userdata/Database/TV30.db
IPTV_CACHE=~/.kodi/userdata/addon_data/pvr.iptvsimple/iptv.m3u.cache

UNIQID_PVR=$(echo "$1" | grep -o '[0-9]*');
# UNIQID_PVR соответствует записи iUniqueId в таблице channels базы TV30.db


NSTR_PVR=$(grep -n "$(echo "SELECT sChannelName FROM channels WHERE iUniqueId = $UNIQID_PVR;" | sqlite3 $DB_FILE)" $IPTV_CACHE | cut -d: -f1);
# NSTR_PVR это номер строки в файле iptv.m3u.cache, соответствует имени канала (sChannelName) в таблице channels базы TV30.db


UPDATE_PVR=$(echo "UPDATE channels SET iLastWatched =  `date +%s` WHERE iUniqueId = $UNIQID_PVR;" | sqlite3 $DB_FILE);
echo $UPDATE_PVR # Пишем в базу (TV30.db) время начала просмотра  канала (iLastWatched)

#DISPLAY=:0 smplayer -mpcgui -ontop $(awk "NR==$NSTR_PVR+1 { print}" $IPTV_CACHE);
DISPLAY=:0 mpv --vo=vdpau --hwdec=vdpau --hwdec-codecs=all --fs $(awk "NR==$NSTR_PVR+1 { print}" $IPTV_CACHE);

права

chmod +x /root/smplayer.sh
chmod +x /root/pvr_mpv.sh

kodi при запуске Smplayer и MPV не отдаёт фокус. Решение вешаем на клавишу F5, killall player
файл /root/.kodi/userdata/keymaps/keyboard.xml

<?xml version="1.0" encoding="UTF-8"?>
<keymap><global><keyboard><f5>XBMC.RunScript(special://envhome/killall_player.py)</f5></keyboard></global></keymap>

файл /root/killall_player.py

import os
os.system('killall smplayer')
os.system('killall mpv')

сборка smplayer:

apt install libqtdbus4 libqtscript4-gui  qt4-qmake libqt4-dev
sudo apt-get update
sudo apt-get install smplayer
sudo apt-get build-dep smplayer
wget http://downloads.sourceforge.net/smplayer/smplayer-17.5.0.tar.bz2
tar jxvf smplayer-17.5.0.tar.bz2
cd smplayer-17.5.0/
./create_deb.sh

пока не работает CEC , пульт тоже не использовал.

При воспроизведении каналов HD IPTV Simple Client с acestream Loadaverage примерно 0.7-1.9

root@orangepipc:~# echo '%CPU %MEM   PID COMMAND' && ps hgaxo %cpu,%mem,pid,comm | sort -nrk1 | head -n 10
%CPU %MEM   PID COMMAND
45.5 10.6  1137 kodi.bin
34.7  8.5   998 python
25.1  5.1  5142 mpv
 2.9  0.0    69 cfinteractive
 2.7  1.4   775 Xorg
 2.2  0.1  4431 htop
 0.4  0.0    73 kworker/0:2
 0.3  0.3     1 systemd
 0.3  0.0    75 mmcqd/0
 0.2  0.0  2836 kworker/u:1

CPU temp: 47°C-53°C (с миниатюрным наклееным радиатором)

2017   armbian   Kodi   Smplayer

Kodi 18 alpha на OrangePI PC

Без особых проблем собрал пакет «Kodi 18 Leia» на orange pi pc с поддержкой OpenGL ES 2.0.
ffmpeg поддерживает h.265 и h.265 video codec, но для коди это фиалетово, правда можно подключить внешние плеера , у меня работали mplayer и mpv. На Raspberry Pi, тоже используют с kodi внешний плеер, правда все плеера используют исходники ffmpeg.

По сравнению с Kodi 17.1-Krypton, интерфейс у альфы «Kodi 18 Leia» показался полегче . Ну ещё был интерес вставить “ simple PVR tv addon” , ну и звук поправить. после установки аудио идет с HDMI разъёма. CPU temp показывает корректно и т. д. патч от jernej для сборки kodi17 сработал.

Устанавливаем Armbian Ubuntu Server OrangePI PC Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img

Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY .
Если вставили карту, первый раз после записи имиджа,
создайте пароль и нового пользователя, перезагрузитесь и подождите несколько минут для снятия lock.
Немного упростил установку, можно поставить на карту 2Gb:

install required libraries :

apt-get update 
apt -y install mesa-utils libx11-dev libxext-dev xutils-dev libdrm-dev x11proto-xf86dri-dev libxfixes-dev libpcrecpp0v5 libtinyxml2.6.2v5 libpython2.7 libyajl2 libtag1v5-vanilla liblcms2-2 libmicrohttpd10 libssh-4 libxslt1.1 libsmbclient libpulse0 libvdpau1 libva1 libva-drm1 libva-x11-1 libump libdri2-1 libcurl3 x11proto-dri2-dev libfreetype6  xorg-dev xutils-dev libltdl-dev libtool libcdio13

install mali driver и Kodi 18 alfa

mkdir /tmp/kodi_install && cd /tmp/kodi_install
wget http://ua3nbw.ru/files/deb/libmali_f.tar.gz
tar -xzvf libmali_f.tar.gz -C /
wget http://ua3nbw.ru/files/deb/libk_201704072156-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/kodi_201704072156-git-1_armhf.deb
dpkg -i *.deb

если монитор или телевизор с поддержкой 1080, можно:

h3disp -m 1080p60

и reboot

reboot

ну и запуск:

echo 0 > /sys/class/graphics/fbcon/cursor_blink
kodi
Собирал с опциями:
cmake ..  -DENABLE_OPENGL=OFF -DENABLE_X11=OFF -DENABLE_OPENGLES=ON -DENABLE_VAAPI=OFF -DENABLE_VDPAU=OFF -DENABLE_CEC=OFF -DCPU=cortex-a7 -DWITH_ARCH=arm -DCORE_SYSTEM_NAME=linux  -DLIRC_DEVICE=/run/lirc/lircd

переключить аудио с HDMI на AV можно с помощью файла .asoundrc в директории root.
внешний плеер подключается так : http://kodi.wiki/view/external%20players
пример файла playercorefactory.xml для mpv

<playercorefactory>
<players>
<player name="mpv" type="ExternalPlayer" video="true">
<filename>mpv</filename>
<args>--vo=vdpau --hwdec=vdpau --hwdec-codecs=all --fs --sub-auto=all</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules action="prepend">
<rule video="true" player="mpv"/>
</rules>
</playercorefactory>

Ложка дегтя к внешним плеерам, mpv с fbdev не работает (с X неплохо работает), но есть патч для mpv на гите последнее обновление 15 года, для новых версий этот патч не поддерживается. ffmpay тоже в сторонке, mplayer работает, но внутренний плеер kodi, не хуже.
Попробую mpv c simple directMedia layer. Склоняюсь использовать софт, не применяя крайне необходимых патчей. У jernej, ну очень много патчей под определенную версию. Естественно при выходе , допустим свежей и обновленной версии kodi, снова тема на примерно 200 страниц http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=648&extra=page%3D1.

Да в пост добавлю: имидж alfa( как есть, так и есть ) Kodi 18 alfa на OrangePI PC
https://drive.google.com/file/d/0B3COWn8ZF1MBN05lZ28wX1dnWW8/view?usp=sharing
pass:orangepi

2017   armbian   Kodi   OrangePI PC

Kodi 17.1-Krypton с OpenGL ES 2.0 на Orange Pi

Продолжение поста Компиляция KODI на OrangePi пакет был собран 31 марта 17 года. 1 апреля повторить собрать kodi не удалось: сайт kodi.tv не работал ну и репо тоже, были плановые работы. У админов сайта своеобразное чувство юмора. kodi не пираты, просто есть пиратские плагины. Это сутки красовалось на сайте kodi.tv :

Делюсь первым пакетом Kodi 17.1-Krypton с OpenGL ES 2.0 для Allwinner H3
Это всё тестировал на дату публикации поста, на OrangePiPC с картой на 4 Gb.

Устанавливаем Armbian Ubuntu Server Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img
и кучку необходимых пакетов
Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY . install required libraries :

apt-get update && apt-get upgrade -y
apt -y install mesa-utils libx11-dev libxext-dev xutils-dev libdrm-dev x11proto-xf86dri-dev libxfixes-dev libpcrecpp0v5 libtinyxml2.6.2v5 libpython2.7 libyajl2 libtag1v5-vanilla liblcms2-2 libmicrohttpd10 libssh-4 libxslt1.1 libsmbclient libpulse0 libvdpau1 libva1 libva-drm1 libva-x11-1 libump libdri2-1 libcurl3 x11proto-dri2-dev libfreetype6  xorg-dev xutils-dev libltdl-dev libtool

install mali driver

mkdir /tmp/kodi_install && cd /tmp/kodi_install
wget http://ua3nbw.ru/files/deb/libmali.tar.gz
tar -xzvf libmali.tar.gz -C /

Cобираем драйвер mali с EGL_TYPE=framebuffer :

git clone https://github.com/linux-sunxi/sunxi-mali 
cd sunxi-mali                                                                   
git submodule init                                                              
git submodule update                                                            
git pull                                                                        
wget http://pastebin.com/raw.php?i=hHKVQfrh -O ./include/GLES2/gl2.h            
wget http://pastebin.com/raw.php?i=ShQXc6jy -O ./include/GLES2/gl2ext.h   
make config VERSION=r3p0 ABI=armhf EGL_TYPE=framebuffer                                             
mkdir /usr/lib/mali                                                             
echo "/usr/lib/mali" > /etc/ld.so.conf.d/1-mali.conf                            
make -C include install                                                         
make -C lib/mali prefix=/usr libdir='$(prefix)/lib/mali/' install

install helper libraries + Kodi 17.1 :

wget http://ua3nbw.ru/files/deb/libdri2_201703240300-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/libump_201703240301-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/xf86-video-fbturbo_201703240302-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/kodi_201703311126-git-1_armhf.deb
dpkg -i *.deb
reboot

ну и запуск:

echo 0 > /sys/class/graphics/fbcon/cursor_blink
kodi

Естественно просто чистый kodi, аддоны и русский язык ставим сами.

Скриншот вебморды:

2017   armbian   Kodi   Ubuntu

Компиляция KODI на OrangePi

Были предприняты попытки сборки Kodi на OrangePi H3 из исходников. Цель была собрать kodi, естественно на первом этапе без установки драйверов и патчей. На “Legacy 3.4.113 Ubuntu Xenial Desktop” удалось собрать и поглазеть на интерфейс “Kodi 18 Leia” – ветка мастер. Также собирается “Kodi 17 Krypton”. На “Legacy 3.4.113 Debian Jessie” пока только смог собрать “Kodi 16.1 Jarvis”.
“Leia” собирается, как и “Krypton” c помощью cmake, ну часов 5-8, все ядра загружаются под завязку, пришлось колхозить вентилятор. Ну и при запуске только интерфейс kodi без драйверов грузит H3 на 100%.
Логичен вопрос, а зачем это надо? Отвечаю – хобби такое.
На “Ubuntu Xenial Desktop” установить kodi можно из репозитария

apt install kodi

.
Kodi 17.1-Krypton с OpenGL ES 2.0 на Orange Pi

2017   armbian   Kodi