On Wed, Jan 21, 2026 at 06:54:41PM +0100, 光の夢 wrote:
> Known points for bisection:
> 
> 6.17.13-1 ✅ (true suspend)
> 6.12.63-1 ❌ (broken suspend)
> 6.12.57-1 ✅ (non-broken suspend)
> 
> It seems there aren't any snapshots between 6.12.57-1 and 6.12.63-1, so I 
> can't find out where this bug started. But I can download the kernel images 
> to find out when the fix came.
> 
> Bisection log:
> 
> linux-image-6.16.3+deb13-amd64-unsigned 6.16.3-1~bpo13+1 ✅ (true suspend) 
> linux-image-6.14-amd64-unsigned 6.14.3-1~exp1 ✅ (true suspend) 
> linux-image-6.13-amd64-unsigned 6.13.7-1~exp1 ✅ (true suspend) 
> linux-image-6.13-amd64-unsigned 6.13.2-1~exp1 ✅ (true suspend) 
> linux-image-6.13-rc6-amd64-unsigned 6.13~rc6-1~exp1 ❌❌❌ (fails to boot to 
> GDM, kernel panic'd once) 
> linux-image-6.13-rc7-amd64-unsigned 6.13~rc7-1~exp1 ❌❌❌ (fails to boot to GDM)
> 
> So it looks like 6.13.2 is the earliest snapshot available where suspend is 
> fixed on this laptop. I hope that's helpful.
> 
> I guess I can try to do a git bisect next if that's helpful?

Yes indeed. This would work as follows:

a) clone source code and generate a suitable configuration

        git clone --signle-branch -b linux-6.13.y 
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
        cd linux-stable
        git checkout v6.13.2
        cp /boot/config-$(uname -r) .config
        yes '' | make localmodconfig
        make savedefconfig
        mv defconfig arch/x86/configs/my_defconfig

b) test v6.13.2 to confirm you have everything you need to compile and
   install a kernel and that it's good (as one would expect from your
   test of 6.13.2-1~exp1)

        make my_defconfig
        make -j $(nproc) bindeb-pkg
        ... install the resulting .deb package and confirm suspend is working

c) Find an older broken one. A conservative choice is 6.12:

        git checkout v6.12
        make my_defconfig
        make -j $(nproc) bindeb-pkg
        ... install the resulting .deb package 🤞 it boots fine and that
        suspend is broken.

   If it doesn't boot you have to find another version that boots but
   doesn't suspend. v6.13-rc1 or v6.13 might be versions to check.

d) With a)-c) done, the bisection can start:

        git bisect start --term-new=fine --term-old=doesntsuspend v6.13.2 v6.12

   (Use what ever version you found in c) instead of "v6.12" in the
   above command. Also "fine" and "doesntsuspend" are arbitrary terms,
   pick whatever you find suitable for you and use is accordingly in the
   steps afterwards.)

   Whenever you called `git bisect ...` git checks out a version of the
   kernel that you are supposed to test. To do so do:

        make my_defconfig
        make -j $(nproc) bindeb-pkg
        ... install and test

   If the kernel fails to boot or shows another problem that makes you
   unable to test if the kernel has the suspend problem run:

        git bisect skip

   If the kernel suspends and resumes fine (i.e. the problem is fixed)
   run:

        git bisect fine

   and if the suspend problem happens, run

        git bisect doesntsuspend

   .

e) repeat d) until git reports to have found the first fine revision.
   Report back the output of `git bisect log`

The things to pay attention for to are:

 - always select the just built kernel for booting. It won't always be
   the one the grub picks up as default.

 - Typically a system doesn't have enough space (in / and/or /boot) to
   be able to install all kernels needed during a bisection. All kernels
   that you tested can be uninstalled to make space for the next
   package.

 - In the end uninstall all kernels you built to not use these
   kernels for more than testing.

If you have questions or hit problems, that's probably because my
instructions don't consider all the corner cases you might hit. Don't
hesitate to ask, by mail in reply to this bug or in the #debian-kernel
irc channel.

Thanks for your time and effort,
Uwe

Attachment: signature.asc
Description: PGP signature

Reply via email to