Arch Linux on the Framework Laptop 13

@dosssman Thanks for reply! My friend’s issue is resolved by using intel_pstate scaling driver instead of intel_cpufreq (the driver used given intel_pstate=no_hwp option). The scaling driver without hwp seems too aggressive for 12th gen, limiting most of its cores to 400MHz. Even power state of intel_pstate won’t have that issue.

1 Like

@dosssman I formatted, reinstalled, put in the single line into the kernel config options i915 enable_psr=0 and then rebuilt the kernel and rebooted and havent had a single issue yet.

When I did the install the screen was flickering the entire time (1 second on, then 1 second off repeating) It made it a huge pain to do the install.
I added i915.enable_psr=0 to the end of the linux line but it didnt do anything there, is it supposed to be something else?

I’m up and running now… I was nearly going to leave it in the trash!!
Thanks for your help!

Editing — I’m still struggling
After suspend and resume the lag / freezing video problems came back,
Then I rebooted and when it boots to the console the flickering comes back (1 second off, 1 second on repeating)

After logging in the flickering is gone and the freezing is gone but I cant watch any video from a browser. glxgears performs fine now though as previously it didnt.
An mp4 plays smoothly in vlc, so it seems I have a video issue in firefox and brave / chromium.

1 Like

I managed to resolve this by installing bolt when reading through these guides in the Arch Wiki: Thunderbolt - ArchWiki

1 Like

What is the linux kernel in use ? (`uname

@dosssman As others reported it working, after the reinstall I stuck with 5.19.13

I the driver used is the modesetting one. No login manager. I3-gaps for the window manager.

1 Like

Do you using display scaling ?

You might get better results if you use Early KMS, as per the Arch documentation: Intel graphics - ArchWiki

I have MODULES=(i915) in my mkinitcpio.conf before regenerating it, and it gets rid of one flickering I have observed pretty much every time I boot.
(Note that in my case, it is just a single flickering at boot, so it is not that big of a problem).

Here are my relevant configs, for reference:

# /etc/mkinitcpio.conf
MODULES=(i915)
BINARIES-()
FILES=()
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt filesystems fsck) # No need for systemd nor sd-encrypt if you don't use encryption, but will need "resume" if using suspend-to-disk / hibernation
# /etc/modprob.d/i915.conf
options i915 enable_psr=1
options i915 enable_fbc=1
options i915 fastboot=1

Kernel parameters set via GRUB:

loglevel=3 mitigations=auto mem_sleep_default=deep nvme.noacpi=1 acpi_osi=!'Windows 2020' acpi_backlight=vendor

And the ouptut of systool -avm i915 to see what features of the i915 are loaded. Maybe you can diff it with yours to check if there is any difference ?

Module = "i915"

  Attributes:
    coresize            = "2732032"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "56"
    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"

  Sections:
    .altinstr_aux       = "0xffffffffc0739108"
    .altinstr_replacement= "0xffffffffc0738f50"
    .altinstructions    = "0xffffffffc073a208"
    .bss                = "0xffffffffc07c03c0"
    .data..read_mostly  = "0xffffffffc07bcd00"
    .data.once          = "0xffffffffc07bbfd0"
    .data               = "0xffffffffc07b4260"
    .exit.text          = "0xffffffffc0738f0a"
    .gnu.linkonce.this_module= "0xffffffffc07c0080"
    .init.text          = "0xffffffffc0824000"
    .note.Linux         = "0xffffffffc07adaec"
    .note.gnu.build-id  = "0xffffffffc07adac8"
    .note.gnu.property  = "0xffffffffc07ada98"
    .ref.data           = "0xffffffffc07bd800"
    .retpoline_sites    = "0xffffffffc079f228"
    .return_sites       = "0xffffffffc07a4e44"
    .rodata             = "0xffffffffc073a740"
    .rodata.str1.1      = "0xffffffffc07645e1"
    .rodata.str1.8      = "0xffffffffc0771908"
    .smp_locks          = "0xffffffffc079dddc"
    .static_call.text   = "0xffffffffc0739140"
    .static_call_sites  = "0xffffffffc07bc037"
    .strtab             = "0xffffffffc085f1a0"
    .symtab             = "0xffffffffc0825000"
    .text               = "0xffffffffc0588000"
    .text.unlikely      = "0xffffffffc0733668"
    __bpf_raw_tp_map    = "0xffffffffc07bcdc0"
    __bug_table         = "0xffffffffc07b0000"
    __ex_table          = "0xffffffffc07ad1f4"
    __jump_table        = "0xffffffffc07ae000"
    __ksymtab_gpl       = "0xffffffffc073a000"
    __ksymtab_strings   = "0xffffffffc07accf8"
    __param             = "0xffffffffc07ac708"
    __tracepoints_ptrs  = "0xffffffffc07ad224"
    __tracepoints_strings= "0xffffffffc07ad340"
    __tracepoints       = "0xffffffffc07be820"
    _ftrace_events      = "0xffffffffc07bd5e0"

With that being said, I alsohappen have one display related problem after resuming from hibernation (suspend-to-disk) on 5.19.13, and most of the other kernels I have tried. I have not yet found a 100% solution, only work arounds.
Namely, after resuming from hibernation, the screen will power on but stay blank and black. I can only see the mouse cursor, and even interact with the windows that were previously opened, executing commands in opened terminals, etc…
Resuming from simple suspend works without problem for me, however.

I suspect there is still some problems with the graphics driver for handling resume on 12th Gen Alder Lake CPU like ours. Hopefully they get ironed out in next kernel / drivers releases.

Regarding the Firefox, Chromium video performance, have you tried to fixes / work around from the Arch wiki ?

https://wiki.archlinux.org/title/Intel_graphics#Corruption_or_unresponsiveness_in_Chromium_and_Firefox

Also saw something that might be relevant in this thread about battery life tuning on the forums: [TRACKING] Linux battery life tuning

Hope it helps somehow.

Im pinned to linux 5.19.9 for the moment due to the screen flickering issue reported in 5.19.12… but, pacman is indicating that linux 6.0.1 is available instead. Has anyone tried this yet on the Framework (especially 11th gen)? Trying to decide if I should unpin linux or not. I do have linux-lts, but not interested in risking damage to my screen if that bug is present…

1 Like

5.19.13+ and 6.0 do not flicker, no. I only had to skip 5.19.12.

2 Likes

Thanks @Jake_Bailey

I went ahead and upgraded to 6.0.1 . No issues with flickering or anything.

Maybe I should clean up my kernel cmdline options, might be a few in there I don’t need anymore :slight_smile:

root=UUID=*** rw quiet loglevel=3 nowatchdog nvme_load=YES i915.enable_psr=1 nvidia-drm.modeset=1 ibt=off nvme.noacpi=1 initrd=boot\initramfs-linux.img

1 Like

Hello again. It’s been a while.

Just a small update regarding the failure to properly resume from hibernation on my framework with Arch linux + Xorg + i3wm.
I tried most of the things we have discussed last time, but to no avialable.
Fortunately, hibernation is now working as expected with linux-clear 6.0.3.1 :partying_face: I guess the graphics driver for 12th iGPU need a little bit more polishing.

Thanks a lot for introducing this kelunuxrnel and helping out by testing hibernation on your side too. After some testing here and there, I do feel like linux-clear improves battery life by around 1 or 2 hours.

Hi,

I just completed an arch install on a new Framework (i5-1240P, 16GB of RAM), and thought I would write about the few issues I met :

  • First issue was console flickering during the arch install : I couldn’t get to a prompt as the screen would flicker black and white and not show anything. It turned out that the October 2022 Archlinux ISO image uses a 5.19.12 kernel, which has this specific issue - taking a previous image solved it, and I completed the install without problems.

  • The panel self-refresh bugs with intel graphics seems to have been mostly solved as of kernel 6.02, since enabling it hasn’t caused any flickering for me for now.

  • I did have some flickering because of a mistake of mine : installing xf86-video-intel causes Firefox (with webrender enabled), alacritty/kitty, and many other applications that rely on 2D acceleration to have rendering problems : symptoms include apps freezing until they are resized, not reacting to input (when using intel and DRI3) or tearing, having garbled contents and artefacts (when using DRI2, with or without TearFree). Removing xf86-video-intel and letting Xorg use the default, integrated modesetting driver solved it for me (one must also remove xf86-video-vesa since I think it comes before modesetting in Xorg’s priority list).

Interestingly, 3D applications (specifically some games) did not have any problem rendering - I guess it’s mostly a 2D acceleration problem.

On the whole, very happy now, the 12th gen processors do pack a punch !

I haven’t tested suspending yet, this will probably yield problems on its own.

5 Likes

Well, obligatory edit, since after using it for some time, GPU hanging problems have come back, much like the ones the guys on the Fedora thread are experiencing.

Symptoms are periodic freezes, seemingly appearing at random time, lasting for a few seconds (usually 5-6), with dmesg corersponding entries looking like :

[ 3032.481283] Asynchronous wait on fence 0000:00:02.0:picom[1011]:125de timed out (hint:intel_atomic_commit_ready [i915])
[ 3036.542834] i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000
[ 3036.542896] i915 0000:00:02.0: [drm] Resetting chip for stopped heartbeat on rcs0
[ 3036.644141] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.1.1.bin version 70.1
[ 3036.644152] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc_7.9.3.bin version 7.9
[ 3036.661560] i915 0000:00:02.0: [drm] HuC authenticated
[ 3036.662184] i915 0000:00:02.0: [drm] GuC submission enabled
[ 3036.662188] i915 0000:00:02.0: [drm] GuC SLPC enabled

I will try to fiddle with options such as enable_psr, enable_rc6, etc., but as the freezes are very sporadic, there might be some time before I’m able to confirm if any of these parameters have worked.

3 Likes

I can confirm that using kernel option i915.enable_psr=0 works around the issue. Probably best to keep that on until Intel ships a driver patch.

4 Likes

is anyone else noticing less power draw on battery during video playback after recent update?
I’m seeing ~8-9W being used, this use to be ~10-12W, playing video in browser
Local video play back especially is significantly better, before it was ~15-16W, now it’s down to ~8-9W on VLC.
MPV still goes as high as 12W for some reason, not sure why. I do have hwdec on auto, but it seems to be very inefficient.

These packages were updated earlier today
Linux Kernel 6.0.8
Linux firmware 20221109.60310c2-1
Systemd 252.1-1

I do remember seeing intel-ucode update as well few days back.
Would love to know anyone if anyone else is getting slightly improved power draw.

On 11th or 12th gen CPU?

1 Like

12th Gen, i5 1240P

1 Like

Laptop keeps setting my DP monitor to an insanely small resolution and 60hz when I restart it or wake it up. I have to unplug and replug the monitor for it to allow me to set it back to 1440p, 144hz.

DE: KDE

Any solutions?

1 Like

I think I’m having weird audio problems between Pipewire and my dock (Caldigit TS4).
When I use pulsemixer to set the volume of “Caldigit TS4 Audio” to 18 or lower, everything connected to it goes silent. When it is above that I can set the audio of individual streams connected to it as low as I want and I can still hear them, but if that master volume goes to 18 or under it’s all gone.

Any clues as to what could cause this? This doesn’t happen with the speakers or the headphone jack on the Framework itself.

1 Like

I fixed the USB dock audio issue, the solution was on Archwiki all along.

3 Likes

I have suddenly lost my touchpad. Could this be a consequence of upgrading to the latest kernel?
Linux framework 6.0.10-arch2-1 #1 SMP PREEMPT_DYNAMIC Sat, 26 Nov 2022 16:51:18 +0000 x86_64 GNU/Linux

xinput shows the following devices

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ FRMW0001:00 32AC:0006 Consumer Control id=11 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=13 [slave pointer (2)]
⎜ ↳ ELECOM TrackBall Mouse DEFT Pro TrackBall id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ FRMW0001:00 32AC:0006 Wireless Radio Control id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ FRMW0001:00 32AC:0006 Consumer Control id=17 [slave keyboard (3)]
↳ ELECOM TrackBall Mouse DEFT Pro TrackBall Consumer Control id=8 [slave keyboard (3)]
↳ ELECOM TrackBall Mouse DEFT Pro TrackBall id=9 [slave keyboard (3)]
↳ ELECOM TrackBall Mouse DEFT Pro TrackBall System Control id=14 [slave keyboard (3)]

1 Like