Allwinner A80 is a powerful octa-core processor found in development boards and TV boxes such as Cubieboard4 or Tronsmart Draco AW80. Some early Ubuntu images and instructions had already been released for A80 Optimusboard and Draco AW80, but none of these featured GPU drivers for 3D acceleration, which to be honest, has limited advantages in Linux desktop distributions since desktop environments and most apps require full OpenGL support, i.e. not only OpenGL ES, and the only ARM SoC that can provide OpenGL support without external graphics card is Nvidia Tegra K1 SoC. Having said that GPU drivers would pave the way for smooth OpenELEC / Kodi user interface support in Allwinner A80 Linux distributions. That’s only one part of the puzzle, since the GPU normally handles the user interface, while the VPU takes care of video decoding.
The good news is that CubieTech release updates images for their Cubieboard4 (CC-A80) development with PowerVR GC6200 GPU support, which you can download on Baidu:
- linaro-cb4-emmc-vga-v0.3.img.7z is the eMMC flash image with VGA output
- linaro-cb4-emmc-hdmi-v0.3.img.7z.md5 is the eMMC flash image with HDMI output
The company also provided instructions they followed to create the image, using two files they got from Allwinner rogue_km.tar.gz , and discimage-release-1.4-fix_buffer_ideas_20141216_no_gl.tar.gz, available on Cubieboard server.
The steps below have been completed in an Ubuntu 14.04 computer’s terminal window, and may need some corrections, since I’ve mostly edited them from an email but not tried myself:
- Build drivers
123tar -zxpf rogue_km.tar.gzcp -rf rogue_km linux-3.4/modulescd rogue_km/build/linux/sunxi_linux && make -j4
The two drivers files dc_drmfbdev.ko and pvrsrvkm.ko can be found in linux-3.4/modules/rogue_km/binary_sunxi_linux_xorg_release/target_armhf directory
- Copy drivers to SD card
You’ll need to download and extract Linaro Ubuntu 14.04 rootfs, and copy the drivers to a bootable sdcard in the rootfs partition
123<span lang="en-US">mkdir -p <path_to_rootfs>/lib/modules/3.4.3/extracp dc_drmfbdev.ko pvrsrvkm.ko <path_to_rootfs>/lib/modules/3.4.39/extra/sync </span>
- Copy libraries to rootfs
123456789101112sudo tar -zxpf discimage-release-1.4-fix_buffer_ideas_20141216_no_gl.tar.gzcd <path_to_rootfs>/usr/local/pvrcp -rf etc/ <path_to_rootfs>/cp -rfd include share <path_to_rootfs>/usrcp -rfd lib/xorg <path_to_rootfs>/usr/libcp -rfd lib/* <path_to_rootfs>/usr/lib/arm-linux-gnueabihfcp -rf ssl <path_to_rootfs>/etccp -rf ssl/misc/ <path_to_rootfs>/usr/lib/sslcd discimage/usr/cp -rfd lib/* <path_to_rootfs>/usr/lib/arm-linux-gnueabihfcp -rf local/bin <path_to_rootfs>/usr/localsync
- Insert the SD card into Cubieboard4 board, boot, and complete the steps as follows:
1234567mkdir -pv /usr/local/pvr/lib/dri/cd /usr/local/pvr/lib/dri/ln -s /usr/lib/arm-linux-gnueabihf/dri/pvr_dri.soln -s /usr/lib/arm-linux-gnueabihcdf/dri/swrast_dri.sorm /usr/lib/arm-linux-gnueabihf/mesa-egl -rfcd /usr/lib/arm-linux-gnueabihfln -s libGLESv2.so.1.4.3064661 libGLESv2.so.2
Edit /etc/modules to add the two lines:12dc_drmfbdevpvrsrvkm
Insert the modules, run depmod, and reboot to complete the installation:
1234insmod /lib/modules/3.4.39/extra/dc_drmfbdev.koinsmod /lib/modules/3.4.39/extra/depmodreboot
Now you can test 3D graphics acceleration works with glmark2-es2 or es2gears:
<span lang="en-US">sudo apt-get install glmark2-es2
sudo glmark2-es2 </span>
Thanks to Ovidiu for the info.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.