バグの特定

最終更新: 28 October 2016

イントロダクション

Always try the latest kernel from kernel.org and build from source. If you are not confident in doing that please report the bug to your distribution vendor instead of to a kernel developer.

Finding bugs is not always easy. Have a go though. If you can't find it don't give up. Report as much as you have found to the relevant maintainer. See MAINTAINERS for who that is for the subsystem you have worked on.

Before you submit a bug report read Documentation/admin-guide/reporting-bugs.rst.

デバイスが表示されない

大抵の場合は udev/systemd が原因です。カーネルに問題があると考える前に udev/systemd を先に確認してください。

バグの原因となっているパッチを突き止める

Using the provided tools with git makes finding bugs easy provided the bug is reproducible.

Steps to do it:

  • build the Kernel from its git source

  • start bisect with [1]:

    $ git bisect start
    
  • mark the broken changeset with:

    $ git bisect bad [commit]
    
  • mark a changeset where the code is known to work with:

    $ git bisect good [commit]
    
  • rebuild the Kernel and test

  • interact with git bisect by using either:

    $ git bisect good
    

    or:

    $ git bisect bad
    

    depending if the bug happened on the changeset you're testing

  • After some interactions, git bisect will give you the changeset that likely caused the bug.

  • For example, if you know that the current version is bad, and version 4.8 is good, you could do:

    $ git bisect start
    $ git bisect bad                 # Current version is bad
    $ git bisect good v4.8
    
[1]You can, optionally, provide both good and bad arguments at git start with git bisect start [BAD] [GOOD]

For further references, please read: