New Raspberry Pi Kernels & Related Packages

Did not change anything.

I built the current rpi 5.14-rc2 with bcm2711_defconfig and booting with UEFI:

With kms, no backtrace, clean boots except for:
hdmi-audio-codec hdmi-audio-codec.3.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19

and it works with v3d enabled or disabled.

With fkms, a black screen and unresponsive keyboard.

Very similar to what I see also on all 3 of the latest kernels. I never tested the audio because I just did not care with all of the other things going on and not to mention them disabling a feature because it would not compile. I was also getting the hdmi-audio-codec errors.

If I switch between v3d and llvmpipe by the use of the disable-v3d suse overlay, I have working sound. vc4 with digital hdmi and bcm2835 for the headphone jack. In both cases, I load the vc4-kms-v3d-pi4 overlay.

Or maybe it is time to move to kms as the default? The re-base of the code to upstream makes it the “default” now, at least as far as the code is concerned. Evidenced by the RPI folks having to patch, to get fkms working.

If anyone is interested in the use of the disable-v3d overlay:

$ nano disable-v3d.dts

/dts-v1/;

/ {
        compatible = "brcm,bcm2711";

        fragment@0 {
                target = <0xffffffff>;

                __overlay__ {
                        status = "disabled";
                };
        };

        __fixups__ {
                v3d = "/fragment@0:target:0";
        };
};

Next, compile it into the overlay:

sudo dtc -@ -Hepapr -I dts -O dtb -o /boot/overlays/disable-v3d.dtbo disable-v3d.dts

Finally, add it to config.txt (order matters):

dtparam=audio=on
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=disable-v3d

You will have vc4 for hdmi sound and 2d video and llvmpipe rendering. Comment out dtoverlay=disable-v3d and you will have vc4 for hdmi sound and 2d video and v3d rendering. Nice and simple, and benefits from stable device detection and configuration. bcm2835 provides the headphone jack in both instances.

For Plasma, you can not use xf86-video-fbturbo-git. But for other desktops it may work, but you will need to manage the 99-fbturbo.conf file.

Edit: You can incorporate u-boot and have a boot menu which selectively loads the disable-v3d overlay.

Edit 2: And you want these as kernel arguments: snd_bcm2835.enable_compat_alsa=0 and snd_bcm2835.enable_hdmi=1

So far, I have not seen a backtrace with 5.14-rc2 + kms + v3d.

Yep kms, + v3d seems to be working ok. The problem is not everyone can use kms + v3d. I can not with my Vizio tv (never have been able to) which I suspect will be true for most using tv’s for monitors; fkms + v3d does fine on my Vizio. But my old Gateway monitor has no issues with either mode.

Are you still using bcm2711_defconfig?

Yes 5.14.0-rc2-v8, not even a local name change.

I’m uploading the packages with all of our modules plugged in for you to test.

Of course test this with kms + v3d only. It should have all modules enabled as in 5.12.

md5sum:
03cb63592b0b6e853a53aba1d2e1c95a 5.14-rc2.tar

https://drive.google.com/file/d/1rmvly427-Kr2OcePZ99SLgkXxVmDPcaM/view?usp=sharing

I tested the latest upstream linux-rc3 @strit built and uploaded to unstable this mourning and it seems to be ok with the pi4. Of course no V3D rendering…

Have you tried editing the Kconfig file so you can add CONFIG_DRM_V3D=m?

This patch is not applied to upstream. Don’t do this.

The test rc kernel, seems to be good so far. Pretty clean dmesg and journalctl, no backtrace.

Do not know what you are getting at. Present config in what you are testing:

config

Sorry, I should have been more specific. For the kernel @Strit built, linux-rc3. If he applies that patch, I believe he can then build the linux-rc3 kernel with v3d.

I see. Upstream used to have v3d support in the drivers/staging/ area but it is gone now due kernel changes they had made a couple of years ago. It would be a monumental task to patch in all of the needed patches as it will affect so many things.

ADDED:

When testing upstream last week I ran into issues with getting sound to work right with the 5.14 kernel. I found out that by uninstalling all pulseaudio packages and installing pipewire’s counterparts the audio seemed to be ok (including bluetooth). I have not tested with linux-rpi4-rc kernel yet using pulseaudio as pipewire is installed. I wonder if there is the same issue now in linux-rpi4-rc 5.14 kernel.

[ray@pi4 ~]$ pacman -Ss pipewire | grep installed
extra/pipewire 1:0.3.32-1 [installed: 1:0.3.31-1]
extra/pipewire-alsa 1:0.3.32-1 [installed: 1:0.3.31-1]
extra/pipewire-media-session 1:0.3.32-1 [installed: 1:0.3.31-1]
extra/pipewire-pulse 1:0.3.32-1 [installed: 1:0.3.31-1]

This install happens to be using Pulseaudio, sound is working fine. digital hdmi and headphones.

$ inxi -Fxz
System:    Kernel: 5.14.0-rc2-1-MANJARO-ARM aarch64 bits: 64 compiler: N/A Desktop: KDE Plasma 5.22.3 Distro: Manjaro ARM 
           base: Arch Linux 
Machine:   Type: Embedded-pc System: Raspberry Pi Foundation product: Raspberry Pi 4 Model B v: D03114 serial: <filter> 
           Mobo: Sony UK model: Raspberry Pi 4 Model B v: D03114 serial: <filter> UEFI: https://github.com/pftf/RPi4 
           v: UEFI Firmware v1.26 date: 04/16/2021 
CPU:       Info: Quad Core model: N/A variant: cortex-a72 bits: 64 type: MCP arch: ARMv8 rev: 3 
           features: Use -f option to see features bogomips: 432 
           Speed: 600 MHz min/max: 600/1800 MHz Core speeds (MHz): 1: 1000 2: 1000 3: 1000 4: 1000 
Graphics:  Device-1: bcm2711-hdmi0 driver: vc4_hdmi v: N/A bus-ID: N/A 
           Device-2: bcm2711-hdmi1 driver: vc4_hdmi v: N/A bus-ID: N/A 
           Device-3: bcm2711-vc5 driver: vc4_drm v: N/A bus-ID: N/A 
           Display: x11 server: X.Org 1.20.12 driver: loaded: modesetting s-res: 1920x1080 
           OpenGL: renderer: V3D 4.2 v: 2.1 Mesa 21.1.5 direct render: Yes 
Audio:     Device-1: bcm2711-hdmi0 driver: vc4_hdmi bus-ID: N/A 
           Device-2: bcm2711-hdmi1 driver: vc4_hdmi bus-ID: N/A 
           Device-3: bcm2835-audio driver: bcm2835_audio bus-ID: N/A 
           Sound Server-1: ALSA v: k5.14.0-rc2-1-MANJARO-ARM running: yes 
           Sound Server-2: JACK v: 0.125.0 running: no 
           Sound Server-3: PulseAudio v: 14.2 running: yes 
           Sound Server-4: PipeWire v: 0.3.32 running: no 
Network:   Device-1: bcm2835-mmc driver: mmc_bcm2835 v: N/A port: N/A bus-ID: N/A 
           IF: wlan0 state: up mac: <filter> 
           Device-2: bcm2711-genet-v5 driver: bcmgenet v: N/A port: N/A bus-ID: N/A 
           IF: eth0 state: down mac: <filter> 
Drives:    Local Storage: total: 223.57 GiB used: 39.84 GiB (17.8%) 
           ID-1: /dev/sda type: USB vendor: Kingston model: SA400M8240G size: 223.57 GiB 
Partition: ID-1: / size: 55.38 GiB used: 39.76 GiB (71.8%) fs: btrfs dev: /dev/sda3 
           ID-2: /boot/efi size: 246.1 MiB used: 82.7 MiB (33.6%) fs: vfat dev: /dev/sda1 
           ID-3: /home size: 55.38 GiB used: 39.76 GiB (71.8%) fs: btrfs dev: /dev/sda3 
           ID-4: /var/log size: 55.38 GiB used: 39.76 GiB (71.8%) fs: btrfs dev: /dev/sda3 
Swap:      ID-1: swap-1 type: partition size: 4 GiB used: 0 KiB (0.0%) dev: /dev/sda2 
Sensors:   System Temperatures: cpu: 38.9 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 199 Uptime: 34m Memory: 7.69 GiB used: 1.43 GiB (18.6%) gpu: 76 MiB Init: systemd Compilers: gcc: 10.2.0 
           Packages: 974 Shell: Bash v: 5.1.8 inxi: 3.3.05
BOOT_IMAGE=(hd0,gpt3)/@/boot/kernel8.img root=/dev/sda3 rw rootwait snd-bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 console=serial0,115200 console=tty3 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=serial0,115200 usbhid.mousepoll=8 audit=0

I was on -rc2 last week. Maybe they fixed it in -rc3.

Good news with linux-rpi4. They reverted a patch today and I can now boot either kms or fkms with V3D rendering. They have not done the same with 5.13 or 5.14 yet but will check tomorrow to see if they did the same with them. If they have not I will see if they can be reverted and see what happens with them since they have the same issue.

https://github.com/raspberrypi/linux/commit/9a22b00c1e40799b4014a96644d811307e7114d2

This kernel is still a WIP for them to convert VC4 to upstreams’s so if you are not totally happy with it try the 5.10.46-1 kernel link I posted above somewhere. It is the last kernel before all of the conversion process begin.

Pushed to the upstream branch when the mirrors sync. Also the 2 raspberrypi-bootloader packages in upstream also need to be installed with this kernel.

linux-rpi4 5.10.52-1
linux-rpi4-headers 5.10.52-1