Fairphone 6的超广角摄像头在主线Linux内核上实现了实验性支持——这是一个小而扎实的进展,却意味着通往”手机上跑真正Linux”的道路又前进了一步。

为什么Fairphone 6值得关注
Fairphone 6是postmarketOS社区重点关注的设备,原因有三个:一是硬件相对现代(高通骁龙7s Gen 3,即SM7635芯片,代号milos);二是Fairphone公司本身投资主线Linux支持,工程师Luca Weiss推动了大量开发工作;三是Fairphone明确允许安装替代操作系统,并承诺长期支持设备。这为postmarketOS提供了相对稳定的开发基础。
但目前仍有两个关键障碍阻止设备完全可用:板载音频和摄像头支持。一位开发者因为项目需要QR码扫描功能,决定尝试让至少一个摄像头在主线Linux上工作——并且坦言自己大量依赖了LLM辅助来完成这项工作。
摄像头链路:远不止一个传感器
Fairphone 6有三颗摄像头:后置Sony IMX896、前置Samsung S5KKD1、超广角OmniVision OV13B10。前两颗传感器在主线Linux中没有驱动,但OV13B10已有主线驱动——这让超广角摄像头成为最可行的突破口。13MP的OV13B10加上较宽的视野角度,也确实足够应付QR码扫描。
在高通SoC上,摄像头并非单一设备,而是一条复杂的链路:图像传感器 → CSI-2 D-PHY → CSIPHY → CSID → ISP(VFE/TFE)→ 内存,加上时钟控制器(camcc)、CCI(高通专用摄像头I2C控制器)、电源轨和自动对焦VCM等支撑组件。Android厂商内核使用高通庞大的私有CAMX/cam-kernel驱动栈,主线Linux则使用更轻量的qcom-camss驱动,配合libcamera做用户态图像处理。
好消息:不需要从零写驱动
开发者的初步研究发现,FP6的ISP块TFE665与主线已支持的TFE530在寄存器布局上完全相同,只是内部块基地址偏移不同——写总线从0xa00挪到了0x1800。CSID665的RDI寄存器也和已支持的CSID匹配,CSIPHY v2.2.1属于同系列三相PHY。这意味着可以移植现有驱动,而非从零开始。
开发者添加了新的camss-vfe-665.c文件,基于主线TFE530驱动(camss-vfe-340.c)建模。由于寄存器内容一致,驱动逻辑相同,主要工作量在于处理偏移地址的变化。之后还需要在设备树中描述硬件、启用传感器驱动、配置libcamera将原始Bayer帧转为可用图像。
开源手机生态的渐进式推进
Fairphone公司在主线Linux内核上游方面的持续投入——Luca Weiss提交的CCI支持补丁已被内核主线接收——说明这不是社区单打独斗,厂商也在配合。Fairphone 6在postmarketOS wiki上已被标记为”testing”状态,WiFi、蜂窝、屏幕、触摸屏已能工作,但音频、摄像头、GPS、NFC和指纹识别仍标记为broken或partial。
这次超广角摄像头的实验性支持只是一个摄像头、一种场景(QR扫描),但验证了整套摄像头链路从硬件描述到内核驱动再到用户态处理的关键环节都能在主线Linux上实现。如果ISP和CSIPHY的驱动能稳定合入主线,剩余两颗摄像头的支持路径也将变得更加清晰——届时Fairphone 6将成为极少数能在主线Linux上实现完整摄像头功能的Android手机之一。
来源:nondescriptpointer.com,postmarketOS Wiki