Page 1 of 3 123 LastLast
Results 1 to 10 of 24

Thread: steps in bisecting the kernel

  1. #1
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    steps in bisecting the kernel

    I am trying to track down a trackpad bug that started after the 2.6.35-22 kernel in 10.10 and before the 2.6.38-8 kernel in 11.04. I am told that to bisect the kernel is the way to go.

    In the bisection instructions an example is given:

    Code:
    git log --oneline Ubuntu-2.6.35-24.42..Ubuntu-2.6.35-25.43
    How do I calculate the right values for git based on the two known kernels (2.6.35-22 and 2.6.38-8) I have?

  2. #2
    Join Date
    Feb 2011
    Location
    Coquitlam, B.C. Canada
    Beans
    3,506
    Distro
    Ubuntu Development Release

    Re: steps in bisecting the kernel

    Hi Lars,

    I think before you go to the git step. you want further isolate where the issue got introduced by testing more kernels from https://launchpad.net/ubuntu/maverick/+source/linux
    and /or
    https://launchpad.net/ubuntu/natty/+source/linux (scroll down to the "Releases in Ubuntu" section)

    Oh, I see similar notes have been added to lauchpad bug report you linked to above. I was gone for quite some time trying to figure out this reply, and I guess you made progess in the meantime. Myself, I find this stuff a little slow and tedious to try to find and follow. Hope you get it isolated.

  3. #3
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: steps in bisecting the kernel

    Thanks.

    I think I've found how to navigate https://launchpad.net/ubuntu/maverick/+source/linux through to the versions of the kernel I need to test.

  4. #4
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: steps in bisecting the kernel

    I've gotten through the kernels that were available for download.

    2.6.35-32.67, if it overwrote 2.6.35-32.64 when I installed it, was good.

    2.6.38-10.44 was definitely bad.

    What is the next step in the bisect? I've tried followng the example, but get the error below.

    Code:
    $ git log --oneline Ubuntu-2.6.35-32.67..Ubuntu-2.6.38-10.44
    fatal: ambiguous argument 'Ubuntu-2.6.35-32.67..Ubuntu-2.6.38-10.44': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions

  5. #5
    Join Date
    Feb 2011
    Location
    Coquitlam, B.C. Canada
    Beans
    3,506
    Distro
    Ubuntu Development Release

    Re: steps in bisecting the kernel

    Wouldn't you switch to the natty kernels and continue to try to isolate?
    I would start with 2.6.36-0.1 as a starting point for the natty successive approximation. If that works then 2.6.37-8.21 as an approximate mid-point of the 42 or 43 kernels in between, and so on...

  6. #6
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: steps in bisecting the kernel

    Thanks. I've gotten it narrowed down to the last good one as 2.6.38-7.39 and the first bad one as 2.6.38-8.40.

    https://wiki.ubuntu.com/Kernel/Kerne...ernel_versions

    I'm able to clone the branch:

    git clone git://kernel.ubuntu.com/ubuntu/ubuntu-natty.git

    and create a bisect

    git checkout -b mybisect origin/master

    However, I can't get through the next step.

    git bisect start Ubuntu-2.6.38-8.40..Ubuntu-2.6.38-7.39
    git bisect start Ubuntu-2.6.38-8.40 Ubuntu-2.6.38-7.39

    It should say something about bisecting and the number of revisions left. But it produces no output or anything like in the instructions. If I try the statement again, it replies with, "Already on 'mybisect'"

    Edit: It was the double dots that were wrong.
    Last edited by Lars Noodén; November 2nd, 2012 at 06:22 PM.

  7. #7
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: steps in bisecting the kernel

    Now the output diverges from the guide:

    $ git bisect start Ubuntu-2.6.38-8.40 Ubuntu-2.6.38-7.39
    Switched to branch 'mybisect'
    Bisecting: a merge base must be tested
    [521cb40b0c44418a4fd36dc633f575813d59a43d] Linux 2.6.38

    Where in the guide it should say the number of revisions and steps left. How do I test a merge base?

  8. #8
    Join Date
    Feb 2011
    Location
    Coquitlam, B.C. Canada
    Beans
    3,506
    Distro
    Ubuntu Development Release

    Re: steps in bisecting the kernel

    I think, but am not sure, that you are supposed to test the point that git has suggested. Git can not exactly "bisect" yet, and needs to know the answer if the point it selected is good or bad. For example (and since I can not actually test the kernel for your problem, I just made a "good" answer for this example):
    Code:
    doug@s15:~/temp-lars/ubuntu-natty$ git bisect start Ubuntu-2.6.38-8.40 Ubuntu-2.6.38-7.39
    Bisecting: a merge base must be tested
    [521cb40b0c44418a4fd36dc633f575813d59a43d] Linux 2.6.38
    doug@s15:~/temp-lars/ubuntu-natty$ git bisect good
    Bisecting: 351 revisions left to test after this (roughly 9 steps)
    [516b498acc786576d4dd4238f7d67812a5c5df86] UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic
    I'll put this same info in the bug report, in case you don't see this.

  9. #9
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: steps in bisecting the kernel

    Thanks, Doug. How did you find out which option to add to git to go forward?

  10. #10
    Join Date
    Sep 2006
    Beans
    8,627
    Distro
    Ubuntu 14.04 Trusty Tahr

    building the kernel

    Ok, inching slowly forward, I've gotten to the stage where I need to build the kernel. However, again the instructions don't match with what I have.

    The instructions on building a kernel say

    Code:
    fakeroot debian/rules clean
    fakeroot debian/rules binary-headers binary-generic
    But there is no directory "debian" among the material I've cloned/checked out using git.

    Code:
    $ ls
    arch     debian.master  fs       Kconfig      mm              scripts   usr
    block    Documentation  include  kernel       net             security  virt
    COPYING  drivers        init     lib          README          sound
    CREDITS  dropped.txt    ipc      MAINTAINERS  REPORTING-BUGS  tools
    crypto   firmware       Kbuild   Makefile     samples         ubuntu
    Nor is there a 'debian' in any of the subdirectories. Running "find" doesn't show any files named "rules" either.

    My own notes are not much better, it being 10 years since I last had to make a custom kernel.

Page 1 of 3 123 LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •