Arch Linux on the Framework Laptop 13

Should’ve probably added that I’m running wayland/sway. Does xf86-video-intel even support alder lake’s GPUs now?

I did some experimenting and early KMS for i915 improved it too but unfortunately this broke hibernation for me.
However, Linux 5.19 reduced it a lot for me and sometime last week I updated (5.19.2?) and haven’t experienced this issue since.

Which kernel are you running?

Just linking this here:

Arch is working perfectly for him / her.

Anyone else having boot problems after the new grub update?

Grub reboots into bios for me, I thankfully I have timeshift setup and could return to a working system.

Be careful with the new grub update, it borks some grub configs.

I am on Arch stable, I3WM.

1 Like

5.19.3-arch1, now 5.19.4-arch1

Well, I at least got output with it. But I’ve moved to modesetting, with early KMS, and disabled PSR. Since then it’s working great. Sadly Wayland is not an option for me as too much stuff is still broken by design, that I rely on for work.

Besides PSR the only other quirk that I’ve noticed is the brightness keys, but there are threads about that already with the current workaround of blocking the ALS module, which works for me.

So far very happy with Arch on my i5-1240p :slight_smile:

1 Like

Thank you @Alphabet for posting this and the reddit link. After about 2 hours fiddling, I was able to get my laptop working again. What a mess! It would probably take days without your post though, many thanks!!!

2 Likes

I would like to add that the stuttering and screen tearing is NOT wayland or GNOME specific. (Unless archinstall installs something in the background that is GNOME related.)…

On Kernal 5.19.5 i3-wm (no gaps) I had the stuttering issue. I added options i915 enable_psr=0" in /etc/modprobe.d/i915.conf` then rebooted and that solved the stuttering.

3 Likes

Installing Arch on the 12th gen Framework. So far so good, though I struggled with a strange issue for a while:

After installing Arch, I installed xorg, awesome and alacritty. Whenever I typed in alacritty, nothing would appear, but whenever I added another alacritty instance to awesome and a refresh occurred, I would see the text I had previously typed. This also happened with kitty but not with xterm.

It turns out that I had installed xf86-video-intel and this after removing this (based on this doc in Arch wiki everything resolved

3 Likes

Installed arch on the 12th gen and besides the kernel parameter to disable the psr feature, evertything worked ootb except for the gtk file dialog menu. Whenever a gtk app opened this dialogue menu an insanely big window would appear that seems to a user like a unicolored screen. In fact you are just seeing a small piece of this huge window. In case you encounter this: press super and drag the mouse to shrink the window. Gtk will remember the setting and you are good to go.

I have a question for the community: Anyone here with a slick setup for automounting an expansion card when plugged in? I have a 1TB expansion card and I want to have it mounted automatically whenever I plug it in. I just tried: Automount USB devices on Linux using UDEV and Systemd | Andrea Fortuna but this doesn’t work for unplugging for some reason

1 Like

Hello there.
Had the same issue and your post was quite helpful
I use Arch with Xorg, i3wm and alacritty.

How is the rendering speed in alacritty for you ? When typing in the alacritty terminal, it feels a bit slow compared to what I am used to. A bit like working on a remote server.
Same in xterm.

Managed to fix this by adding “i915.enable_psr=0” to the GRUB Kernel parameters, as suggested by:

1 Like

@apol1o Hey there.

You mentioned that i915 breaks hibernation for you, and I seem to have the same problem.
Curious to see if you find any work around for it ?

I am using Arch LInux with the latest kernel Linux V01DFR4M3 5.19.11-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 24 Sep 2022 18:24:15 +0000 x86_64 GNU/Linux. Setup hibernation with swapfile and encryption.

As a sanity check I tested the hibernation by running systemctl hibernate directly from tty1 and it does work.
However, when I start Xorg / i3 combo, and hibernate from there using the same systemctl hibernate command, at resume, I just get a black screen.
The computer itself boots and is working, and I can see the mouse cursor moving, and even access terminal windows opened that were opened before, but it does not render any UI or window, just a blank screen…

Are you having the same issue by any chance ?

Thanks for your time.

Only when loading it early with KMS. I’m not doing that anymore and haven’t tweaked it much since, it’s just working more or less. These days I usually don’t have problems with hibernation but it sometimes hangs when leaving suspension. It’s a bit different each kernel version somehow. However, I’m running the Clear Linux kernel because I get better battery life with it but it seems that the vanilla kernel doesn’t have any problems for me anymore (limited testing though).

Ah yes, had the same issue with sway and occasionally with gnome too.
You should check what dmesg says. Something like sudo journalctl -b-1 -o short-precise -k -p 4 to get it filtered from the last boot.
Are you using the modesetting driver?

I have the following in my sway config file which manages the screen/lock when idle.
I’ve noticed that it works just fine when toggling power to dpms, so that’s basically what it does after resuming sleep/hibernate (last line).

exec swayidle -w \
            timeout 30 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' \
            resume 'swaymsg "output * dpms on"' \
            timeout 210 '~/.config/sway/swaylock.sh' \
            timeout 270 'swaymsg "output * dpms off"' \
            resume 'swaymsg "output * dpms on"' \
        timeout 900 'systemctl suspend' \
            resume 'swaymsg "output * dpms on"' \
            before-sleep 'playerctl pause' \
        before-sleep '~/.config/sway/swaylock.sh' \
        after-resume 'swaymsg "output * dpms off" && sleep 5 && swaymsg "output * dpms on"'

Probably not the best solution but seemed to do the trick. What I did to test it was to create a script which toggles dpms and bound it to a key.
Can’t remember the i3 way of doing something like that but on X11 you can use xset to toggle dpms.

1 Like

@apol1o Hello again.
Thanks a lot for the thoughtful answer.
I will be trying the linux-clear kernel, see if it hs better drivers for this situation.

journalctl -b-1 -o short-precise -k -p 4 is flooded with the following lines

i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080

which does seem related to driver issues.

I am indeed using kernel mode setting, with

MODULES=(i915)

in my /etc/mkinitcpio.conf. I tried with and without, but same problem of “black screen / visible mouse” seems to happen.

As far as DMPS is concerned, I can indeed turn the screen on and off with xset dpms force on | off, but in my case, after resume, the DPMS seems to already be on. Namely, I can see the mouser cursor moving, and even use the Xf86Brightness key to control brightness. Only the desktop does not seem to be rendered at all (or covered by a huge black window mask).

In any case, will try to look deeper at how to control the DPMS more precisely before and after the resume, might get lucky too.

UPDATE: Hibernation (systemctl hibernate) now working as expected after installing linux-clear-bin. Huge thanks @apol1o .
I looked it up and it seems like a kernel specialized for intel CPU / GPU ? so it might have more suited graphics drivers. It even works with Kernel Mode setting.

UPDATE 2: While the previous update does mention that hibernation works, there is a potentially serious caveat at stake. I have experimented around with three different kernels: linux from the official Arch packages, linux-clear and linux-clear-bin from the AUR.

It turns out that hibernation is working on linux-clear-bin because some i915 are not working / not compiled in said kernel (throws up a a few error messages on boot, such as Failed to initialized GuC or GPU marked as wedged. So while hibernation works, the GPU / rendering features performances is quite bad. I realized this when trying to do some 3D modeling with blender. It was very slow even with the basic project. Beside that, it seems that battery does not hold as well as it did using the linux kernel, but it might be due to different use cases.

However, linux and linux-clear kernels seem to have better i915 GPU driver support (no glaring i915 related errors thrown on boot). This seems to be corroborated by the fact that blender 3D rendering runs way smoother, compared to linux-clear-bin.

So to sum it up:

  • linux-clear-bin = 5.19.11.1191-1: sub optimal i915 GPU driver, which happen to break the thing that prevents hibernation (suspend-to-disk) from working
  • linux = 5.19.11.arch1-1 (Arch repo) and linux-clear = 5.19.11-1 (AUR) have better i915 drivers, but something in there prevents proper hibernation.

I guess I will have to wait for linux kernel that has better i915 graphics support to get the best of both world. Too bad the recent 5.19.12 is broken as of now (2022-09-30)

1 Like

Blockquote

This fixed it for me as well. Running i3wm (w/gaps) on arch. i3 was insanely slow, with terrible lag and sometimes freezing completely for >10s. I tried sddm to see if I could isolate the issue to i3 and sddm worked beautifully.

Adding this kernel parameter seems to have fixed the issue. I don’t know enough about how i3 works behind the scenes to understand why the issue was only happening there (and not sddm) but I’m happy it’s resolved. Thanks!

2 Likes

Please see the link below. I confirm this as many others do as well.

Beware! Don’t upgrade to linux kernel 5-19-12-arch1-1 on arch linux

3 Likes

Greetings.

Currently experiencing a very peculiar issue regarding hibernation on Arch Linux and the FW 12th, while using Xorg and i3 window manager.

Namely, whenever I resume from hibernation (suspend-to-disk), I am greeted by a blank screen.
The system effectively resumes, the screen does turn, and I can even see and move the mouse, I can interact with the terminal windows that were previously opened before entering hibernation, but beside that the whole screen just stays black.

I would really appreciate if someone could help by trying to run systemctl hibernate on their Framework with Arch, then resume and let me know if they have the same black screen problem on resume.

As a sanity check, I also ran systemctl hibernate from a tty instead of a graphical session, and it does not result in the black screen problem on resume. I suspect some i915 driver related error so far.
I tried many kernels such as linux-mainline, linux-clear, linux-lts already, but to no avail.

Thanks a lot for your time.

For reference, the relevant configuration files of the system would be as follows:

  • FW i7-1280P; 2x8GiB
  • Arch Linux 5.19.11 (not the recently broken kernel)
  • GRUB Kernel parameters
linux   /vmlinuz-linux root=UUID=unlocked_part_UUID rw 
             cryptdevice=UUID=encrypted_part_UUID :root:allow-discards 
             root=/dev/mapper/root resume=UUID=unlocked_part_UUID 
             resume_offset=swapfile_offset loglevel=3 quiet intel_pstate=disable 
             security=apparmor mitigations=auto mem_sleep_default=deep 
             nvme.noacpi=1 acpi_osi=!'Windows 2020'
echo    'Loading initial ramdisk ...'
initrd  /intel-ucode.img /initramfs-linux.img
  • /etc/mkinitcpio.conf
MODULES=(i915)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt filesystems resume fsck)
  • `/etd/modprob.d/i915.conf
options i915 enable_psr=0
# options i915 enable_guc=3
# options i915 enable_fbc=0

I run arch, no problems here. Im a n00b with i3 tho, still learning.
That kernel problem bugged me for 3 hours (gave up, fixed next day by LTS kernel) and due to my differences and not yet figured out how i want to suspend to disk, no swap. not sure if any of the following is going to be helpfull

I should keep an eye on the forums more often.

I use i3lock and GDM, as Nodm dint work for me (out of the box and the hours trying to make it work, it booted, started i3 fine, but wouldnt lock for a reason, havent revisited it with the new compositor im using now). got no swap part nor file, so im not truly suspending (to disk), just ram I guess.

  • FW, i5-1240P; 1x32GiB
  • Arch Linux framework 5.15.71-1-lts (was the easy for to not use the broken kernel)

Not using grub, since ever: EFI variable stuff:

Boot0000* Arch Linux    HD(1,GPT,encrypted_part_UUID)/File(\EFI\arch\vmlinuz-linux.efi)cryptdevice=/dev/nvme0n1p2:root root=/dev/mapper/root rw initrd=\EFI\arch\intel-ucode.img initrd=\EFI\arch\initramfs-linux.img

mkinitcpio.conf:

MODULES=(i915)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt filesystems fsck)

/etc/modprob.d/i915.conf (I added these before I started using i3lock):
EDIT: commented these 2 away, system seems to boot just as fast and i can still suspend. no hibernation ofcourse (no swapspace).

#This should enable framebuffer compression
options i915 enable_fbc=1

# Faster boot, by preserving the framebuffer that has been setup by the bios/uefi
options i915 fastboot=1

question, how can i make Arch automaticly rename the vmlinuz-linux file to add .efi extension? the insideH2O bios doesnt read efi files without the extension. (mkinitcpio default preset kinda worked but also broke if i named it there)

1 Like

My friend has a 12th gen framework laptop running Arch Linux GNOME, but he experiences constant stutter in animations even if no power management tools (like tlp, powertop) is installed. Tried setting acpi_osi="Windows 2020" and i915 in MODULES inside mkinitcpio.conf, and disable psr. I’m not sure where the issue is.

1 Like

According to some discussion in Discord, it should be acpi_osi=!'Windows 2020' instead.

Disabling PSR seems to do the trick for most people over here. How exactly did you / he disable it ?

Also, what is the linux kernel version in use ? Some recent versin like 5.19.12 are known for graphics driver regressions.

@dosssman

Replying in this thread because it’s more fitting. Sorry I couldn’t get back to you earlier.
But I’ve been running 6.0.0-1-clear since the compile finished this morning and it’s running great. Hibernation worked fine every time as well as suspend-then-hibernate.

Can’t really say that was always the case earlier, more often than not it worked fine but every now and then it didn’t really wake from sleep or hibernation, sometimes the display would flicker or the screen appeared frozen until it somehow resumed but maybe that’s just me.

I want to say that it’s finally working flawless especially because it somehow feels smoother/more stable (at least in gnome) but I need to do more testing.
Anyway I’d recommend you give 6.0 a try and let is know how it goes.

For what it’s worth here’s some of my configs:

❯ cat /proc/cmdline                
mem_sleep_default=deep nvme.noacpi=1 rd.luks.name=XXXXXX=cryptroot rd.luks.options=XXXXXX=discard root=/dev/mapper/root rootflags=subvol=@ rd.luks.options=discard resume=UUID=XXXXXX resume_offset=9261768 quiet splash vt.global_cursor_default=0 rw
❯ cat /etc/mkinitcpio.conf 
# 'intel_agp' probably not useful here but didn't test it without yet
MODULES=(i915 intel_agp)

BINARIES=()

FILES=()

HOOKS=(base systemd sd-plymouth autodetect keyboard sd-vconsole modconf block sd-plymouth-tpm2-totp sd-encrypt btrfs filesystems fsck)
❯ systool -m i915 -av
Module = "i915"

  Attributes:
    coresize            = "2732032"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "24"
    taint               = ""
    uevent              = <store method only>

  Parameters:
    disable_display     = "N"
    disable_power_well  = "-1"
    dmc_firmware_path   = "(null)"
    edp_vswing          = "0"
    enable_dc           = "-1"
    enable_dp_mst       = "Y"
    enable_dpcd_backlight= "-1"
    enable_fbc          = "1"
    enable_guc          = "-1"
    enable_gvt          = "N"
    enable_hangcheck    = "Y"
    enable_ips          = "1"
    enable_psr2_sel_fetch= "Y"
    enable_psr          = "1"
    error_capture       = "Y"
    fastboot            = "1"
    force_probe         = "*"
    force_reset_modeset_test= "N"
    guc_firmware_path   = "(null)"
    guc_log_level       = "-1"
    huc_firmware_path   = "(null)"
    invert_brightness   = "0"
    lmem_bar_size       = "0"
    lmem_size           = "0"
    load_detect_test    = "N"
    lvds_channel_mode   = "0"
    memtest             = "N"
    mitigations         = "auto"
    mmio_debug          = "0"
    modeset             = "-1"
    nuclear_pageflip    = "N"
    panel_use_ssc       = "-1"
    psr_safest_params   = "N"
    request_timeout_ms  = "20000"
    reset               = "3"
    vbt_firmware        = "(null)"
    vbt_sdvo_panel_type = "-1"
    verbose_state_checks= "Y"

Most notably running i915 now with fastboot, fbc & psr = 1 without problems so far.

1 Like