Автор Тема: mali на mainline ядре  (Прочитано 4022 раз)

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #30 : Август 17, 2018, 08:53:56 pm »
и повторить все.
OK, сборка прошла ... с каким-то warning ... но это не важно...
Некоторые уточняющие вопросы по ходу:
olej@orangepione:~/sunxi-mali$ ls -l
total 320
-rwxr-xr-x 1 olej olej   1873 Aug 16 19:25 build.sh
-rw-r--r-- 1 olej olej 292864 Aug 17 17:45 mali.ko
drwxr-xr-x 5 olej olej   4096 Aug 16 19:25 patches
drwxr-xr-x 5 olej olej   4096 Aug 16 19:25 r6p0
drwxr-xr-x 5 olej olej   4096 Aug 16 19:25 r6p2
drwxr-xr-x 5 olej olej   4096 Aug 16 19:25 r8p1
-rw-r--r-- 1 olej olej   2735 Aug 16 19:25 README.md
-rw-r--r-- 1 olej olej    949 Aug 16 19:25 travis-base.yml
-rwxr-xr-x 1 olej olej   1269 Aug 16 19:25 travis.py
Что это за варианты: r6p0, r6p2, r6p1 ?
Почему мы используем "./build.sh -r r6p2 -b" - именно r6p2 ?
из нового - вчера завел mali на mainline ядре - шестеренки крутятся с ускорением.
После установки поддержки GPU можно как-то проверить и сравнить производительность без и с?

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #31 : Август 17, 2018, 09:30:33 pm »
- натравливаем приоритет ldconfig на mali, для этого в начало файла /etc/ld.so.conf добавляем строку
/usr/lib/mali/
- обновляем информацию ldconfig
ldconfig
По тому, как это сделано в Armbian (/etc) это место правильнее будет, наверное, так:
root@orangepione:/etc/ld.so.conf.d# pwd
/etc/ld.so.conf.d

root@orangepione:/etc/ld.so.conf.d# touch mali.conf
Вписываем туда эту строку...
root@orangepione:/etc/ld.so.conf.d# cat mali.conf
/usr/lib/mali/
root@orangepione:/etc/ld.so.conf.d# ldconfig
olej@orangepione:~$ /sbin/ldconfig -p | grep mali
    libMali.so (libc6,hard-float) => /usr/lib/mali/libMali.so
    libGLESv2.so.2.0 (libc6,hard-float) => /usr/lib/mali/libGLESv2.so.2.0
    libGLESv2.so.2 (libc6,hard-float) => /usr/lib/mali/libGLESv2.so.2
    libGLESv2.so (libc6,hard-float) => /usr/lib/mali/libGLESv2.so
    libGLESv1_CM.so.1.1 (libc6,hard-float) => /usr/lib/mali/libGLESv1_CM.so.1.1
    libGLESv1_CM.so.1 (libc6,hard-float) => /usr/lib/mali/libGLESv1_CM.so.1
    libGLESv1_CM.so (libc6,hard-float) => /usr/lib/mali/libGLESv1_CM.so
    libEGL.so.1.4 (libc6,hard-float) => /usr/lib/mali/libEGL.so.1.4
    libEGL.so.1 (libc6,hard-float) => /usr/lib/mali/libEGL.so.1
    libEGL.so (libc6,hard-float) => /usr/lib/mali/libEGL.so

Но это всё мелочи...
Дошёл до этого места и сшибся:
- устанавливаем видео драйвер для xorg:
apt install xorg-video-armsoc-sunxi
olej@orangepione:~$ sudo apt install xorg-video-armsoc-sunxi
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package xorg-video-armsoc-sunxi
Специально перепроверил:
olej@orangepione:~$ aptitude search xorg-video-armsoc-sunxi
olej@orangepione:~$
Нужно, наверное, что то из репозиториев добавлять, прописывать в /etc/apt/sources.list 
Покажите свой /etc/apt/sources.list

P.S. Может вот так?
olej@orangepione:~$ aptitude search xorg-video-armsoc-*
p   xserver-xorg-video-armsoc-sun4i                                        - X.Org X server -- ARM SoC display driver for Allwinner DRM                       
« Последнее редактирование: Август 18, 2018, 12:05:07 pm от Olej »

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #32 : Август 17, 2018, 10:03:21 pm »
- пробуем иксы:
xinit
если все успешно, то уже в терминале в иксах проверяем графику:
Странно, что xinit захотел стартовать только под root...
Графика стартовала, на консоли 2, X-терминал прорисовался ... но только клавиатура в этом X-терминале отбита намертво, не чувствует, при том что по Ctrl+Alt+3, Ctrl+Alt+4, ... - переключаюсь на другие текстовые консоли и там спокойно - ввод.

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #33 : Август 18, 2018, 10:37:07 am »
После загрузки всего этого хозяйства:
olej@orangepione:~$ dmesg | grep mali
[   11.231690] mali: loading out-of-tree module taints kernel.
[   11.258112] platform mali-utgard: assigned reserved memory node linux,cma
[   11.260921] Allwinner sunXi mali glue initialized

olej@orangepione:~$ ls -l /dev/mali
crw------- 1 root root 10, 57 Aug 17 21:17 /dev/mali
« Последнее редактирование: Август 18, 2018, 11:46:57 am от Olej »

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #34 : Август 18, 2018, 11:43:27 am »
- качаем блобы библиотек мали и ставим их (тут поясню, для x11 свои, для wayland свои, ну и fb тоже отдельные. Я делал для иксов):
cd ..
git clone https://github.com/bootlin/mali-blobs.git
mkdir /usr/lib/mali
cp -a mali-blobs/r6p2/arm/x11_dma_buf/lib* /usr/lib/mali/
По вот этому месту можно чуть подробнее?

1. Насколько я понимаю, BLOB - Binary Linked OBject (объект двоичной компоновки) ...
Означает ли это что они не open source? ... или нет?
На GIT оно обозвано как:
Цитировать
Mali OpenGL ES userspace libraries for Allwinner SoCs

- качаем блобы библиотек мали и ставим их (тут поясню, для x11 свои, для wayland свои, ну и fb тоже отдельные. Я делал для иксов):
2. ну с X11 понятно ... с Wayland - тоже, более менее, по знакомству с Fedora 27/28 и по проблемам VirtualBox - это такая гадость, которая тулится на замену X11... ;)
А про fb? кто такой?... ссылочку какую? :-[ (т.е. что это frame bufer понятно ... но какое он имеет отношение к графике?)

« Последнее редактирование: Август 18, 2018, 12:06:35 pm от Olej »

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #35 : Август 18, 2018, 12:54:48 pm »
После загрузки всего этого хозяйства:
При старте xinit + и только как root:
root@orangepione:~# xinit


X.Org X Server 1.19.2
Release Date: 2017-03-02
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.9.0-4-armmp-lpae armv7l Debian
Current Operating System: Linux orangepione 4.14.18-sunxi #24 SMP Fri Feb 9 16:24:32 CET 2018 armv7l
Kernel command line: root=UUID=a769471e-a787-40d3-8298-d31c195f1bb9 rootwait rootfstype=ext4 console=tty1 console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 loglevel=1 ubootpart=67b5d560-01 ubootsource=mmc usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u "drm_kms_helper.drm_fbdev_overalloc=300"  sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory swapaccount=1
Build Date: 16 October 2017  09:48:39AM
xorg-server 2:1.19.2-1+deb9u2 (https://www.debian.org/support)
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Aug 18 09:28:40 2018
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
После чего на консоли 2 (Ctrl+Alt+2) открывается окно X-терминала (типичное по виду), но нет ввода с клавиатуры, такое впечатление, что окно не получает фокус, курсор - не закрашенный маркер...
Но при том по Ctrl+Alt+3, Ctrl+Alt+4 ... происходит переключение консолей, login там и т д.

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #36 : Август 18, 2018, 12:57:57 pm »
После чего на консоли 2 (Ctrl+Alt+2) открывается окно X-терминала (типичное по виду), но нет ввода с клавиатуры, такое впечатление, что окно не получает фокус, курсор - не закрашенный маркер...
Но при том по Ctrl+Alt+3, Ctrl+Alt+4 ... происходит переключение консолей, login там и т д.
И в dmesg ничего особо подозрительного, посоле xinit, не вижу:
olej@orangepione:~$ dmesg | tail -n50
[    9.301639] systemd[1]: Created slice System Slice.
[    9.332715] systemd[1]: Created slice system-getty.slice.
[    9.370522] systemd[1]: Mounting Debug File System...
[    9.401192] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    9.686083] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
[   10.553487] Adding 131068k swap on /var/swap.  Priority:-2 extents:2 across:139260k SSFS
[   11.206314] thermal thermal_zone0: failed to read out thermal zone (-110)
[   11.231690] mali: loading out-of-tree module taints kernel.
[   11.258112] platform mali-utgard: assigned reserved memory node linux,cma
[   11.260921] Allwinner sunXi mali glue initialized
[   11.263731] Mali:
[   11.263742] Found Mali GPU Mali-400 MP r1p1
[   11.265091] Mali:
[   11.265100] 2+0 PP cores initialized
[   11.265766] Mali:
[   11.265772] Mali device driver loaded
[   11.292217] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   11.292223] [drm] No driver support for vblank timestamp query.
[   11.302245] sun4i-drm display-engine: bound 1100000.mixer (ops sun8i_mixer_platform_driver_exit [sun8i_mixer])
[   11.302574] sun4i-drm display-engine: No panel or bridge found... RGB output disabled
[   11.302592] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops sun4i_tcon_platform_driver_exit [sun4i_tcon])
[   11.440118] sun8i-dw-hdmi 1ee0000.hdmi: Detected HDMI TX controller v1.32a with HDCP (sun8i_dw_hdmi_phy)
[   11.441527] sun8i-dw-hdmi 1ee0000.hdmi: registered DesignWare HDMI I2C bus driver
[   11.441967] sun4i-drm display-engine: bound 1ee0000.hdmi (ops sun8i_dw_hdmi_ops [sun8i_dw_hdmi])
[   11.901493] Console: switching to colour frame buffer device 128x48
[   11.918476] sun4i-drm display-engine: fb0:  frame buffer device
[   11.919769] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[   11.989976] Registered IR keymap rc-cec
[   11.990323] rc rc0: RC for dw_hdmi as /devices/platform/soc/1ee0000.hdmi/rc/rc0
[   11.990686] input: RC for dw_hdmi as /devices/platform/soc/1ee0000.hdmi/rc/rc0/input2
[   11.998980] asoc-simple-card sound: i2s-hifi <-> 1c22800.i2s mapping ok
[   12.249993] thermal thermal_zone0: failed to read out thermal zone (-110)
[   12.454043] systemd-journald[354]: Received request to flush runtime journal from PID 1
[   12.692867] Generic PHY 0.1:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0.1:01, irq=POLL)
[   12.696143] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[   12.696157] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[   12.696418] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   13.290033] thermal thermal_zone0: failed to read out thermal zone (-110)
[   14.800803] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   14.800848] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Неоднократно упоминается драйвер  Mali ... без всяких ошибок ...

Нужна подсказка зала!!! ;D

Оффлайн ua3nbw

Re: mali на mainline ядре
« Ответ #37 : Август 19, 2018, 06:46:04 pm »
Всё IMHO:
mali драйвер бесполезен без библиотек EGL / OpenGL / OpenGL ES

цепь должна быть такой: PlayWithShadersProgram -> mali-blobs (implementing EGL & OpenGL ES) -> xserver -> armsoc -> mali-driver -> sun4i-drm -> hardware
у меня пока тут затык: xserver -> armsoc
в Xorg.0.log ошибка:

[   118.078] (EE) _CREATE_GEM({height: 1024, width: 1280, bpp: 32 buf_type: 0x0}) failed. errno: 22 - Invalid argument
[   118.078] (EE) ARMSOC(0): ERROR: Cannot allocate scanout buffer

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #38 : Август 19, 2018, 07:21:51 pm »
цепь должна быть такой: PlayWithShadersProgram -> mali-blobs (implementing EGL & OpenGL ES) -> xserver -> armsoc -> mali-driver -> sun4i-drm -> hardware
у меня пока тут затык: xserver -> armsoc
в Xorg.0.log ошибка:

[   118.078] (EE) _CREATE_GEM({height: 1024, width: 1280, bpp: 32 buf_type: 0x0}) failed. errno: 22 - Invalid argument
[   118.078] (EE) ARMSOC(0): ERROR: Cannot allocate scanout buffer
Кого вы в этой цепочке называете: armsoc?

Посмотрел в своём Xorg.0.log (раньше не заметил):
[  9044.701] (EE) AIGLX error: dlopen of /usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so failed (/usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so: cannot open shared object file: No such file or directory)
[  9044.701] (EE) AIGLX: reverting to software rendering

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #39 : Август 19, 2018, 07:43:55 pm »
- устанавливаем видео драйвер для xorg:
apt install xorg-video-armsoc-sunxi
Когда вы установили драйвер для Xorg ... такой или не такой ... его использование никак не надо дополнительно прописывать где-то в конфигах Xorg?

Оффлайн ua3nbw

Re: mali на mainline ядре
« Ответ #40 : Август 19, 2018, 08:05:33 pm »
Кого вы в этой цепочке называете: armsoc?

https://github.com/mripard/xf86-video-armsoc
ставится после https://github.com/robclark/libdri2

в папке /etc/X11/  у меня файл xorg.conf


Section "Device"
Identifier "ARMSOC DRM driver"
Driver "armsoc"
Option "DRI2" "true"
# Option "fbdev" "/dev/fb0"
# Option  "Debug" "true"
# Option  "UMP_LOCK" "false"
EndSection

Section "Screen"
Identifier "DefaultScreen"
Device      "ARMSOC DRM driver"
DefaultDepth 24
EndSection


Оффлайн Olej

Re: mali на mainline ядре
« Ответ #41 : Август 19, 2018, 08:10:47 pm »
Кого вы в этой цепочке называете: armsoc?

https://github.com/mripard/xf86-video-armsoc
ставится после https://github.com/robclark/libdri2
Я пытался выше воспроизвести ход установки от Lipton, пошагово прорисованный вот здесь рядом: http://orangepi.pp.ua/index.php/topic,837.msg6466.html#msg6466 ... и якобы а). новый и б). успешный.
Вы говорите о каких-то совсем других вещах.

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #42 : Август 19, 2018, 08:19:30 pm »
в папке /etc/X11/  у меня файл xorg.conf

Section "Device"
Identifier "ARMSOC DRM driver"
Driver "armsoc"
Option "DRI2" "true"
# Option "fbdev" "/dev/fb0"
# Option  "Debug" "true"
# Option  "UMP_LOCK" "false"
EndSection

Section "Screen"
Identifier "DefaultScreen"
Device      "ARMSOC DRM driver"
DefaultDepth 24
EndSection
А у меня в /etc/X11/  вообще нет xorg.conf.
Зато есть каталог xorg.conf.d ... что то же самое:
olej@orangepione:/etc/X11$ ls /etc/X11
app-defaults  rgb.txt  xkb          Xreset    Xresources  Xsession.d        xsm
fonts         xinit    xorg.conf.d  Xreset.d  Xsession    Xsession.options  XvMCConfig

olej@orangepione:/etc/X11$ ls /etc/X11/xorg.conf.d/
01-armbian-defaults.conf  80-armsoc-sun4i.conf

olej@orangepione:/etc/X11$ cat /etc/X11/xorg.conf.d/01-armbian-defaults.conf
Section "Monitor"
Identifier "Monitor0"
Option "DPMS" "false"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection

olej@orangepione:/etc/X11$ cat /etc/X11/xorg.conf.d/80-armsoc-sun4i.conf
Section "Device"
Identifier "ARMSOC DRM driver"
Driver "armsoc"
Option "DRI2" "true"
# Option "fbdev" "/dev/fb0"
# Option  "Debug" "true"
# Option  "UMP_LOCK" "false"
EndSection

Section "Screen"
Identifier "DefaultScreen"
Device      "ARMSOC DRM driver"
DefaultDepth 24
EndSection
Но, похоже, мы говорим о разных установках ... по их структуре.

Оффлайн ua3nbw

Re: mali на mainline ядре
« Ответ #43 : Август 19, 2018, 09:09:25 pm »
почти год уже мусолят https://github.com/mripard/sunxi-mali/issues/23#issuecomment-354273458
и как-бы уже у многих работает ускорение,a glmark2-es2 на H3 никто не показывает.


Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #44 : Август 20, 2018, 08:33:49 am »
извиняюсь за отсутствие, был на даче без интернета.
почти год уже мусолят https://github.com/mripard/sunxi-mali/issues/23#issuecomment-354273458
и как-бы уже у многих работает ускорение,a glmark2-es2 на H3 никто не показывает.
я показал es2_gears  - или для Вас это не показатель?
- устанавливаем видео драйвер для xorg:
apt install xorg-video-armsoc-sunxi
Когда вы установили драйвер для Xorg ... такой или не такой ... его использование никак не надо дополнительно прописывать где-то в конфигах Xorg?


никаких конфигов не надо, и да, иксы стартуют только от рута, хз почему так.
на этой неделе вряд ли будет время разбираться дальше, если только к концу.
Цитировать
якобы а). новый и б). успешный.
да почему якобы то? Вы фотки не смотрели? Там все видно. Если придерживаться моей инструкции (armsoc-sun4i поправил), ускорение прекрасно работает.