-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Around Christmas two packages were added to the Pine64 Wiki Mali Driver page.
The first one mali400-r6p2-01rel0-km-003.tar.7z
:
- contains a kernel module providing a DRM driver
- a merged tree can be found here: https://github.com/subdiff/linux-pine64
- compiling works fine, should work together with:
the second one mali400-r6p2-01rel0-um009-wayland.tar.bz2
:
- contains libEGL, libGLES, libgbm, libwayland-egl and libMali blobs,
But currently it does not work when directly replacing the current blobs in /usr/lib/aarch64-linux-gnu/mali-egl
and the compiled kernel module in /lib/modules/3.10.105-bsp-1.2/kernel/extramodules
: in SDDM the mouse cursor is visible, but everything else stays black. Yet switching to another VT works and shows that the correct kernel module is loaded.
There are 3 custom parts:
-
DRM driver in the Kernel https://github.com/ayufan-pine64/linux-pine64 (Build instructions here)
-
Proprietary GLES implementation ( libMali.so ) https://github.com/shadeslayer/pine64-mali-x11
App timing: https://github.com/davidedmundson/tinytimer
This app times from a process launch to a window appearing.
To get an overview of kernel development in relation to modules and drivers:
- start with Robert Love - Linux Kernel Development, chapters 2 and 17,
- afterwards read the beginning of Jonathan Corbet - Linux Device Drivers and take it as a reference book for later on.
There is also Sreekrishnan Venkateswaran - Essential Linux Device Drivers, which seems to be quite comprehensive and Greg Kroah-Hartman - Linux Kernel in a Nutshell, which I can not recommend.
- Flash image to microsd card as usual
- Once booted into the live system, flash microsd card to emmc with :
sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress
- Power off machine
- Remove microsd card
- Power on machine
- Run installer as usual
A Pinebook image is usable on a Pine64+ (2GB) board as well. This is a possibly-easier-to-get hardware platform for testing the images. The entire Linux stack is the same, but U-Boot must be replaced.
- dd the pinebook image onto SD card
- get pine64 uboot (1015kb)
dd if=uboot-pine64.img of=<device> bs=1k conv=notrunc,sync seek=8
This writes blocks 8..1023 (which covers the SPL and U-Boot) with a blocks obtained from an openSUSE image, tested with the Neon pinebook images from December and January.
On ARM install libc6-dbg
for better backtraces.
Configuration files:
.config/kwinrc
[Compositing]
GLPreferBufferSwap=p
.config/kdeglobals
[QtQuickRendererSettings]
ForceGlCoreProfile=true