As well known,Linux内核版本更新很快,有些内核版本的迭代升级可能会导致在使用的驱动版本存在编译失败或使用的兼容性问题,如何快速定位到内核版本间变更的地方,并处理掉该问题,列一下我常用的解决方法。(之前遇到问题,就下载对应的内核版本安装测试的方法,看来很foolish)
1、通过kernel.org内核官网查看具体版本相较于上版本的ChangeLog。
该方法可以全面看到内核版本的更新,但缺点同样明显,很难快速利用并解决自己的问题。
2、通过源代码网站 https://elixir.bootlin.com/linux/latest/source
直接定位到调用API或者头文件所在位置,该网站还有一个好处就是在定位到文件后选择其他内核版本可以直接切换到另一个内核版本的该文件,无需重新查找,对比起来十分方便。
找到文件之后,对比接口或者头文件变更,同时若不能理解新API用法,还有一个方法,找到与老驱动使用相同API的驱动,对比内核中该驱动的使用方法变更。至于如何找到引用相同API的驱动,最简单的方式就是通过Source Insight建立的内核工程了。
建议方法二,一目了然,快捷准确!