Downgrade kernel on arm

Hi,
I noticed that the latest kernel no longer supports my display monitor. Its been a while before I’ve updated the box and now my display doesn’t work. However, it works fine on other displays. Is there a way to downgrade the kernel on arm?

::The same dsiplay works fine with my other arm box rock5b running arch though it is running on an old kernel.

Yes, it is possible to downgrade the kernel through pacman (as on any other CPU architecture). Of course, this means you need to somehow either boot the device or mount its filesystem and chroot into it, and you need to find a copy of the old package if you do not have it cached locally.

Which display is it?

Can you find out the config that is needed for your display maybe it got disabled in the new kernel.

1 Like

Hi,
My display is Samsung: UN55NU7300FXZC.

Guessing you have the linux-firmware package installed?

Hi,
Just checked to make sure and yes i do have that installed as well.

Should i remove this package or is this a kernel issue?

Not sue which device you have to advise. I mostly do raspberry pi things.

Sorry i forgot to mention this issue is on my rockpro64 box.

I have a rockpro64 but I always use it headless with my vim3pro for distcc.

strit removed the linux-firmware package from the kernel depends over a year ago thinking that the kernel would handle things It is now under optdepends.

'linux-firmware: additional firmware'

With reqards to the RPi and I am guessing with other devices using a TV for a monitor can be problematic with getting the tv’s EDID info with KMS. I use a VIZIO tv here and have had issues with both RPi and upstream kernels with upgrades anywhere from no video output at all to black screen when it tries to go in graphics mode. Most generally this could be fixed by specifying video parameters at boot time. Right now I have to load a custom firmware file I put in /lib/firmware/ at boot that loads all of my TV’s capabilities that is used when the system enters graphics mode in cmdline.txt.:

drm.edid_firmware=edid.dat video=HDMI-A-1:D

I also have to put some entries in my config.txt to have video in the TTY at first boot:

hdmi_mode:0=39
hdmi_group:0=2    # For first HDMI port
hdmi_force_mode:0=1    # For first HDMI port
hdmi_ignore_edid:0=0xa5000080

From the outside looking in with your device my guess on the kernel could be the culprit or just maybe your system might be falling back to using some firmware that may have been removed in the latest linux-firmware package. When in graphics mode the firmware used does not always have the brand or type of the monitor used. Mine right now with the VIZIO Tv says I have a 7" monitor when it is 32". I have seen in the past it using a completely different brand and having some limited resolutions. Sometimes I have seen the upstream kernel only use one resolution.

I do have some older kernels stored in my cache along with an older linux-firmware package if you had cleared out your cache. Some times even though your monitor does not work you can ssh to your device and install packages.

Here is what I have in my rockpro64 cache:

linux-5.18.12-1-aarch64.pkg.tar.zst
linux-5.18.4-1-aarch64.pkg.tar.zst
linux-5.18.5-2-aarch64.pkg.tar.zst
linux-6.2.10-1-aarch64.pkg.tar.zst
linux-6.4.13-1-aarch64.pkg.tar.zst
linux-6.4.2-1-aarch64.pkg.tar.zst
linux-firmware-20220708.be7798e-0.1-any.pkg.tar.zst

Thank you for the great advice. I will try editing the cmdline first and if that doesn’t work I may need to try an older kernel. My cache was wiped recently and have lost all the stored files.

I found that the device can read the display. It tries to load a really high resolution by default that the display struggles with. Is there a way to fix the resolution?

I have this in my /boot/extlinux/extlinux.conf setting the video resolution. I noticed there a extlinux.conf.pacnew that did not have that. I may have added it a long time ago because my VIZIO defaults to a weird 1360x768 resolution.

[ray@rock64 ~]$ cat /boot/extlinux/extlinux.conf
LABEL Manjaro ARM
KERNEL /Image
FDT /dtbs/rockchip/rk3399-rockpro64.dtb
APPEND initrd=/initramfs-linux.img console=tty1 console=ttyS2,1500000 root=LABEL=ROOT_MNJRO rw rootwait video=eDP-1:1920x1080@60 splash audit=0

I can tell the conf is really old. It was before the bootsplash addition.

The .pacnew one:

[ray@rock64 ~]$ cat /boot/extlinux/extlinux.conf.pacnew 
LABEL Manjaro ARM
KERNEL /Image
FDT /dtbs/rockchip/rk3399-rockpro64.dtb
APPEND initrd=/initramfs-linux.img console=tty1 console=ttyS2,1500000 root=LABEL=ROOT rw rootwait bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.