作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

视频

香蕉派BPI-M2 Berry 全志V40 Mali400 MP2 GPU使用

香蕉派

Wiki Main Page
开发板资料下载
快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry

从主页找到R40对应开发板,

  • Banana Pi BPI-M2 Berry [Allwinner R40/V40/A40i]
  • Banana Pi BPI-M2U [Allwinner R40/V40/A40i]

其中Banana Pi BPI-M2U的Wiki介绍了如何编译BSP,其中使用内核也是Tina Linux,

BPI-SINOVOIP/BPI-M2U-bsp

$ cd project/
$ git clone https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git
$ cd BPI-M2U-bsp/
# pack的时候会要求输入sudo密码
$ ./build.sh BPI-M2B-1080P 1
# 编译完成之后生成
$ ls -l SD/bpi-m2b/
total 107612
drwxrwxr-x 2 developer developer     4096 Jan 21 05:17 100MB
-rw-rw-r-- 1 developer developer 38217161 Jan 21 05:17 3.10.108-BPI-M2B-Kernel-net.tgz
-rw-rw-r-- 1 developer developer 44283126 Jan 21 05:18 3.10.108-BPI-M2B-Kernel.tgz
-rw-rw-r-- 1 developer developer  1888462 Jan 21 05:18 BOOTLOADER-bpi-m2b.tgz
drwxrwxr-x 3 developer developer     4096 Jan 21 05:17 BPI-BOOT
-rw-rw-r-- 1 developer developer 12852231 Jan 21 05:17 BPI-BOOT-bpi-m2b.tgz
drwxrwxr-x 4 developer developer     4096 Jan 21 05:18 BPI-ROOT
-rw-rw-r-- 1 developer developer 12930798 Jan 21 05:18 linux-headers-3.10.108-BPI-M2B-Kernel.tgz
# 下载http://wiki.banana-pi.org/Banana_Pi_BPI-M2U#Image_Release
Ubuntu
2020-04-19 update, kernel 3.10.108
Ubuntu 16.04 mate desktop Download
Ubuntu 16.04 server Download
# 选择Ubuntu 16.04 mate desktop Download2020-04-19-ubuntu-16.04-mate-desktop-bpi-m2u-sd-emmc.img.zip2020-04-19-ubuntu-16.04-mate-desktop-bpi-m2u-sd-emmc.img.zip.md5
# 下载速度为0,选择下面这个有百度网盘的2019-05-10-ubuntu-16.04-mate-desktop-preview-bpi-m2u-sd-emmc.img.zip
# 将img写入SD卡

安装bpi-tools,github下载二进制工具https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools,没有源代码,执行命令把内核安装到sd卡,

$ export PATH=/opt/bpi-tools-master:$PATH
$ ./build.sh BPI-M2B-1080P 6

ubuntu linux默认用户名密码,

user:pi
password:bananapi
user:root
password:bananapi

添加mali驱动,库,然后发现系统已经自带mali库了,

pi@bpi-iot-ros-ai:~$ ldconfig -p | grep aillibgailutil.so.18 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libgailutil.so.18libffmpegthumbnailer.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libffmpegthumbnailer.so.4
pi@bpi-iot-ros-ai:~$
pi@bpi-iot-ros-ai:~$
pi@bpi-iot-ros-ai:~$ ldconfig -p | grep gllibxcb-glx.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libxcb-glx.so.0libxcb-glx.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libxcb-glx.solibwx_gtk2u_gl-3.0.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libwx_gtk2u_gl-3.0.so.0libwayland-egl.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libwayland-egl.so.1libwayland-egl.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libwayland-egl.solibupower-glib.so.3 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libupower-glib.so.3libsignon-glib.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libsignon-glib.so.1libqmi-glib.so.5 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.5libqmi-glib.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1libpyglib-2.0-python2.7.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpyglib-2.0-python2.7.so.0libpulse-mainloop-glib.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpulse-mainloop-glib.so.0libpulse-mainloop-glib.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpulse-mainloop-glib.solibpoppler-glib.so.8 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpoppler-glib.so.8libpackagekit-glib2.so.16 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpackagekit-glib2.so.16libnm-glib.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libnm-glib.so.4libnm-glib-vpn.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libnm-glib-vpn.so.1libmm-glib.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libmm-glib.so.0libmbim-glib.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libmbim-glib.so.4libkwinglutils.so.7 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libkwinglutils.so.7libjson-glib-1.0.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libjson-glib-1.0.so.0libglslcompiler.so.1.14.3841212 (libc6,hard-float) => /usr/lib/libglslcompiler.so.1.14.3841212libglslcompiler.so.1 (libc6,hard-float) => /usr/lib/libglslcompiler.so.1libglslcompiler.so (libc6,hard-float) => /usr/lib/libglslcompiler.solibglibmm_generate_extra_defs-2.4.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglibmm_generate_extra_defs-2.4.so.1libglibmm-2.4.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglibmm-2.4.so.1libglib-2.0.so.0 (libc6,hard-float) => /lib/arm-linux-gnueabihf/libglib-2.0.so.0libglib-2.0.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglib-2.0.solibglapi.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglapi.so.0libglapi.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglapi.solibglade-2.0.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libglade-2.0.so.0libgeocode-glib.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libgeocode-glib.so.0libflite_usenglish.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libflite_usenglish.so.1libdbusmenu-glib.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libdbusmenu-glib.so.4libdbus-glib-1.so.2 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libdbus-glib-1.so.2libcogl.so.20 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libcogl.so.20libcogl-path.so.20 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libcogl-path.so.20libcogl-pango.so.20 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libcogl-pango.so.20libavahi-glib.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libavahi-glib.so.1libappstream-glib.so.8 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libappstream-glib.so.8libaccounts-glib.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libaccounts-glib.so.0libQt5EglDeviceIntegration.so.5 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libQt5EglDeviceIntegration.so.5libQt5EglDeviceIntegration.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libQt5EglDeviceIntegration.solibIMGegl.so.1.14.3841212 (libc6,hard-float) => /usr/lib/libIMGegl.so.1.14.3841212libIMGegl.so.1 (libc6,hard-float) => /usr/lib/libIMGegl.so.1libIMGegl.so (libc6,hard-float) => /usr/lib/libIMGegl.solibGLESv2.so.2 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/mesa-egl/libGLESv2.so.2libGLESv2.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/mesa-egl/libGLESv2.solibEGL.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/mesa-egl/libEGL.so.1libEGL.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/mesa-egl/libEGL.so

修改BPI-BOOT分区banana/bpi-m2b/linux/1080p/uEnv.txt

board=bpi-m2u -> board=bpi-m2b
$ sudo cp mali.ko /lib/modules/3.10.108-BPI-M2B-Kernel/mali
$ sudo cp -arf x11_dma_buf/* /usr/lib/
$ cat /etc/ld.so.conf.d/
.00-pvr.conf                  arm-linux-gnueabihf_EGL.conf
00-vmcs.conf                  arm-linux-gnueabihf_GL.conf
01-mali.conf                  libc.conf
arm-linux-gnueabihf.conf      vmcs.conf
$ ls -l /usr/lib/mali/lib
libEGL.so            libGLESv1_CM.so.1    libGLESv2.so.2.0
libEGL.so.1          libGLESv1_CM.so.1.1  libMali.so
libEGL.so.1.4        libGLESv2.so
libGLESv1_CM.so      libGLESv2.so.2# Store the list of server defined optional extensions in REQUIRED_MODULES
# XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
# XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
# XORG_DRIVER_CHECK_EXT(XV, videoproto)143  sudo apt-get install xutils-dev144  autoreconf -vi145  ./configure --prefix=/usr146  sudo apt install xorg-x11-util-macros147  sudo apt search xorg-x11148  sudo apt search xorg149  vim configure150  ./configure --prefix=/usr151  vim configure152  ./configure --prefix=/usr153  sudo apt install xorg-server154  sudo apt install xorg-server-dev155  sudo apt-get install pkg-config libpixman-1-dev libx11-dev x11proto-gl-dev libglib2.0-dev libgl1-mesa-dev x11proto-xf86dri-dev libgcrypt11-dev156  sudo apt-get install x11proto-xcmisc-dev x11proto-bigreqs-dev x11proto-randr-dev x11proto-render-dev x11proto-fonts-dev x11proto-video-dev libpciaccess-dev157  sudo apt-get install x11proto-composite-dev x11proto-record-dev x11proto-scrnsaver-dev x11proto-resource-dev x11proto-xinerama-dev libxkbfile-dev libxfont-dev158  ./configure --prefix=/usr159  sudo apt install xorg-server-dev160  sudo apt install xorg-x11-server-dev161  sudo apt install xorg-x11-server-sdk162  sudo apt search | grep xorg-server163  sudo apt cache search | grep xorg-server164  sudo apt search xorg-server165  sudo apt search xorg166  sudo apt install xorg-server167  ./configure --prefix=/usr168  sudo apt install xorg169  history
# 折腾半天其实sunxi wiki上说清楚了,执行下面的命令就可以了,
$ sudo apt-get install git build-essential xorg-dev xutils-dev x11proto-dri2-dev libltdl-dev libtool automake
checking ump/ump.h usability... no
checking ump/ump.h presence... no
checking for ump/ump.h... no
checking that generated files are newer than configure... done
configure: creating ./config.status
# 手动编译安装libUMP,发现之前的操作默认安装在/usr/local,
make uninstall
# 重新编译fbturbo
$ systemctl restart lightdm.service
$ chromium-brower --use-gl=egl --ingnore-gpu-blacklist --no-sandbox

测试,

体验3D互动 30个使用WebGL技术的优秀网页设计案例
一些webGL地球的网址

发现后台unattended upgrades shutdown CPU占用率100%,先干掉。

全志

Linux内核,看Wiki,这个应该是不支持R40/A40i/A40Pro(消费级/工业级/军事级)的sun8i,tinalinux/linux-3.10是Wiki上R40 Linux SDK指向的Linux内核,后面的香蕉派,都是使用Tina维护的内核,

linux-sunxi
tinalinux/linux-3.10

内核态驱动,可参考linux-sunxi把驱动放进A40i的内核代码目录,或者在代码树外部直接编译驱动,

linux-sunxi/mali-400-kernel-drivers

用户态库,

linux-sunxi/sunxi-mali

Mali-400 X11的DRI2/EXA驱动,xf86-video-mali是官方的,真正使用的应该是xf86-video-fbturbo

linux-sunxi/xf86-video-mali
ssvb/xf86-video-fbturbo

Tina Linux

Tina Linux的Wiki,Github,Tina Linux是一整套开发包,从u-boot到linux到rootfs,采用OpenWRT的编译方式,编译安装用repo等命令,这个我以前没用过,

Tina_Linux

R40/A40i/A40pro/V40

R40介绍,里面有它的软硬件资源链接,

R40

Allwinner R40 (sun8i) SoC features a Quad-Core Cortex-A7 ARM CPU, and a Mali400 MP2 GPU from ARM. It is a not-pin-compatible quad core sucessor of the A20. It’s also known as the Allwinner T3 for In-Car Entertainment usage. A40i and A40pro are variants that differ in applicable temperatures range (industrial and military).

全志使用sysconfig.fex文件来配置各种参数,之后编译过程中转换成dts文件。

CPU Architecture
• Quad-core ARM CortexTM-A7 Processor
• ARMv7 ISA standard ARM instruction set
• Thumb-2 Technology
• Jazeller RCT
• NEON Advanced SIMD
• VFPv4 floating point
• Large Physical Address Extensions(LPAE)
• 32KB L1 Instruction cache and 32KB L1 Data cache for per CPU
• 512KB L2 cache shared
GPU Architecture
• Mali400 MP2
• Supports OpenGL ES 2.0 ,OpenGL ES 1.1, Open VG 1.1 standard

Allwinner V40 (sun8i) SoC features a Quad-Core Cortex-A7 ARM CPU, and a Mali400 MP2 GPU from ARM. It is the automotive version of R40.

香蕉派BPI-M2 Berry 全志V40 Mali400 MP2 GPU使用相关推荐

  1. 香蕉派 Banana Pi BPI-M1 全志A20 开源硬件开发板

    Banana PI M1是为了配合Elastos.org开源OS推广而推出开源硬件平台,Banana PI M1是一款比树莓派更强悍的双核Android4.2产品.Banana PI 兼容性强大,可以 ...

  2. BPI M2 Berry调用GPIO的坑

    按照这个图里面的数字定义去调用GPIO会出现"unknown error 517"的错误 正确的GPIO和引脚的对应关系如下:

  3. 利用香蕉派自制电视盒子

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604 一.准备材料 1.香蕉派 bpi 2.无线网卡 3.HDMI线,连接香蕉派与电视 4.遥 ...

  4. 香蕉派 android开发板,香蕉派 Banana Pi BPI-M2+四核开源开发板 全志H3芯片方案

    香蕉派 Banana Pi BPI-M2+四核开源开发板 全志H3芯片方案,也可以支持Allwinner H2+ ,H3,H5芯片. Banana Pi BPI-M2+ Banana PI BPI-M ...

  5. 香蕉派开源硬件开发板 Banana Pi BPI M2Pro Amlogic S905X3 主板

    Banana Pi BPI-M2 Pro是Banana Pi公司于2021年推出的下一代单板机.它采用Amlogic S905X3四核Cortex-A55 (2.0 XXGHz)处理器.板载2GB L ...

  6. 香蕉派(or 皮?)上手初体验 -- 外观鉴赏,安装,配置amp;总结

    一.前言及简单介绍 听到"派"或者是看到这幅图片.难免让你想到眼下大名鼎鼎的"树莓派". 而香蕉派(Banana Pi. 论坛上也有人称它香蕉皮)是一款国产的比 ...

  7. Banana PI (香蕉派) 安装 ubuntu-core-14 最小核心的操作步骤

    Banana PI (中文名:香蕉派,以下简称 BPI)是比 Raspberry PI (中文名:树莓派)性能更强.功能更多.内置 AllWinner A20 双核 CPU.1GB DDR3内存.SA ...

  8. 联发科服务器芯片,基于MTK7623N芯片的香蕉派 BPI-R2 ,智能通信物联网网关开发平台...

    Banana Pi BPI-R2 Banana Pi 发布的香蕉派BPI-R2 智能路由开发板,采用MediaTek MT7623N, 四核ARM Cortex-A7 处理器,集成了Mali 450 ...

  9. armbian ubuntu 桌面_香蕉派BPI-M2Z刷基于Ubuntu16.04的Armbian桌面系统

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 lifree 于 2019-12-19 15:47 编辑 9 v- [8 v; p2 n2 I: b; j , ...

最新文章

  1. 【生成模型】极大似然估计,你必须掌握的概率模型
  2. Px4源码框架结构图
  3. 递归-递归的特点及基本代码演练
  4. 卡卡半智能扫地机器人_扫地机器人哪个牌子好?精选五款高智能的扫地机器人...
  5. mxnet系列 安装
  6. java加载失败是什么原因_这个加载失败是什么问题呢
  7. linux:如何修改用户的密码
  8. 通达信版弘历软件指标_通达信精选指标——弘历趋势
  9. 5个超实用的Excel数据透视表技巧
  10. 简述主成分分析法的基本步骤_主成分分析法的原理应用及计算步骤-z.doc
  11. python判断_python判断与或
  12. Android UI自动化工具-SoloPi
  13. PS_一寸照片换背景底色
  14. 构建新型现代化智慧博物馆之物联网环境监控方案
  15. Spark Skew Join Optimization
  16. 分享一款自用的强悍高清录制软件Bandicam4.3.4.1503中文便携特别版
  17. 【分享视频资源】React JS教程
  18. 阿里巴巴《Linux命令行与shell脚本编程大全》高清版 PDF 开放下载
  19. 多态的概念,多态的原理,多态解决什么问题
  20. 传输层 --- 面向连接的传输TCP

热门文章

  1. 基于attention机制的中英文机器翻译
  2. 北漂生活第十八弹-日子还照旧
  3. CSS,HTML,JS 以及Vue前端面试题八股文总结【看完你就变高手】
  4. [book]《心流:最优体验心理学》
  5. 万字拆解!追溯ChatGPT各项能力的起源
  6. 多线程-并发工具类之CyclicBarrier详解
  7. eclipse Luna 用tomct7 部署项目
  8. 重装Win10系统之U盘启动盘的制作(详细教程)
  9. 单片机、ARM、MUC、DSP、FPGA、嵌入式
  10. 【分库分表】ShardingSphere分库分表实战