Rpi3-3b+ VC4 Manjaro ARM 19.04 Hack

@Strit has said that the manjaro team is sticking with mainline and will not do VC4 gpu hardware decoding until mainline does. So in the mean time I am using the current manjaro arm kernel and the lxqt 19.06 image and only modified /boot.config.txt and added the vc4-kms-v3d overlay I compiled for aarch64. Now I have the much needed VC4 gpu hardware decoding I need in my hobby with my pi3b/pi3b+.

These modifications should not interfere as new manjaro kernels are upgraded and only takes a few steps to do and is easily reversed.

It should also be noted that this is a temporary fix for testing. The uboot is has cma set to 64M which is too small for everday use. It should play most movies pretty good. Just don't have a lot of windows open to use up memory.

1: Temporary disable /etc/X11/xorg.conf.d/99-fbturbo.conf

sudo mv /etc/X11/xorg.conf.d/99-fbturbo.conf /etc/X11/xorg.conf.d/99-fbturbo~

2: Modify /boot/config.txt and make it look like below:

sudo nano /boot/config.txt

overlay_prefix=overlays/
gpu_mem=64
dtoverlay=vc4-kms-v3d
avoid_warnings=2
 
enable_uart=1
dtparam=audio=on

3: Make /boot/overlays directory, download a file and put it there

#Download file:

https://drive.google.com/file/d/1iG3foSeuj8plUGhPcXOeqcP_tsN_Q67V/view?usp=sharing

sudo mkdir /boot/overlays
sudo cp vc4-kms-v3d.dtbo /boot/overlays/

4: Reboot

sudo reboot

To Reverse the procedure make /boot/config.txt look like this:

#overlay_prefix=overlays/
#gpu_mem=64
#dtoverlay=vc4-kms-v3d
#avoid_warnings=2

enable_uart=1
dtparam=audio=on

Then restore /etc/X11/xorg.conf.d/99-fbturbo.conf

sudo mv /etc/X11/xorg.conf.d/99-fbturbo~ /etc/X11/xorg.conf.d/99-fbturbo.conf

Then reboot your RPi

To go back to VC4 hardware decoding:

sudo mv /etc/X11/xorg.conf.d/99-fbturbo.conf /etc/X11/xorg.conf.d/99-fbturbo~

Then reverse /boot/config.txt:

overlay_prefix=overlays/
gpu_mem=64
dtoverlay=vc4-kms-v3d
avoid_warnings=2
 
enable_uart=1
dtparam=audio=on

Added additional note:

Because of the nature of VC4 you will see a few lines of text scroll by when it first boots and when it enters VC4 mode the text lines will cease in the terminal and you will not see any activity but it is still loading up things. The next thing you will see is when it enters graphical mode at the graphical login screen.

Pic is clip of the Xorg.log showing VC4 loaded:

The next 2 pics show mpv tryng to play first with out VC4 and the next pic shows mpv playing with VC4:

1 Like

This is a really awesome write-up!

Nice job!

PS: When you say you fixed the no sound issue, was that done by the fbturbo stuff?

Thanks Strit. I forgot the terminal pic showing the manjaro original kernel and VC4 modules loaded:

1 Like

fbturbo and VC4 can not exist at the same time. It has to be one or the other depending on which mode you are using.

Sound fix:

sudo nano /etc/modprobe.d/snd_bcm2835.conf

blacklist snd_bcm2835

Okay.

In my tests (on the regular pi3B), I loose all sound when I use that blacklist thing. But i have HDMI sound when not blacklisting. Can't get analog sound to work at all.

Must be a pi3b+ thing then. I have not tested it on pi3. I will right now.

My pi3 sound works just fine. I think I may have left out a step; it has been so long at least for me at 69 years old. lol.

Right click on the Sound icon on the task bar and configure after doing the black listing thing and rebooting. I believe "Built-in Digital Stero (IEC958) will be missing and you will have to click the down arrow and choose it and I also have Pulseaudio checked:

Sound device is present, the "meters" show sound, but no sound is actually getting out of my speakers.
Could just be my setup though.

All I have here is HDMI and sound thru my vizio tv speakers.

Some times in the past trying to get audio to work I have had to delete the sound configuration files in ~/ and let them create new ones and have screwed up /etc/asound.conf also

Here is a pic showing @18Mbit ATSC stream being played with mpv with the VC4 mods using hardware decoding which would be totally out of the question using software decoding. Also notice under the System Information that the cpu's has room for a even more Mbit stream:

Note that the program I use to do a spectrum scan will not be possible with the standard kernel but kaffeine in the repo should work just fine. I use my own kernel I maintain merged with the V4L media_tree and modified dvb/atsc modules that allow blind scanning for satellites/atsc. The kernel as you can see under System Information is now at version 5.2.0-rc4.

There is also an improvement playing youtube videos with VC4:

1 Like

I found a better way to get VC4 going on manjaro on the pi3b with just a few steps and should not interfere as manjaro updates it's kernels. It can also be easily reversed or swapped back and forth.

Read the 1st post for the procedure.

Download link is not working anymore.
Can you tell you how you compiled it, exactly?
Trying to work out a way to do this in packaging. :slight_smile:

I removed the link. Was trying feveriously to compile an image oem all week end to post but kept running into the resize issue for a temp fix until I can get things figured out. I did compile an image last night but have not tested yet with manjaro-arm-tools-git manjaro-arm-tools-git-2.6.0.r1.g7968c27.

The last way I posted worked but saw later that the cma=256 I specified was getting overridden with 64M so one would would run out of memory pretty fast. I am not that familiar with uboot yet to see where it was happening.

That's an "old" version now.
The resize fix is within 2.6.1.r4.g07d6502. :slight_smile:

PS: I found the dtbo file on the raspberry pi firmware github. Is that also one that's usable?

The 64bit overlay has to be compiled with:

make DTC_FLAGS="-@" ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

I will upload and give a link in a few.

1 Like

@Strit

Here is the link:

https://drive.google.com/file/d/1iG3foSeuj8plUGhPcXOeqcP_tsN_Q67V/view?usp=sharing

Just to be clear, it's still possible to get to TTY prompt (without xorg installed), when this is enabled, right?

It should be ok. It stops outputing text when it starts entering graphic mode. I will test and see but my time is limited today. Today is grocery day and it is about 125 mile round trip to town. I live in the sticks. lol