Ubuntu mate 24.04: screen resolution fixed to 1024x768 with last kernel update

Hi,
I cannot upgrade the kernel version from 6.8.0-11, even 6.8.0-55 has the same problem.

uname -a
6.8.0-11-generic #11-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 14 02:53:31 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

inxi -G
Graphics:
Message: No ARM data found for this feature.
Display: x11 server: X.Org v: 21.1.11 driver: X: loaded: modesetting
unloaded: fbdev dri: swrast gpu: N/A resolution: 1920x1080~60Hz
API: EGL v: 1.5 drivers: swrast platforms: x11,surfaceless,device
API: OpenGL v: 4.5 vendor: mesa v: 24.2.8-1ubuntu1~24.04.1
renderer: llvmpipe (LLVM 19.1.1 128 bits)

The latest available kernel 6.11.0-17 does not work.

6.11.0-17-generic #17~24.04.2-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 20 21:54:05 UTC 2 aarch64 aarch64 aarch64 GNU/Linux

inxi -G
Graphics:
Message: No ARM data found for this feature.
Display: x11 server: X.Org v: 21.1.11 driver: X: loaded: fbdev
unloaded: modesetting dri: swrast gpu: N/A resolution: 1024x768
API: EGL v: 1.5 drivers: swrast platforms: x11,surfaceless,device
API: OpenGL v: 4.5 vendor: mesa v: 24.2.8-1ubuntu1~24.04.1
renderer: llvmpipe (LLVM 19.1.1 128 bits)

The only difference that I see is modesetting <-> fbdev.
What can I do?

Thank you

I'm curious what the output of lsmod | grep fb is on both kernels (and lsmod | grep mode I guess).

1 Like

6.8.0-11-generic

lsmod | grep fb
hyperv_fb 24576 0
hv_vmbus 172032 8 hv_balloon,hv_utils,hv_netvsc,hid_hyperv,hv_storvsc,hyperv_keyboard,hyperv_drm,hyperv_fb

lsmod | grep mode

6.11.0-17-generic

hyperv_fb 24576 1
hv_vmbus 172032 8 hv_balloon,hv_utils,hv_netvsc,hid_hyperv,hv_storvsc,hyperv_keyboard,hyperv_drm,hyperv_fb

lsmod | grep mode

2 Likes

Wait, is this UM running on Hyper-V (i.e. a virtual machine on Windows)? If so, then I'm definitely of no use here.

Right, and there is an important reason. Unfortunately, the device SoC, Snapdragon 8cx gen 2, is the only one in the series (gen 1, gen 3 and gen 4 (links are not accepted)) that is not supported by the Linux kernel. So the only solution I have found is to use hyper-v on windows 11 (virtualbox does not work on arm on windows).
In any case, the virtual machine with ubuntu mate 24.04 only works fine with kernels up to 6.8.0-11, so I think there is a problem with this os.
What can I do? Resell my device?

2 Likes

You can put a hold on the kernel package if you're willing to eat whatever updates/features get held back.

You could try 'bisecting' with the mainline kernels to figure out exactly which commit broke the display support. Thats obviously an arduous task but I dont have other ideas handy. Then ... well ... talk to the kernel devs.

Otherwise; maybe qualcomm upstreams whatever they use one day? Hard to say.

3 Likes

I agree that bisecting is a long task. However, I have tried installing all available kernels and can confirm that the problem is between 6.8.0-11-generic and 6.8.0-31-generic. There are no other precompiled versions, is it possible to find them somewhere?

Hopefully, the following info might help a bit

https://bbs.archlinux.org/viewtopic.php?id=260982

1 Like

Hi,
thank you for your suggestion, however it did not work.

6.8.0-11-generic

xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 1920 x 1200
Virtual-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00 +
1920x1080 60.00*
1600x1200 60.00
1680x1050 59.95 59.88
1400x1050 59.98 59.95
1600x900 60.00
1280x1024 60.02
1440x900 59.89 59.90
1280x960 60.00
1366x768 59.79 60.00
1360x768 60.02
1280x800 59.81 59.91
1280x768 59.87 59.99
1280x720 60.00
800x600 60.32 56.25
848x480 60.00
640x480 59.94

6.11.0-17-generic

xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
default connected primary 1024x768+0+0 0mm x 0mm
1024x768 0.00*

The following commands failed as expected:

xrandr --addmode default 1920x1080_60.00
xrandr: Failed to get size of gamma for output default
xrandr: cannot find mode "1920x1080_60.00

xrandr --output default --mode 1920x1080 --rate 60
xrandr: cannot find mode 1920x1080

I also tried to edit the file

/etc/default/grub

GRUB_GFXMODE=640x480->1920x1080

No success

There are pre-compiled mainline kernels here Index of /mainline

These have commit references for the 'upstream' Linux kernel, so that could help i.e. you could narrow down the problem to lie between commit ABC and XYZ on the branch for version 6.8 releases.

There's a tool that is supposed to make it easy to use them, GitHub - bkw777/mainline: Install mainline kernel packages from kernel.ubuntu.com, but I haven't tried using it.

4 Likes

Thanks for your suggestion, I have already tried to use the tool with a different amd64 platform, but there is no compiled binary for arm64. However, there are no other kernels between 6.8.0-11 and 6.8.0-31.

So I tried with 6.8 and 6.8.4 without success (6.8.3 is a failed build).

sudo dpkg -i linux-headers-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb linux-image-unsigned-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb linux-modules-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb
Selecting previously unselected package linux-headers-6.8.0-060800-generic.
(Reading database ... 627534 files and directories currently installed.)
Preparing to unpack linux-headers-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb ...
Unpacking linux-headers-6.8.0-060800-generic (6.8.0-060800.202502181545) ...
Selecting previously unselected package linux-image-unsigned-6.8.0-060800-generic.
Preparing to unpack linux-image-unsigned-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb ...
Unpacking linux-image-unsigned-6.8.0-060800-generic (6.8.0-060800.202502181545) ...
Selecting previously unselected package linux-modules-6.8.0-060800-generic.
Preparing to unpack linux-modules-6.8.0-060800-generic_6.8.0-060800.202502181545_arm64.deb ...
Unpacking linux-modules-6.8.0-060800-generic (6.8.0-060800.202502181545) ...
dpkg: dependency problems prevent configuration of linux-headers-6.8.0-060800-generic:
linux-headers-6.8.0-060800-generic depends on linux-headers-6.8.0-060800; however:
Package linux-headers-6.8.0-060800 is not installed.

dpkg: error processing package linux-headers-6.8.0-060800-generic (--install):
dependency problems - leaving unconfigured
Setting up linux-modules-6.8.0-060800-generic (6.8.0-060800.202502181545) ...
Setting up linux-image-unsigned-6.8.0-060800-generic (6.8.0-060800.202502181545) ...
I: /boot/vmlinuz.old is now a symlink to vmlinuz-6.8.4-060804-generic
I: /boot/initrd.img.old is now a symlink to initrd.img-6.8.4-060804-generic
I: /boot/vmlinuz is now a symlink to vmlinuz-6.8.0-060800-generic
I: /boot/initrd.img is now a symlink to initrd.img-6.8.0-060800-generic
Processing triggers for linux-image-unsigned-6.8.0-060800-generic (6.8.0-060800.2025021

1 Like

Seemed to complain that linux-headers-6.8.0-060800 was not installed?

2 Likes

Confusingly; its available in amd64 folder, e.g. for v6.8.4: Index of /mainline/v6.8.4/amd64

2 Likes

Hi,

I can install it even there is this error. This is the list of kernels installed in my device:

sudo grub-mkconfig | grep -iE "menuentry 'Ubuntu, with Linux" | awk '{print i++ " : "$1, $2, $3, $4, $5, $6, $7}'
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.11.0-19-generic
Found initrd image: /boot/initrd.img-6.11.0-19-generic
Found linux image: /boot/vmlinuz-6.8.4-060804-generic
Found initrd image: /boot/initrd.img-6.8.4-060804-generic
Found linux image: /boot/vmlinuz-6.8.0-060800-generic
Found initrd image: /boot/initrd.img-6.8.0-060800-generic
Found linux image: /boot/vmlinuz-6.8.0-55-generic
Found initrd image: /boot/initrd.img-6.8.0-55-generic
Found linux image: /boot/vmlinuz-6.8.0-35-generic
Found initrd image: /boot/initrd.img-6.8.0-35-generic
Found linux image: /boot/vmlinuz-6.8.0-31-generic
Found initrd image: /boot/initrd.img-6.8.0-31-generic
Found linux image: /boot/vmlinuz-6.8.0-11-generic
Found initrd image: /boot/initrd.img-6.8.0-11-generic
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
0 : menuentry 'Ubuntu, with Linux 6.11.0-19-generic' --class ubuntu
1 : menuentry 'Ubuntu, with Linux 6.11.0-19-generic (recovery mode)'
2 : menuentry 'Ubuntu, with Linux 6.8.4-060804-generic' --class ubuntu
3 : menuentry 'Ubuntu, with Linux 6.8.4-060804-generic (recovery mode)'
4 : menuentry 'Ubuntu, with Linux 6.8.0-060800-generic' --class ubuntu
5 : menuentry 'Ubuntu, with Linux 6.8.0-060800-generic (recovery mode)'
6 : menuentry 'Ubuntu, with Linux 6.8.0-55-generic' --class ubuntu
7 : menuentry 'Ubuntu, with Linux 6.8.0-55-generic (recovery mode)'
8 : menuentry 'Ubuntu, with Linux 6.8.0-35-generic' --class ubuntu
9 : menuentry 'Ubuntu, with Linux 6.8.0-35-generic (recovery mode)'
10 : menuentry 'Ubuntu, with Linux 6.8.0-31-generic' --class ubuntu
11 : menuentry 'Ubuntu, with Linux 6.8.0-31-generic (recovery mode)'
12 : menuentry 'Ubuntu, with Linux 6.8.0-11-generic' --class ubuntu
13 : menuentry 'Ubuntu, with Linux 6.8.0-11-generic (recovery mode)'

I tried with all versions, only the last one works correctly.

I need arm64 not amd64 version.

Look again; I believe that is a single package (debian) for all platforms.

But I could be wrong.

1 Like

I'm not sure if a kernel can be installed and run without a header, I don't think so.
According to the list of my kernels, they are already installed, but unfortunately have not solved the problem.

1 Like