最近在kernel 5.3-rc1上启动时一直失败,但在kernel 5.2-rc4上工作正常,于是决定用git bisect 二分法找出出问题的PATCH。虽然跑了很久,但用法还是比较简单。
由于是启动过程中概率性出现,因此设置系统中/etc/rc.local让系统启动后又重启,一直连续跑二小时,决定是否本次OK。在/etc/rc.local中添加如下设置: reboot -f。
git bisect二分法操作如下所示:
git bisect start #开始bisect
git bisect good [good commid id] #输入正常时的commid id
git bisect bad [bad commid id] #输入异常时的commid id
然后根据它每次提供的版本,进行测试,并反馈本次结果:
git bisect good #如果本次版本正常,反馈good
git bisect bad #如果本次版本异常,反馈bad
最终可以找到出问题的PATCH。定位到出错的PATCH后,可以用下面指令退出二分:
git bisect reset