[RESPONDED] Debian 12 on Framework laptop 16

Hi everyone, I have been playing around with Ubuntu and it just isn’t for me. I looked at the guide on GitHub here and it’s clear that Framework has put a lot of hard work into Ubuntu. Is it possible to port those changes to Debian 12 Bookworm? Can most of the Ubuntu commands be adjusted to Debian? Can you guys give me some guidance so I don’t break my OS? Can I see what changes Framework did to the Ubuntu kernel?

@Matt_Hartley Sorry to bother you, I know you are really busy with the launch of the Framework Laptop 16. I like the modified Ubuntu Kernel you have provided to the community. I’m wondering what Framework has done to the standard kernel and if I could Implement the same changes to Debian 12 Bookworm. If that isn’t possible, could I use Kubuntu instead? I played around with Ubuntu over the weekend and I don’t like the extra hoops you have to jump through just to get flatpaks, once I used a decent software center, Ubuntu got really buggy. I’d rather use a different OS, but you guys put a lot of hard work into the Kernel, so I shouldn’t experience any issues and the Kernel is optimized for my computer.

Thank you so much for everything you and the rest of the Framework team died for us. All of you are amazing individuals.

Yes it’s possible to use the custom kernel in debian. Ubuntu is based on debian. Debian has their own community that is a better place to look for guides or assistance. If you think the hoops you had to jump through to get flatpaks to work you are not going to like changing or customizing the kernel.

Kubuntu should be as easy install. Pop OS might be a good option. Fedora is also good and supported by framework.

1 Like

Flatpak is pretty easy to install on base Debian, I use it myself. Although I prefer the .deb where possible, but some things just need newer application versions.

That said, you can use Backports to get newer Debian kernels and packages from Testing (aka next-stable, or the repository they’re working on which will eventually become the next stable release). It takes a bit extra to specifically use those packages, but not too hard.

That said, AFAIK the Framework kernel changes are being upstreamed, although will take a while to trickle down to even Debian experimental, much less Testing.

All that said, there is an unofficial Debian support thread you can reference or ask some questions in.

2 Likes

Thanks!

1 Like

Thanks, I haven’t modified a Kernel before. I’d probably break my OS.

It’s not incredibly difficult. You can have multiple kernels on your system, but can only use one at a time. You can keep the stock debian kernel in the bootloader so you can still boot the system.

If you would like to get comfortable with kernel stuff and linux in general I would strongly recommend gentoo. It has amazing documentation and will get you more experience with linux and a very deep understanding of how it works. There is a gentoo wiki entry for the fw 16 that goes with the install manual for any hardware specific things.

Don’t be scared to break linux. Learning to fix it will make you an all around way more competent and advanced computer user. You can always spin up a virtual machine in whatever OS you are using to play with linux and try things that might break the OS and figure out how to fix without damaging your main main system. Once you are comfortable you can switch to installing on bare metal.

I am no developer and if I can figure out how to compile a kernel I think anyone can do it with a little work and reading.

I should have been playing with Linux a long time ago. I have been using it since Windows 10 came out, I have used Ubuntu, Kubuntu, Linux mint, Debian, Ubuntu server, and Debian without a GUI on a server, I don’t know what Watchdog is besides some kind of security for Linux, but it holds back my computers every time I restart it shut down. I shutdown a Debian server and came back half an hour later to see Watchdog is preventing the system from shutting down.

Thanks for the advice, I plan to break Linux repeatedly until I get sick of breaking Linux. I’ll try Gentoo in a VM on my Proxmox server. Thanks to Ubuntu server I’m comfortable with the command line, I also update using the terminal because GUI updates seem to mess Linux up.

How can I extract driver’s from a Kernel? I broke my pine phone OS because I updated and it dropped the Kernel drivers.

It is doable to use Debian with a FW16 - while not officially tested. So expect extra steps to get things working.

You will want the later releases of Power Profile Daemon and the kernel (6.7.x or higher). Expect challenges around suspend as there are patches that may not have made it to Debian yet (but would be coming as things flow forward).

1 Like

Moving topic to correct section.

I’m currently using Kubuntu 22.04 on my 11th Gen Intel FW13. I’ve removed Snap and replaced it with Flatpak using GitHub - popey/unsnap: Quickly migrate from using snap packages to flatpaks.

The steps I took were:

  1.   git clone https://github.com/popey/unsnap
    
  2.   cd unsnap
    
  3.   ./unsnap
    
  4.   ./00-backup
    
  5.   ./01-install-flatpak
    
  6.   sudo apt install plasma-discover-backend-flatpak
    
  7.   ./03-install-flatpaks
    
  8.   ./04-remove-snaps
    
  9.   ./99-remove-snapd
    

Edit /etc/apt/preferences.d/nosnap.pref (you’ll need to use sudo since it’s not owned by your user account) to add:
Package: snapd
Pin: release a=*
Pin-Priority: -10

Finish is all off with: sudo apt update

I haven’t had any issues doing this, but YMMV. You should also read the documentation for unsnap. It isn’t really meant for general use, and may miss some Snap packages.

1 Like

That’s really helpful. Thanks! I’m using Kubuntu currently because I’m not ready to tackle Debian. I’m having issues with the BIOS and dual boot.

Thanks for your help! Do I need to change Kernels in order to get the AMD GPU drivers? apt can’t find the firmware.

Yep, this will do it. Two things I will remind folks:

  • First, if something breaks, that is going to be a community support items. Following these steps, should be fine, but I have to get that out of the way regardless.

  • Use Popey’s repo - I know them, I trust them, I do not know those from forked repos. So using Alan Pope’s repo (popey) is going to be where you want to be for unsnap.

My FW16 is supposed to arrive on Tuesday, and I plan to install Debian 12 (Bookworm) with the bookworm-backports kernel packages (currently at 6.6.13), so it will be interesting to see how this goes. I will only be using iGPU (I did not order a dGPU and have no interest in one) so that may simplify things.

Very interested to hear how it goes, I’m still debating just going for testing. I kinda want Plasma 6 somewhat sooner than otherwise.

1 Like

Has anyone run into an issue where KDE crashes sometimes when you open the audio settings? These messages get logged when the crash happens:

Summary
kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma0 timeout, signaled seq=7734, emitted seq=7736
kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process  pid 0 thread  pid 0
kernel: amdgpu 0000:c1:00.0: amdgpu: GPU reset begin!
kernel: amdgpu 0000:c1:00.0: amdgpu: MODE2 reset
kernel: amdgpu 0000:c1:00.0: amdgpu: GPU reset succeeded, trying to resume
kernel: [drm] PCIE GART of 512M enabled (table at 0x00000080FFD00000).
kernel: amdgpu 0000:c1:00.0: amdgpu: SMU is resuming...
kernel: amdgpu 0000:c1:00.0: amdgpu: SMU is resumed successfully!
kernel: [drm] DMUB hardware initialized: version=0x08000500
kernel: [drm] kiq ring mec 3 pipe 1 q 0
kernel: [drm] VCN decode and encode initialized successfully(under DPG Mode).
kernel: amdgpu 0000:c1:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
kernel: amdgpu 0000:c1:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 1
kernel: amdgpu 0000:c1:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 1
kernel: amdgpu 0000:c1:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
kernel: amdgpu 0000:c1:00.0: amdgpu: recover vram bo from shadow start
kernel: amdgpu 0000:c1:00.0: amdgpu: recover vram bo from shadow done
kernel: [drm] ring gfx_32793.1.1 was added
plasmashell[4086]: [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate
kwin_wayland_wrapper[1441]: kwin_scene_opengl: A graphics reset not attributable to the current GL context occurred.
kernel: [drm] ring compute_32793.2.2 was added
kernel: [drm] ring sdma_32793.3.3 was added
kernel: [drm] ring gfx_32793.1.1 test pass
kernel: [drm] ring gfx_32793.1.1 ib test pass
kernel: [drm] ring compute_32793.2.2 test pass
kernel: [drm] ring compute_32793.2.2 ib test pass
kernel: [drm] ring sdma_32793.3.3 test pass
kernel: [drm] ring sdma_32793.3.3 ib test pass
kernel: amdgpu 0000:c1:00.0: amdgpu: GPU reset(1) succeeded!
kwin_wayland_wrapper[1441]: kwin_scene_opengl: Waiting for glGetGraphicsResetStatus to return GL_NO_ERROR timed out!
kwin_wayland_wrapper[1441]: OpenGL vendor string:                   AMD
kwin_wayland_wrapper[1441]: OpenGL renderer string:                 AMD Radeon Graphics (gfx1103_r1, LLVM 15.0.6, DRM 3.49, 6.1.0-20-amd64)
kwin_wayland_wrapper[1441]: OpenGL version string:                  4.6 (Core Profile) Mesa 22.3.6
kwin_wayland_wrapper[1441]: OpenGL shading language version string: 4.60
kwin_wayland_wrapper[1441]: Driver:                                 Unknown
kwin_wayland_wrapper[1441]: GPU class:                              Unknown
kwin_wayland_wrapper[1441]: OpenGL version:                         4.6
kwin_wayland_wrapper[1441]: GLSL version:                           4.60
kwin_wayland_wrapper[1441]: Mesa version:                           22.3.6
kwin_wayland_wrapper[1441]: X server version:                       1.22.1
kwin_wayland_wrapper[1441]: Linux kernel version:                   6.1
kwin_wayland_wrapper[1441]: Requires strict binding:                no
kwin_wayland_wrapper[1441]: GLSL shaders:                           yes
kwin_wayland_wrapper[1441]: Texture NPOT support:                   yes
kwin_wayland_wrapper[1441]: Virtual Machine:                        no
kwin_wayland_wrapper[1441]: BlurConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: ZoomConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: WindowViewConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: SlidingPopupsConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: SlideConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: OverviewConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: KscreenConfig::instance called after the first use - ignoring
kwin_wayland_wrapper[1441]: DesktopGridConfig::instance called after the first use - ignoring

The last bit (from the line about “a graphics reset not attributable” until the end) gets repeated, many times.

I’m having trouble figuring out what’s wrong and how to fix it, but one part that looks odd to me is that it says “Driver: unknown” which leads me to believe the iGPU is not supported… what that has to do with the audio menu, I don’t know.

I don’t have the dGPU.

Edit: I found these lines get logged when booting:

Summary
kernel: amdgpu 0000:c1:00.0: firmware: failed to load amdgpu/gc_11_0_1_mes_2.bin (-2)
kernel: firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
kernel: amdgpu 0000:c1:00.0: firmware: failed to load amdgpu/gc_11_0_1_mes_2.bin (-2)
kernel: amdgpu 0000:c1:00.0: Direct firmware load for amdgpu/gc_11_0_1_mes_2.bin failed with error -2
kernel: [drm] try to fall back to amdgpu/gc_11_0_1_mes.bin
kernel: amdgpu 0000:c1:00.0: firmware: direct-loading firmware amdgpu/gc_11_0_1_mes.bin
kernel: amdgpu 0000:c1:00.0: firmware: direct-loading firmware amdgpu/gc_11_0_1_mes1.bin

So something seems to be wrong with the firmware that’s installed, but I don’t know where to get the right ones - I’ve already installed the nonfree firmware-amd-graphics (it was by default), and the wiki link doesn’t have any relevant information.

Edit: Upgrading to kernel 6.6, as described here, and adding the missing firmware files as described later in the thread, seems to have fixed the issue.

1 Like

Debian stable has an ancient snapshot from before Phoenix hardware even went to market.
Please file a bug with Debian to get the snapshot updated.

I strongly suggest you update all amdgpu firmware not just the missing binaries. There are other issues that will be fixed too you just haven’t hit.

1 Like

Indeed, the debian bookworm firmware is old, as a workaround i simply took the latest firmware from here:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
and copied it over to the firmware directory.

My debian bookworm is running quite stable now, including gpu and wifi, however i do still have some problems with suspend and hibernate, so i am currently avoiding those.