参考论坛:Mali kernel driver TX011-SW-99002-r5p1-00rel0 for firefly
最近手头有一块firefly_rk3288_reload的开发板,想实现在linux 下用openGL ES来做视频显示。
找到opengGL相关移植,参考论坛(http://bbs.t-firefly.com/forum.php?mod=viewthread&tid=321&extra=page%253D2)的方法,进行移植。
方法:
Test OpenGL ES Linux support on Firefly-RK3288 Development Board
════════════════════════════════════════════════════════════════
Introduction
────────────
Firefly-RK3288 development board is equipped with the powerful Mali
T764 GPU. Lately, ARM has released the binary user-space fbdev
driver. We, the Firefly team, have taken a first stab at it.
Environment:
- Firefly-RK3288 development board with latest dual boot firmware
installed.
- 64 bit Ubuntu Linux (12.04 or later) host pc.
Kernel
──────
First, we need to update the mali kernel driver.
Download Linux kernel driver TX041-SW-99002-r5p1-00rel0.tgz in
[http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-t6xx-gpu-kernel-device-drivers/]
(note:这个是arm官方针对这款gpu驱动发布的官方驱动)
The porting process involves: replace the old driver files with new
ones, apply the kds patch, fix the compiling errors and update the
config file.
To make life easier, we've packaged all the files into
firefly-mali-driver-TX011-SW-99002-r5p1-00rel0.tar.gz .
(note:实际上我们只需要下载firefly-mali-driver-TX011-SW-99002-r5p1-00rel0.tar.gz 这个驱动文件就可以了。)
╭────
│ cd /path/to/your/firefly/sdk
│ ls kernel # kernel directory should be here
│ tar xzf /path/to/firefly-mali-driver-TX011-SW-99002-r5p1-00rel0.tar.gz
╰────
Then compile it:
╭────
│ cd kernel
│ make firefly-rk3288-linux_defconfig
│ make -j8 firefly-rk3288.img
│ make modules
╰────
(note:上面这步的时候,需要自己重新配置一下kernel,不能使用默认的驱动配置,否则会出现两种情况:
1) undefined reference to `kds_waitall'
添加CONFIG_DMA_SHARED_BUFFER关联选项就OK
2) 在openGL sdk demo运行的时候出现:
Error: eglGetError(): 12289 (0x3001)
Error: Failed to initialize EGL at ../../../../samples/opengles_30/skybox/EGLRuntime.cpp:243
同时内核会打印:
:Platform data not specified
查看kernel源码,找到相应配置,添加:MALI_PLATFORM_FAKE 配置。
)
The compiled mali module is located at drivers/gpu/arm/midgard/. Copy
mali_kbase.ko to your board:
╭────
│ scp drivers/gpu/arm/midgard/mali_kbase.ko root@BOARD_IP:/system/lib/modules/
╰────
(Why `/system/lib/modules/' ? Just because /etc/rc.local willl insmod
it automatically.)
Then follow the steps described in
[http://wiki.t-firefly.com/index.php/Firefly-RK3288/Build_kernel/en] ,
to pack zImage and initrd to linux-boot.img .
Flash linux-boot.img to recovery partition of the board.
User-space drivers
──────────────────
Download mali-t76x_r5p0-06rel0_linux_1+fbdev.tar.gz in:
[http://malideveloper.arm.com/develop-for-mali/features/mali-t6xx-gpu-user-space-drivers/]
Then install it to the board:
╭────
│ cat /path/to/mali-t76x_r5p0-06rel0_linux_1+fbdev.tar.gz \
│ | ssh root@BOARD_IP tar --strip-components=1 -xzf - -C /usr/lib
╰────
Compile Mali OpenGL ES SDK demos
────────────────────────────────
Download Mali_OpenGL_ES_SDK_v2.4.4.71fdbd_Linux_x64.tar.gz in
[http://malideveloper.arm.com/develop-for-mali/sdks/opengl-es-sdk-for-linux/]
Please choose Linux X64 archive.
To build the SDK demos, you need a cross compile toolchain. If you
have not installed yet, try this linaro toolchain:
[http://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz]
(Extract it to /opt)
You also need to install cmake (sudo apt-get install cmake).
╭────
│ tar xzf /path/to/Mali_OpenGL_ES_SDK_v2.4.4.71fdbd_Linux_x64.tar.gz
│ cd Mali_OpenGL_ES_SDK_v2.4.4
│ mkdir build-arm
│ cd build-arm
│ export TOOLCHAIN_ROOT=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
│ cmake -DTARGET=arm ..
│ make install
│ cd ..
│ # bin_arm contains all the result files
│ scp -r bin_arm root@BOARD_IP:/root
╰────
Set 32bit framebuffer
─────────────────────
Before running demos, the fbdev should be in 32 bit mode.
Run following commands on the board:
╭────
│ sudo -s
│ cat << EOF >/etc/init/fbset.conf
│ # fbset - run fbset to set truecolor fbmo
│ description "run fbset before lightdm"
│ start on startup and started udev or starting lightdm
│ task
│ script
│ [ -x /bin/fbset ] && /bin/fbset -a -nonstd 1 -depth 32 -rgba "8/0,8/8,8/16,8/24"
│ end script
│ EOF
│ cat << EOF >/etc/X11/xorg.conf
│ Section "Screen"
│ Identifier "Default Screen"
│ DefaultDepth 24
│ EndSection
│ EOF
╰────
Then reboot the device.
Run demos
─────────
Before running demos, make sure you have:
1. Flashed the new Linux kernel.
2. Updated mali_kbase.ko
3. Installed Mali user drivers
4. Uploaded Mali demos
5. Configured 32bit framebuffer
Then open a terminal, run one of the demo:
╭────
│ sudo -i
│ cd bin_arm/opengles_30/skybox
│ ./skybox
╰────
Enjoy!
Video
──────
在设置32bit位深以后,输出的显示效果不好,花屏的问题,等我接下来解决了跟大家分享。
参考论坛:Mali kernel driver TX011-SW-99002-r5p1-00rel0 for firefly的更多相关文章
- VirtualBox,Kernel driver not installed (rc=-1908)
http://hi.baidu.com/spt_form/item/316d6207b47b8ee03499020a VirtualBox,Kernel driver not installed (r ...
- CentOS VirtualBox启动虚拟及报错:VirtualBox error: Kernel driver not installed (rc=1908)
VirtualBox error: Kernel driver not installed (rc=1908) Hi all, Let me first say that this is my fin ...
- Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
VisualBox之所以在Linux上比传统的VMware快得多,关键一点就是它和Linux内核的结合比较紧密,这也是开源的优点. 不过Linux内核更新很频繁,每次更新内核后启动VirtualBox ...
- virtualbox cannot access the kernel driver的解决办法
一位网友windows xp sp3下安装virtualbox 4.1.20版本,安装好了重启过后,可以打开virtualbox,但是等到创建好虚拟电脑后按启动按钮,就出现了错误提示:"Ca ...
- Fedora安装VirtualBox时出现错误Kernel driver not installed (rc=-1908)的解决办法
新建虚拟机后启动时出现如下错误: Kernel driver not installed (rc=-1908) The VirtualBox Linux kernel driver (vboxdrv) ...
- How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
- ubuntu中使用virtualbox遇到Kernel driver not installed (rc=-1908)错误
百度之后得到解决,再此做个笔记 错误提示 Kernel driver not installed (rc=-1908) The VirtualBox Linux kernel driver (vbox ...
- Android Camera 通过V4L2与kernel driver的完整交互过程
http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...
- Ubuntu 14 中 VirtualBox发生错误Kernel driver not installed (rc=-1908)
宿主系统是Ubuntu 14,在VirtualBox中安装 CentOS 6.5 时,提示如下错误: Kernel driver not installed (rc=-1908) 网友提供的解决方案: ...
随机推荐
- C++类成员函数
c++的两大特色是多态和模板.其中多态是通过继承和虚函数来实现的,其中虚函数是通过每个对象里面的虚表来实现的.如果这个对象的类有虚函数,那么这个类就有一张虚表,存的是每个虚函数的入口地址,而这个类的每 ...
- IntelliJ IDEA 14.1.4破解方法-通过程序根据用户名生成注册码
将下面的代码拷贝到Eclipse或者其他的开发工具中,在main方法中指定自己的用户名(随意),运行main方法,在控制台即可生成注册码.然后启动IntelliJ IDEA 14.1.4,然后根据提示 ...
- ubuntu 中DNAT SNAT配置实验.
1. 目的 图1 如图1所示,有A,B两台计算机,其中A配置成普通PC,B是网关.实现由A向一个不存在的IP 发起tcp连接,并能向这个不存在的ip发送数据. 同时响应这个tcp连接的是B中 ...
- 【神经网络】LSTM 网络
Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息.LSTM 由Hochreiter & Schmidhuber (199 ...
- idea 同project添加多个module maven支持
选中新项目的pom.xml 会识别maven项目
- VC/Wince 实现仿Win8 Metro风格界面1——设计概述和自绘Button(附效果图)
去年用VC做了一个仿Win8 Metro风格的界面,感觉挺有意思,最近打算把实现过程和一些技术原理记录下来. 主要是风格上类似Win8,其实功能上很多借鉴了Android的操作方式.界面只支持两种大小 ...
- HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成增删改查功能
其实HBase/LevelDB等系统,背后都应用了Log-structured merge tree.HBase的写操作有两个步骤:1) 写入HLog(防止宕机丢失数据), 2) 写入对应的Memst ...
- mac上使用zsh配置环境变量
Mac配置环境变量的地方 一./etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. 二./etc/bashrc (一般在这个文件中添加系统级环境 ...
- nginx servername配置域名网站可以正常登录,servername配置IP+Port却无法正常登录
由于业务的原因,需要将网站从通过域名访问变换为通过IP+PORT的访问方式: 以前的配置: server { listen ; server_name wx.xxxx.com; } 以前的登录页面: ...
- [Socket]Socket进程间的通信
转自:http://blog.csdn.net/giantpoplar/article/details/47657303 前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket ...