Some personally maintained packages that are unsuitable for AUR will be hosted here.
A closed-source Bifrost Mali driver (userspace part) for Mali G52.
It provides OpenCL and OpenGL ES support on Orangepi 3B.
Repacked from https://github.com/orangepi-xunlong/rk-rootfs-build/.
Note: How to use Mali G52?
To utilize the GPU, you have to choose one of the following options:
- Open-sourced upstream solution:
- Kernel modules: Panfrost (need to be enabled in mainline kernel, NOT in OrangePi OS)
- Userspace: Mesa with Panfrost support (just
pacman -S mesa
may work)- Closed-sourced downstream solution:
- Kernel modules: Mali GPU kernel modules (already built in OrangePi OS, NOT in mainline kernel)
- Userspace: This package (just
makepkg -si
it)
linux-aarch64-rockchip-opi3b-npu-w568w
in this repository has Panfrost enabled.See OpenSUSE Wiki for more information.
The Linux kernel and modules with my own patches for Orangepi 3B. Adapted from (and would be synced with) @SUISHUI's repository.
Note: Why the kernel name is so long?
The name follows @7Ji's Kernel Package Guidelines.
It should be kept up-to-date with upstream kernel, rather than full of patches and dirty hacks, or even diverged from upstream (saying you, Rockchip and Xunlong!)
It can be a drop-in replacement of the default kernel (usually called linux-rk3566-legacy
) in OrangePi OS (based on Archlinux ARM).
It is patched with following features:
Panfrost kernel module is included and enabled by default. So you can use it with Mesa 3D to enjoy OpenGL ES and OpenCL with your GPU too.
RKNPU driver is migrated by myself from downstream kernels rockchip-linux/kernel and orangepi-xunlong/linux-orangepi.
Warning
A lot of changes and polyfills are made to make the NPU driver work properly. It is quite experimental and may not work on your device; you have been warned.
See Also
Keep an eye on Tomeu Vizoso's blog as he is working towards a fully open-source NPU driver for rockchip devices by reverse engineering.
(1) In my case, power model is not working but it does NOT affect the functionality of NPU:
[ 2.501015] RKNPU fde40000.npu: RKNPU: rknpu iommu is disabled, using non-iommu mode
[ 2.503000] [drm] Initialized rknpu 0.9.3 20231121 for fde40000.npu on minor 1
[ 2.503800] RKNPU fde40000.npu: bin=0
[ 2.504027] RKNPU fde40000.npu: Failed to get leakage
[ 2.507392] RKNPU fde40000.npu: avs=0
(2) Only tasks submitted after the first initialization of RKNN Runtime can be executed. Once the runtime is created again, the NPU is likely not to work anymore until machine reboot. Solved by disabling RKNPU MMU (Memory Management Unit) in device tree. Do not know the root cause yet.
[ 605.159276] RKNPU: failed to wait job, task counter: 0, flags: 0x5, ret = 0, elapsed time: 6160643us [ 605.267268] RKNPU: job timeout, flags: 0x0, irq status: 0x0, raw status: 0x0, require mask: 0x300, task counter: 0x0, elapsed time: 6268640us [ 605.375257] RKNPU: soft reset [ 607.915608] RKNPU: failed to wait job, task counter: 0, flags: 0x5, ret = -512, elapsed time: 2524485us [ 608.023253] RKNPU: job abort, flags: 0x0, ret: -512, elapsed time: 2632132us
(3) WLAN driver for UWE5622 prints a lot of errors and stack traces in dmesg, but it does NOT affect the functionality of network adapter:
[ 18.181010] sprdwl:sprdwl_rx_skb_process, drop loopback pkt, macaddr:24:b7:2a:a7:af:e9
[ 19.206465] sprdwl:sprdwl_rx_skb_process, drop loopback pkt, macaddr:24:b7:2a:a7:af:e9
[ 19.220338] sprdwl:sprdwl_rx_skb_process, drop loopback pkt, macaddr:24:b7:2a:a7:af:e9
My edge branch of linux-aarch64-rockchip-opi3b-npu-w568w. It is used for testing new features and patches, and may be unstable or even unbootable. Use it at your own risk.
Notes
You may want to cross-build it on a x86_64 machine with following options:
$ makepkg --syncdeps --config makepkg.conf