Graphic distortion on MacBook Air 2012 after upgrading to Kernel 6.4.7-arch1-1

Hi, my eos is looking weird after updating the system with “eos-update” today (see attached photo). I already tried to boot into terminal while adding a “3” to the boot parameters, but the problem is affecting the text mode, too!
While booting up, everything looks normal, first. The booting status messages are displayed as usual, but as soon as the graphical interface is loaded, the screen becomes distorted. The system is operational, though, but I cannot recognize my typing due to heavy graphical distortion.
I already tried booting the offered fallback kernel on startup but I get the same result.
My computer is an old MacBook Air 2012 with Nvidia graphic card. Output of “inxi -FAZ” see below. Booting with eos from USB (Cassini Nova 03-2023-R2) works fine.
How can I solve this issue?

System:
  Host: EndeavourOS Kernel: 6.3.4-arch1-1 arch: x86_64 bits: 64 Desktop: Xfce
    v: 4.18.1 Distro: EndeavourOS
Machine:
  Type: Laptop System: Apple product: MacBookAir3,2 v: 1.0
    serial: <superuser required>
  Mobo: Apple model: Mac-942C5DF58193131B v: MacBookAir3,2
    serial: <superuser required> UEFI: Apple v: 110.0.0.0.0 date: 06/13/2019
Battery:
  ID-1: BAT0 charge: 38.4 Wh (98.5%) condition: 39.0/50.2 Wh (77.6%)
CPU:
  Info: dual core model: Intel Core2 Duo L9600 bits: 64 type: MCP cache:
    L2: 6 MiB
  Speed (MHz): avg: 1211 min/max: 798/2128 cores: 1: 827 2: 1596
Graphics:
  Device-1: NVIDIA MCP89 [GeForce 320M] driver: nouveau v: kernel
  Device-2: Apple FaceTime Camera driver: uvcvideo type: USB
  Display: server: X.Org v: 21.1.8 driver: X: loaded: modesetting
    dri: nouveau gpu: nouveau resolution: 1440x900~60Hz
  API: OpenGL v: 3.3 Mesa 23.1.1 renderer: NVAF
Audio:
  Device-1: NVIDIA MCP89 High Definition Audio driver: snd_hda_intel
  API: ALSA v: k6.3.4-arch1-1 status: kernel-api
  Server-1: PipeWire v: 0.3.71 status: active
Network:
  Device-1: Broadcom BCM43224 802.11a/b/g/n driver: wl
  IF: wlan0 state: dormant mac: 56:f7:8d:e6:80:59
Bluetooth:
  Device-1: Apple Bluetooth USB Host Controller driver: btusb type: USB
  Report: rfkill ID: hci0 state: up address: see --recommends
Drives:
  Local Storage: total: 248.76 GiB used: 0 KiB (0.0%)
  ID-1: /dev/sda vendor: Apple model: SSD SM256C size: 233.76 GiB
  ID-2: /dev/sdc model: General USB Flash Disk size: 15 GiB type: USB
Partition:
  ID-1: / size: 10 GiB used: 3.1 MiB (0.0%) fs: overlay source: ERR-102
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 62.0 C mobo: N/A gpu: nouveau temp: 72.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 163 Uptime: 3m Memory: available: 3.58 GiB
  used: 853.5 MiB (23.3%) Shell: Bash inxi: 3.3.27

Not sure what the problem is, but for now try downgrading the kernel to the previous version you were using.

I see in your hardware info you are using kernel version 6.3.4-arch1-1. Perhaps this was taken at previous date?

The inxi command is from booted USB stick Cassini Nova 03-2023 R2. It has kernel 6.3.4. That’s the only way I know at the moment to have a readable output of my system specs.
I started with a fresh installation of eos from this mentioned USB stick and ended up with a working system with kernel 6.3.4. After upgrading (eos-update) I had the bricked system on my picture. That’s where I stand, now. How can I achieve an up-to-date eos with proper graphic output from here?

Ok, understood. For now I was suggesting that you downgrade the kernel. You can do so by using the command sudo downgrade linux. If you also have the linux headers installed or any other kernels and their headers then you would just add them to that command. For example, my systems has three kernels. The default arch kernel, the zen kernel, and the lts kernel. In my case the command would look like this linux linux-zen linux-headers linux-zen-headers linux-lts linux-lts-headers.

When you run the command you should select the previous version that was working for you.


It should look something like this when you run the command.
Once you have selected the previous working kernel and it installs. You should reboot and see if that gets you back into a working state.

I’ll try this, thank you. Now, I have to solve the problem of how to boot into a readable shell. Adding “3” at the end of the kernel parameters did boot into a text shell, but it did not prevent loading the faulty graphic driver. I’m reading the Arch Wiki about systemd-boot at the moment, but it’s not an easy understanding…
Perhaps you can tell me how I can get into an emergency shell where I could do the mentioned kernel downgrade?

Rather than trying to trigger an emergency shell. Why not do it from a live usb?

Ah - is this done by the chroot command? I forgot about that, sorry.

Yes, but use the arch-chroot script that should already be installed on the live usb.

The process usually goes something like

  • Mount main partition to some folder
  • Mount boot partition to some folder/boot folder.
  • sudo arch-chroot some folder

A realistic example of what that looks like should be something like this:
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo arch-chroot /mnt
sudo downgrade linux linux-headers

Your partitions may not be name /dev/sda though. You will have to find that out using something like the command blkid -o list

I’m doing it step by step as it is described here:: https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/
But I end up with an error (no such file or directory) when trying that: sudo cat /mnt/etc/fstab
So, I do not mount my drive properly, then. But it’s on sda2, I can see that.

Did you encrypt the drive?

No

What file system, EXT4 or Btrfs?

Post the output of sudo parted -l.

btrfs

What is the output of lsblk -o name on the live usb?

Did you follow the part of the guide relating to btrfs filesystems?