Orange Pi

встраиваемые модели

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 16 авг 2018, 23:06

Olej писал(а): Удивляет меня это:
Вот оно! :

Код: Выделить всё

olej@orangepione:~$ lsmod | grep uvcvideo
olej@orangepione:~$

Код: Выделить всё

olej@orangepione:~$ lsmod | grep uvcvideo

olej@orangepione:~$ modprobe uvcvideo
Could not find the database of available applications, run update-command-not-found as root to fix this
Command 'modprobe' is available in '/sbin/modprobe'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative priviledges associated with your user account.
modprobe: command not found

olej@orangepione:~$ /sbin/modprobe uvcvideo
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.14.14-sunxi/modules.dep.bin'
modprobe: FATAL: Module uvcvideo not found in directory /lib/modules/4.14.14-sunxi

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 16 авг 2018, 23:10

Olej писал(а): Вот оно! :

Код: Выделить всё

root@orangepione:~# aptitude search uvc
p   guvcview                                                                       - GTK+ base UVC Viewer
p   libguvcview-2.0-2                                                              - GTK+ base UVC Viewer - runtime
p   libguvcview-dev                                                                - GTK+ base UVC Viewer - development files
p   uvccapture                                                                     - USB UVC Video Class snapshot software
p   uvcdynctrl                                                                     - Command line tool to control v4l2 devices
p   uvcdynctrl-data                                                                - Command line tool to control v4l2 devices - data files
p   uvcdynctrl-dbg                                                                 - Debug Symbols for uvcdynctrl

root@orangepione:~# aptitude search v4l
p   dov4l                                                                          - program to set and query settings of video4linux devices
p   dv4l                                                                           - Redirect V4L API to access a camcorder from a V4L program
p   gambas3-gb-v4l                                                                 - Gambas video for Linux component
p   gem-plugin-dv4l                                                                - Graphics Environment for Multimedia - DV support
p   gem-plugin-v4l2                                                                - Graphics Environment for Multimedia - V4L2 output support
i A libv4l-0                                                                       - Collection of video4linux support libraries
p   libv4l-dev                                                                     - Collection of video4linux support libraries (development files)
p   libv4l2rds0                                                                    - Video4Linux Radio Data System (RDS) decoding library
i A libv4lconvert0                                                                 - Video4linux frame format conversion library
p   libvideo-capture-v4l-perl                                                      - Perl interface to the Video4linux framegrabber interface
p   qv4l2                                                                          - Graphical Qt v4l2 control panel
p   v4l-conf                                                                       - tool to configure video4linux drivers
p   v4l-utils                                                                      - Collection of command line video4linux utilities
p   v4l2loopback-dkms                                                              - Source for the v4l2loopback driver (DKMS)
p   v4l2loopback-source                                                            - Source for the v4l2loopback driver
p   v4l2loopback-utils                                                             - Commandline utilities for the for the v4l2-loopback module
p   v4l2ucp                                                                        - Video for Linux 2 Universal Control Panel


olej@orangepione:~$ sudo aptitude install uvccapture
...

olej@orangepione:~$ aptitude search uvccapture
i   uvccapture                                                                     - USB UVC Video Class snapshot software

olej@orangepione:~$ ls /dev/video*
/dev/video0

olej@orangepione:~$ ls -l /dev/video*
crw-rw---- 1 root video 81, 0 Aug 16 19:17 /dev/video0

olej@orangepione:~$ ls /dev/v4l
by-id  by-path
И вот вам благополучный захват фрейма из камеры:

Код: Выделить всё

olej@orangepione:~$ python
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cap = cv2.VideoCapture( 0 )
>>> ret, frame = cap.read()
>>> ret
True

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 17 авг 2018, 17:45

Olej писал(а): После того, как отключить-включить карточку, в SD-слот или USB-коннектор:

Код: Выделить всё

[olej@xenix Orange_Pi]$ sudo fdisk -l /dev/sdc
[sudo] пароль для olej: 
Диск /dev/sdc: 3,7 GiB, 3975151616 байт, 7763968 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x67b5d560

Устр-во    Загрузочный начало   Конец Секторы Размер Идентификатор Тип
/dev/sdc1                8192 2727935 2719744   1,3G            83 Linux
Обращаем внимание (!) что у нас 1 раздел на 1.3Gb занимает 4Gb SD-карточку.
Нужно обязательно не забыть растянуть раздел на весь диск.
Откатываемся на это место, чтобы поправить...
Большинство образов .img для SD-карт (собранных под Rapsberry Pi, Orange Pi и подобные SBC/SoC) при 1-м старте старте запускают скрипт, который "растягивает" записанный из образа раздел (partition), скажем 1.3Gb - до фактического раздела использованной SD-карты, например 8Gb.
1. Многие, большинство ... но не все;
2. Те, которые делают, часто делают это не лучшим образом;
3. При начальном старте может произойти сбой скриптов старта ... и раздел так и останется 1.3Gb.

Поэтому лучше а). проверить, или б). продублировать это руками...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 17 авг 2018, 17:48

Olej писал(а):Поэтому лучше а). проверить, или б). продублировать это руками...
Вполне можно (удобно, лучше) все эти дела делать по сети в SSH сессии, а не локальном мониторе - сколько угодно сессий-терминалов...

Код: Выделить всё

[olej@xenix ~]$ ssh -Y olej@192.168.1.108
olej@192.168.1.108's password: 
X11 forwarding request failed on channel 0
  ___                               ____  _    ___             
 / _ \ _ __ __ _ _ __   __ _  ___  |  _ \(_)  / _ \ _ __   ___ 
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | | | | '_ \ / _ \
| |_| | | | (_| | | | | (_| |  __/ |  __/| | | |_| | | | |  __/
 \___/|_|  \__,_|_| |_|\__, |\___| |_|   |_|  \___/|_| |_|\___|
                       |___/                                   

Welcome to ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi   
System load:   0.45 0.19 0.07  	Up time:       1 min		
Memory usage:  9 % of 493MB  	IP:            192.168.1.108
CPU temp:      37°C           	
Usage of /:    39% of 3.5G   	

Last login: Thu Aug 16 19:52:18 2018 from 192.168.1.20

Код: Выделить всё

olej@orangepione:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              216808       0    216808   0% /dev
tmpfs              50516    2724     47792   6% /run
/dev/mmcblk0p1   3583996 1365228   2152880  39% /
tmpfs             252576       0    252576   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             252576       0    252576   0% /sys/fs/cgroup
tmpfs             252576       0    252576   0% /tmp
log2ram            51200    1140     50060   3% /var/log
tmpfs              50512       0     50512   0% /run/user/1000

olej@orangepione:~$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 3.7 GiB, 3975151616 bytes, 7763968 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x67b5d560

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1       8192 7354368 7346177  3.5G 83 Linux
olej@orangepione:~$ 
olej@orangepione:~$ 

olej@orangepione:~$ mount | grep /mmcb
/dev/mmcblk0p1 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro,commit=600)
/dev/mmcblk0p1 on /var/log.hdd type ext4 (rw,noatime,nodiratime,errors=remount-ro,commit=600)
Так было...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 17 авг 2018, 18:01

Olej писал(а):Так было...
Меняю:

Код: Выделить всё

olej@orangepione:~$ sudo parted /dev/mmcblk0
[sudo] password for olej: 
Sorry, try again.
[sudo] password for olej: 
GNU Parted 3.2
Using /dev/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: SD NCard (sd/mmc)
Disk /dev/mmcblk0: 3975MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
        32.3kB  4194kB  4162kB           Free Space
 1      4194kB  3765MB  3761MB  primary  ext4
        3765MB  3975MB  210MB            Free Space

(parted) resizepart 1
Warning: Partition /dev/mmcblk0p1 is being used. Are you sure you want to continue?
Yes/No? yes
End?  [3765MB]? 3975
(parted) print free
Model: SD NCard (sd/mmc)
Disk /dev/mmcblk0: 3975MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
        32.3kB  4194kB  4162kB           Free Space
 1      4194kB  3975MB  3971MB  primary  ext4
        3975MB  3975MB  152kB            Free Space

(parted) print all
Model: SD NCard (sd/mmc)
Disk /dev/mmcblk0: 3975MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  3975MB  3971MB  primary  ext4
К этому моменту я увеличил физический размер раздела SD-диска, но ещё не размер root файловой системы!
И сейчас самое время перезагрузиться, чтобы изменения вступили в силу:

Код: Выделить всё

olej@orangepione:~$ sudo reboot 
Connection to 192.168.1.108 closed by remote host.
Connection to 192.168.1.108 closed.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 17 авг 2018, 18:17

Olej писал(а): И сейчас самое время перезагрузиться, чтобы изменения вступили в силу:
Выжидаю ... у моря погоды :lol: :

Код: Выделить всё

[olej@xenix ~]$ ping 192.168.1.108
PING 192.168.1.108 (192.168.1.108) 56(84) bytes of data.
From 192.168.1.20 icmp_seq=1 Destination Host Unreachable
From 192.168.1.20 icmp_seq=2 Destination Host Unreachable
...
From 192.168.1.20 icmp_seq=187 Destination Host Unreachable
From 192.168.1.20 icmp_seq=188 Destination Host Unreachable
From 192.168.1.20 icmp_seq=189 Destination Host Unreachable
64 bytes from 192.168.1.108: icmp_seq=193 ttl=64 time=1024 ms
64 bytes from 192.168.1.108: icmp_seq=194 ttl=64 time=0.608 ms
64 bytes from 192.168.1.108: icmp_seq=195 ttl=64 time=0.237 ms
64 bytes from 192.168.1.108: icmp_seq=196 ttl=64 time=0.248 ms
64 bytes from 192.168.1.108: icmp_seq=197 ttl=64 time=0.236 ms
64 bytes from 192.168.1.108: icmp_seq=198 ttl=64 time=0.341 ms
64 bytes from 192.168.1.108: icmp_seq=199 ttl=64 time=0.232 ms
64 bytes from 192.168.1.108: icmp_seq=200 ttl=64 time=0.232 ms
64 bytes from 192.168.1.108: icmp_seq=201 ttl=64 time=0.202 ms
^C
--- 192.168.1.108 ping statistics ---
201 packets transmitted, 9 received, +105 errors, 95% packet loss, time 204825ms
rtt min/avg/max/mdev = 0.202/114.102/1024.583/321.903 ms, pipe 4
Снова подключаюсь SSH:

Код: Выделить всё

[olej@xenix ~]$ ssh -Y olej@192.168.1.108
olej@192.168.1.108's password: 
X11 forwarding request failed on channel 0
...
С сообщением про X11 ещё предстоит разобраться ... но это потом...

Код: Выделить всё

olej@orangepione:~$ sudo fdisk -l /dev/mmcblk0
[sudo] password for olej: 
Disk /dev/mmcblk0: 3.7 GiB, 3975151616 bytes, 7763968 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x67b5d560

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1       8192 7763671 7755480  3.7G 83 Linux
Размер раздела SD, видимый fdisk (физический) - изменился.

Код: Выделить всё

olej@orangepione:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              216808       0    216808   0% /dev
tmpfs              50516    2680     47836   6% /run
/dev/mmcblk0p1   3583996 1365420   2152688  39% /
tmpfs             252576       0    252576   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             252576       0    252576   0% /sys/fs/cgroup
tmpfs             252576       0    252576   0% /tmp
log2ram            51200    1332     49868   3% /var/log
tmpfs              50512       0     50512   0% /run/user/1000
Размер файловой системы остался неизменным!
На этот предмет у нас имеется утилита:

Код: Выделить всё

olej@orangepione:~$ /sbin/resize2fs
resize2fs 1.43.4 (31-Jan-2017)
Usage: /sbin/resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [-b|-s|new_size] [-z undo_file]
У неё множество опций (см. man) ... но без параметров и опций она увеличивает FS на весь доступный физический размер раздела:

Код: Выделить всё

olej@orangepione:~$ sudo resize2fs /dev/mmcblk0p1
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/mmcblk0p1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p1 is now 969435 (4k) blocks long.

Код: Выделить всё

olej@orangepione:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              216808       0    216808   0% /dev
tmpfs              50516    2680     47836   6% /run
/dev/mmcblk0p1   3786708 1365424   2354632  37% /
tmpfs             252576       0    252576   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             252576       0    252576   0% /sys/fs/cgroup
tmpfs             252576       0    252576   0% /tmp
log2ram            51200    1336     49864   3% /var/log
tmpfs              50512       0     50512   0% /run/user/1000
Тут важны даже не 1/5Gb лишнего места (хотя для моих целей и они не лишние!), сколько то, как это всегда можно сделать, когда сбилось что-то при начальном старте системы!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 18 авг 2018, 10:25

Olej писал(а): Затеяно только из 2-х близких соображений:

1. В Orange Pi (всех) использован графический процессор, GPU mali ... который так никто, включая производителя Orange Pi не умеют использовать. И только с месяц назад появилась информация, что mali включён в mainline kernel ... см. сюда: mali на mainline ядре.

2. Установить OpenCV и организовать компьютерное зрение на Orange Pi, что не так сразу получается ... см. сюда: OpenCV на Armbian + Opi One

Вот на этих позициях и сосредоточимся. ;-)
И даже на 3-х таких заманчивых позициях:

3. Аппаратный encoder h264 для Allwinner H3
Cedrus – linux-sunxi community проект программного обеспечения, который является полностью 100% открытым исходным кодом драйвера для использования аппаратного ускорения видео.
Bootlin (formerly Free Electrons) -- активно работают и продвигают.
тут подробнее: https://linux-sunxi.org/Sunxi-cedrus
Там: https://linux-sunxi.org/Sunxi-cedrus есть таблица, что Sunxi-Cedrus VPU driver на mainline ядре работает на Allwinner SoCs A13/A10s, A20, A33, H3
аппаратно работают кодеки MPEG2 и H264 с плеерами VLC и KODI.
очевидно, что используется графический процессор GPU Mali
Намеченный п.1 уже выполнен:

Код: Выделить всё

olej@orangepione:~$ python
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'2.4.9.1'
И по нему теперь будет отдельная тема, чтобы не отвлекаться: компьютерное зрение на одноплатных SBC.

А вот относящиеся к аппаратным и системным штучкам-дрючкам Orange Pi - остаются:

1. использование GPU mali для ускоренной отработки графики;
2. быстрое аппаратное декодирование протокола H264

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 18 авг 2018, 11:08

Olej писал(а): 1. использование GPU mali для ускоренной отработки графики;
Делаю, точнее тупо повторяю, пошагово с mali на mainline ядре, + с коррекцией на свои особенности (своей инсталляции) + 5 раз всё перепроверяя по итогу... ;-)
После обновления системы:

Код: Выделить всё

olej@orangepione:~$ uname -a
Linux orangepione 4.14.18-sunxi #24 SMP Fri Feb 9 16:24:32 CET 2018 armv7l GNU/Linux
1.
- редактируем файл /boot/config-$(uname -r) - меняем значение CONFIG_DRM_FBDEV_OVERALLOC= на 300
- редактируем файл /boot/armbianEnv.txt - добавляем строку

Код: Выделить всё

extraargs="drm_kms_helper.drm_fbdev_overalloc=300"

Код: Выделить всё

olej@orangepione:~$ cat /boot/config-`uname -r` | grep CONFIG_DRM_FBDEV_OVERALLO
CONFIG_DRM_FBDEV_OVERALLOC=300

olej@orangepione:~$ cat /boot/armbianEnv.txt | grep extraargs
extraargs="drm_kms_helper.drm_fbdev_overalloc=300"
2.
- устанавливаем хидеры ядра:

Код: Выделить всё

apt install linux-headers-next-sunxi
Уже и раньше были установлены:

Код: Выделить всё

olej@orangepione:~$ aptitude search linux-headers-next*
p   linux-headers-next-cubox                            - Linux kernel headers for 4.14.57-cubox on armhf
p   linux-headers-next-mvebu                            - Linux kernel headers for 4.14.18-mvebu on armhf
p   linux-headers-next-odroidxu4                        - Linux kernel headers for 4.14.55-odroidxu4 on armhf
p   linux-headers-next-rockchip                         - Linux kernel headers for 4.14.34-rockchip on armhf
i   linux-headers-next-sunxi                            - Linux kernel headers for 4.14.18-sunxi on armhf
p   linux-headers-next-udoo                             - Linux kernel headers for 4.4.112-udoo on armhf

olej@orangepione:~$ ls /lib/modules
4.14.18-sunxi

olej@orangepione:~$ ls /lib/modules/`uname -r`/build/include
acpi         clocksource  crypto  dt-bindings  keys  linux     media   misc  pcmcia  rdma  soc    target  uapi   xen
asm-generic  config       drm     generated    kvm   math-emu  memory  net   ras     scsi  sound  trace   video

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 18 авг 2018, 11:21

Olej писал(а):тупо повторяю, пошагово
3.
- клонируем исходники модуля mali:

Код: Выделить всё

git clone https://github.com/mripard/sunxi-mali.git

Код: Выделить всё

olej@orangepione:~$ cd ~
 
olej@orangepione:~/mali$ git clone https://github.com/mripard/sunxi-mali.git
Cloning into 'sunxi-mali'...
remote: Counting objects: 1518, done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 1518 (delta 74), reused 43 (delta 34), pack-reused 1433
Receiving objects: 100% (1518/1518), 648.00 KiB | 509.00 KiB/s, done.
Resolving deltas: 100% (987/987), done.

olej@orangepione:~$ cd sunxi-mali/

olej@orangepione:~/sunxi-mali$ ls -l
total 32
-rwxr-xr-x 1 olej olej 1873 Aug 16 19:25 build.sh
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
4.
- компилим, копируем, устанавливаем

Код: Выделить всё

cd sunxi-mali
export CROSS_COMPILE=arm-linux-gnueabihf-
export KDIR=/lib/modules/$(uname -r)/build
./build.sh -r r6p2 -b
mkdir /lib/modules/$(uname -r)/kernel/drivers/gpu/mali
cp mali.ko /lib/modules/$(uname -r)/kernel/drivers/gpu/mali/
depmod
modprobe mali

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ export CROSS_COMPILE=arm-linux-gnueabihf-

olej@orangepione:~/sunxi-mali$ export KDIR=/lib/modules/$(uname -r)/build
Здесь 1-й облом :-o :

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ ./build.sh -r r6p2 -b
building...
~/sunxi-mali/r6p2 ~/sunxi-mali
./build.sh: line 15: quilt: command not found
Error applying patch 
Этому делу легко помочь:

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ sudo apt install quilt
[sudo] password for olej:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  diffstat gettext gettext-base
Suggested packages:
  gettext-doc autopoint libasprintf-dev libgettextpo-dev procmail graphviz default-mta | mail-transport-agent
The following NEW packages will be installed:
  diffstat gettext gettext-base quilt
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,898 kB of archives.
After this operation, 8,263 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main armhf gettext-base armhf 0.19.8.1-2 [118 kB]
Get:2 http://cdn-fastly.deb.debian.org/debian stretch/main armhf diffstat armhf 1.61-1+b1 [31.4 kB]
Get:3 http://cdn-fastly.deb.debian.org/debian stretch/main armhf gettext armhf 0.19.8.1-2 [1,440 kB]
Get:4 http://cdn-fastly.deb.debian.org/debian stretch/main armhf quilt all 0.63-8 [308 kB]
Fetched 1,898 kB in 1s (1,187 kB/s)
Selecting previously unselected package gettext-base.
(Reading database ... 66589 files and directories currently installed.)
Preparing to unpack .../gettext-base_0.19.8.1-2_armhf.deb ...
Unpacking gettext-base (0.19.8.1-2) ...
Selecting previously unselected package diffstat.
Preparing to unpack .../diffstat_1.61-1+b1_armhf.deb ...
Unpacking diffstat (1.61-1+b1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../gettext_0.19.8.1-2_armhf.deb ...
Unpacking gettext (0.19.8.1-2) ...
Selecting previously unselected package quilt.
Preparing to unpack .../archives/quilt_0.63-8_all.deb ...
Unpacking quilt (0.63-8) ...
Setting up gettext-base (0.19.8.1-2) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up diffstat (1.61-1+b1) ...
Setting up gettext (0.19.8.1-2) ...
Setting up quilt (0.63-8) ...
Повторяем ... это довольно долгое занятие:

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ ./build.sh -r r6p2 -b
building...
~/sunxi-mali/r6p2 ~/sunxi-mali
Applying patch ../patches/0001-makefile-Add-install-target-and-build-the-module-by-.patch
patching file src/devicedrv/mali/Makefile
Hunk #1 succeeded at 193 (offset 16 lines).

Applying patch ../patches/0002-mali-Support-building-against-4.6.patch
patching file src/devicedrv/mali/linux/mali_memory_swap_alloc.c

Applying patch ../patches/0003-mali-Support-building-against-4.8.patch
patching file src/devicedrv/mali/linux/mali_memory_os_alloc.c
Hunk #2 succeeded at 515 (offset 7 lines).
Hunk #3 succeeded at 558 (offset 7 lines).
Hunk #4 succeeded at 618 (offset 7 lines).
Hunk #5 succeeded at 772 (offset 7 lines).
...
make[1]: Entering directory '/usr/src/linux-headers-4.14.18-sunxi'
  CC [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/linux/mali_osk_atomics.o
  CC [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/linux/mali_osk_irq.o
  CC [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/linux/mali_osk_wq.o
...
  CC [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/common/mali_dvfs_policy.o
/home/olej/sunxi-mali/r6p2/src/devicedrv/mali/platform/sunxi/sunxi.c: In function ‘mali_create_mali450_mp4_resources’:
/home/olej/sunxi-mali/r6p2/src/devicedrv/mali/platform/sunxi/sunxi.c:120:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larg
 }
 ^
  CC [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/__malidrv_build_info.o
  LD [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/mali.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/mali.mod.o
  LD [M]  /home/olej/sunxi-mali/r6p2/src/devicedrv/mali/mali.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.14.18-sunxi'
make: Leaving directory '/home/olej/sunxi-mali/r6p2/src/devicedrv/mali'

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ pwd
/home/olej/sunxi-mali

olej@orangepione:~/sunxi-mali$ ls -l *.ko
-rw-r--r-- 1 olej olej 292864 Aug 17 17:45 mali.ko

Код: Выделить всё

root@orangepione:/boot# mkdir /lib/modules/$(uname -r)/kernel/drivers/gpu/mali

root@orangepione:/boot# ls /lib/modules/$(uname -r)/kernel/drivers/gpu/mali

olej@orangepione:~/sunxi-mali$ sudo cp mali.ko /lib/modules/$(uname -r)/kernel/drivers/gpu/mali/
[sudo] password for olej:

root@orangepione:/boot# ls -l /lib/modules/$(uname -r)/kernel/drivers/gpu/mali
total 288
-rw-r--r-- 1 root root 292864 Aug 17 18:06 mali.ko
... обращаем внимание что всё это под root...

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ /sbin/modinfo /lib/modules/$(uname -r)/kernel/drivers/gpu/mali/mali.ko
filename:       /lib/modules/4.14.18-sunxi/kernel/drivers/gpu/mali/mali.ko
version:        r6p2-01rel0-50571a9
author:         ARM Ltd.
license:        GPL
srcversion:     32CCD66A676FBED175F327F
alias:          of:N*T*Callwinner,sun50i-h5-maliC*
alias:          of:N*T*Callwinner,sun50i-h5-mali
alias:          of:N*T*Callwinner,sun8i-h3-maliC*
alias:          of:N*T*Callwinner,sun8i-h3-mali
alias:          of:N*T*Callwinner,sun7i-a20-maliC*
alias:          of:N*T*Callwinner,sun7i-a20-mali
alias:          of:N*T*Callwinner,sun4i-a10-maliC*
alias:          of:N*T*Callwinner,sun4i-a10-mali
depends:        
name:           mali
vermagic:       4.14.18-sunxi SMP mod_unload ARMv7 thumb2 p2v8 
parm:           mali_debug_level:Higher number, more dmesg output (int)
parm:           mali_max_job_runtime:Maximum allowed job runtime in msecs.
Jobs will be killed after this no matter what (int)
parm:           mali_l2_max_reads:Maximum reads for Mali L2 cache (int)
parm:           mali_dedicated_mem_start:Physical start address of dedicated Mali GPU memory. (uint)
parm:           mali_dedicated_mem_size:Size of dedicated Mali GPU memory. (uint)
parm:           mali_shared_mem_size:Size of shared Mali GPU memory. (uint)
parm:           mali_max_pp_cores_group_1:Limit the number of PP cores to use from first PP group. (int)
parm:           mali_max_pp_cores_group_2:Limit the number of PP cores to use from second PP group (Mali-450 only). (int)
parm:           mali_mem_swap_out_threshold_value:Threshold value used to limit how much swappable memory cached in Mali driver. (uint)
parm:           mali_max_system_fps:Max system fps the same as display VSYNC. (int)
parm:           mali_desired_fps:A bit lower than max_system_fps which user desired fps (int)

Код: Выделить всё

root@orangepione:/boot# depmod

root@orangepione:/boot# modprobe mali

root@orangepione:/boot# lsmod | grep mali
mali                  184320  0

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Orange Pi

Непрочитанное сообщение Olej » 18 авг 2018, 11:36

тупо повторяю, пошагово
5.
- качаем блобы библиотек мали и ставим их (тут поясню, для 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/
Насколько я понимаю, BLOB - Binary Linked OBject (объект двоичной компоновки) ...
Означает ли это что они не open source? ... отложим на потом.

Код: Выделить всё

olej@orangepione:~/sunxi-mali$ cd ~
olej@orangepione:~$ 

olej@orangepione:~$ git clone https://github.com/bootlin/mali-blobs.git
Cloning into 'mali-blobs'...
remote: Counting objects: 94, done.
remote: Total 94 (delta 0), reused 0 (delta 0), pack-reused 94
Unpacking objects: 100% (94/94), done.

olej@orangepione:~$ sudo mkdir /usr/lib/mali

olej@orangepione:~$ sudo cp -a mali-blobs/r6p2/arm/x11_dma_buf/lib* /usr/lib/mali/

olej@orangepione:~$ ls -l mali-blobs
total 468
-rw-r--r-- 1 olej olej 464253 Aug 17 18:11 EULA for Mali 400MP _AW.pdf
drwxr-xr-x 4 olej olej   4096 Aug 17 18:11 include
drwxr-xr-x 4 olej olej   4096 Aug 17 18:11 r6p2
drwxr-xr-x 4 olej olej   4096 Aug 17 18:11 r8p1

Код: Выделить всё

olej@orangepione:~$ ls /usr/lib/mali
libEGL.so    libEGL.so.1.4    libGLESv1_CM.so.1    libGLESv2.so    libGLESv2.so.2.0
libEGL.so.1  libGLESv1_CM.so  libGLESv1_CM.so.1.1  libGLESv2.so.2  libMali.so

Ответить

Вернуться в «Одноплатные компьютеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость