一般来说 SoC 层面没什么问题。上市前半年官方分支就开始加驱动代码,这样产品上市的时候,相关驱动才能赶上合并的时间节点。有问题的一般是键盘、触摸板、声卡(严格来说是 dac/adc )、摄像头、指纹以及 bios/ec 这些。
Intel 阵营这边,越是公版设计,越是丐版没什么外设的越能做到开箱即用,最典型的就是小米。
有个比较简单的方式,通过
https://linux-hardware.org/ 来查找,比如
https://linux-hardware.org/?probe=a81f6be044 看到检测到的硬件,以及对应的驱动状态。一般来说 works/detected 都没什么问题,failed 不代表就不行。当然这个数据库一定要有人上传数据才行,属于前人栽树的行为。如果没有的话,可以考虑去品牌线下店,用内核比较新的 linux live 引导,然后 hw-probe 上传一下。
随便说一下容易出现没驱动设备的解决方法:
- 键盘,一般是因为硬件上走了比较特殊的连接方式,比如键盘先连 ec ,ec 再连 ps2 这样,厂家可以通过 ec 拦截某些按键组合实现硬件上的功能调整。这个驱动不了的话一般只能等 fix 。
- 触摸板,比较新的触摸板有可能只是没适配,驱动多数是走 libinput 的,看看相同型号有没有其他设备支持的,有的话一般来说写个 quirks 文件就可以了。
- 声卡,如果是固件问题多数时间要等上游修,和上面触摸板 quriks 修正差不多。另一个常见的问题就是用了 XX 牌子扬声器,本身声卡驱动是没问题的,只是无法正确激活响应的 dac/adc ,也要等上游修。
- 摄像头,驱动不了的摄像头大多数是走了 IPU 而不是 usb 。目前 linux Intel IPU 支持也慢慢跟上来了。还是等修……
- 指纹,看厂家,基本没得修。因为厂家不提供驱动的情况下,指纹类设备就是黑盒,想做驱动只能逆向。指纹的驱动不在内核里,看 libfprint 的支持列表吧。
- bios/ec ,看厂家也看型号,现在来说做得比较好的是 thinkbook/thinkpad ,其他的都半斤八两。