|
Add `initcall_debug` parameter, which traces the initcalls as they are executed.
|
|
|
`alsa-info.sh` provides information about both kernel and userspace components. If you have a working and non-working kernel, you should provide `alsa-info.sh` for both cases.
|
|
|
Bisecting is a time-consuming task, but it's very straightforward and is often the best way to find the cause of a problem. If you're really interested in getting the problem you're seeing fixed, bisecting will speed up the process considerably in most cases.
|
|
|
Bisecting the kernel
|
|
|
Boot failures
|
|
|
Booting with vga=791 (or even just vga=1 if the video card won't support 791) will put the framebuffer into high resolution mode to get more lines of text on screen, allowing more context for bug analysis.
|
|
|
Checking whether or not the CapsLock key (or NumLock or ScrollLock) causes
|
|
|
Find the newest version you can that works. This will be the initial "good" version. The first version you find that doesn't work will be the initial "bad" version.
|
|
|
Hangs and freezes
|
|
|
If the new kernel works, mark it as good with `git bisect good`. Otherwise, mark it as bad with `git bisect bad`.
|
|
|
If the problem you've encountered isn't present in older versions of the kernel, it is very helpful to use `git-bisect` to find the commit that introduced the problem. For a general overview of `git-bisect`, see its https://git-scm.com/docs/git-bisect[documentation]. An outline on how to bisect the kernel is included in the https://www.kernel.org/doc/html/latest/admin-guide/bug-bisect.html[kernel documentation]. This guide contains Fedora-specific details.
|
|
|
If you get no output at all from the kernel, booting with `earlyprintk=vga` can sometimes yield something of interest.
|
|
|
Information for collecting logs is documented at the https://wayland.freedesktop.org/libinput/doc/latest/reporting-bugs.html[libinput website].
|
|
|
Input issues (touchpad etc.)
|
|
|
Install the xref:kernel/build-custom-kernel.adoc#_get_the_dependencies[dependencies] required to build the kernel.
|
|
|
Logs to collect
|
|
|
Mark the first version that does not work as "bad" with `git bisect bad <tag>`. For example: `git bisect bad v4.17`.
|
|
|
Mark the newest version that works as "good" with `git bisect good <tag>`. For example: `git bisect good v4.16.8`.
|
|
|
Next, xref:kernel/build-custom-kernel.adoc#_getting_the_sources[get the source code].
|
|
|
Prepare a `.config` file. Assuming you've got both the good and bad kernel installed, the config for both will be in `/boot/`.footnote:[When bisecting between major versions (e.g. `v4.16` and `v4.15`) new configuration options will be added and removed as you bisect. It's _usually_ safe to select the default.]
|
|