Test with October Armbian build (M4 Zero)

Wifi working. Camera working. Video working. Sound working. Nice job overall!

ONE small problem is hardware acceleration not working. This chip is technically capable of 4k at 75Hz but the following is only 1080p playing in a 640x360 window and it struggles. I cannot find video drivers. Please help.

gst-launch-1.0 filesrc location=$HOME/Videos/1080.mp4 ! decodebin ! videoconvert ! videoscale ! video/x-raw,width=640,height=320 ! autovideosink

Good news is everything else works. Here are the commands I used to get here:

sudo apt install gstreamer1.0* v4l-utils ffmpeg python3 python3-pip
sudo apt remove -y gstreamer1.0-vaapi
rm /usr/lib/python3.11/EXTERNALLY-MANAGED
pip install opencv-python mediapipe

The image I used is: 20241011_Bananapi-Armbian_24.8.2_Bpi-m4zero_debian12_bookworm_legacy_5.4.125_xfce_desktop

by the way, I had to get them from the Docs page below… The links on the wiki don’t work at all.

https://docs.banana-pi.org/en/BPI-M4_Zero/BananaPi_BPI-M4_Zero#_linux_1

This is my hardware setup

1 Like

I’ve got the same issue, drivers of the device(network and graphics) are very hard to find and configure in other distros and in the base images which I rather not use, the graphics drivers aren’t working, lvmpipe is returned.

I would like to create a Github organization for all Banana Pi products that modifies and provides the latest GPIO libraries for Banana Pi’s. As well as a website with a community, but which contains integrations of the Banana Pi and Armbian communities!" (Discord, IRC & phpBB3 Board), its own server, with APT mirror, especially for the packages we provide.

I would be happy if someone like you formed a team with me!"

We could start with a TODO list of the required firmwares/device trees that are still missing in the build system.

I would be gratefull if someone like you would be in a team with me to slove some issues

It seems we need to have Cedrus in our kernel. The 5.4 Kernel I used from the docs page does not have it (run lsmod and see). The link below shows our chip (H616/618) is in the “untested” category.

https://linux-sunxi.org/Sunxi-Cedrus#SoC_Support

In testing Armbian 24.8.1 Noble Gnome I found these are installed in the 6.6 kernel:

Despite this, pre-installed video players are not taking advantage of hardware acceleration and the sound does not work.

WiFi also does not work. I can’t test 6.6 any further without network.

there is a work around in Armbian for wifi, not sure if it works on Armbian 24.8.1 Noble Gnome too.

add the following line to /boot/armbianEnv.txt
overlays=bananapi-m4-sdio-wifi-bt

Then connect using the following command:
nmcli device wifi connect "$SSID" password "$PASSWORD"
replace $SSID and $PASSWORD with your Wifi name and password

but this all shows how bad driver support is for this device, I had the same with sound and graphics as mentioned above.

No luck on that one.

I did have some luck with a USB adapter I forgot I had. It’s a RTL8188EUS 2.4ghz and loaded just fine. So I started with the Debian 12 Home Assistant minimal install (because the IoT one lacked network commands) and install X11 with LXQt and gstreamer, vlc, mv, ffmpeg, v4l-utils and ran some tests.

Comparing inxi output. Looks like it’s missing a mali-bitfrost driver. Maybe one of these

mpv -v --hwdec=auto --vo=drm 1080.mp4 shows the above error about permissions.

Still no hardware acceleration… plays Mpeg2 just fine. Pulseaudio shows a sound stream. Just not coming through the speakers.

image

Would be nice to get some WiFi drivers… the dongle is slow. Don’t know what sort of hardware it is. Here is the shot from the schematic… it’s a Keiiot K019-CW43-Dw ?

I have the GPIO working with this board. If you get the python wrapper working, I’ll make a gesture based example where you activate objects with a thumbs up or something.

https://github.com/ignuicould/WiringBPi-M4Zero

I installed Lazarus and made a GUI test app to control the output on pin #7. Works as it should.

This LED could be replaced with a relay to control something bigger. I have one I can test with.

I got the python wrappers working and used OpenCV and MediaPipe to control the GPIO with gestures (thumbs up/down). Could easily be made to turn the lights on when it detects faces (human presence detection). Face detection runs at 26fps and hand gestures detection runs at 3fps. That’s why it’s slow. In the video.

Armbian Build Project

Armbian forum answered that long time ago. There is new revision of board and there things are complicated. If you fix it before us, PR’s are welcome.

If I do fix it, I most likely will keep it to myself. The admin Igor from your official Armbian forum has made it clear that contributions are NOT welcome unless they are done a certain way. I am a professional developer with over 20 years of experience and any solution I share is a kindness, not an obligation. I especially don’t have time for it if I’m to be reprimanded and called “low quality” for providing a working solution because I didn’t do it a certain way :angry:

Contributions are welcome, don’t get it wrong. But. Virtually all serious open source projects sets standards. If not, they will suffer, and that is not polite, after you eventually lost interest for its maintaining. For whatever reason. FOSS community have troubles replacing (critical) assets just like that, while in business environments someone will pick after you leave the company. This happens here often. Sadly most of open source projects have not enough resources to deal with contributions maintenance no matter how important that work is for you or for everyone. People usually notice that something fell apart when it’s too late. You need to convince more people than one …

Developing code well, secures its moderate maintaining costs, social aspect is important. This is IMO more important in FOSS then it is in professional development.

Development part is actually the fun part and making the bond with people that will integrate and/or maintain contribution after you are done with your objective is even more important. If you do it well, do it universal and right people will help.

Keep in mind that there are a lot more developing then maintainers resources and that default state of any code is liability.