Request: SC200PC (module KAFC917) support on Panther Lake / IPU75XA — Samsung Galaxy Book6 Ultra
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- cpp, linux
调研方向
Start with the existing config/linux/ipu75xa/sensors/ files and the current Linux graph tooling, using the requested staticGraphCommonHashCode 929000173 as the compatibility target. Prepare sc200pc-uf.json and the SC200PC_KAFC917.IPU75XA.bin configuration, then test capture and PSYS behaviour on the Samsung Galaxy Book6 Ultra. Done means the hardware camera uses the IPU7 hardware ISP successfully and the requested files are redistributable.
由索引模型根据 Issue 内容生成。
描述
Summary
The front camera of the Samsung Galaxy Book6 Ultra is a SmartSens SC200PC (module KAFC917) on IPU7.5 (Panther Lake). Intel's Windows driver package for this laptop already contains the tuning and graph settings for it. Could a Linux build of the same configuration, i.e. SC200PC_KAFC917.IPU75XA.bin and sc200pc-uf.json, be added to this repository?
Update: in the meantime I converted the Windows files so they run with this HAL, and the camera now streams through the PSYS. This is a proof of concept, not a fix. Most of it came from trial and error and from comparing against Intel's Linux graphs, so I don't fully know why each change is needed, or whether the result is correct beyond "frames come out and look reasonable". Details, and the questions it leaves open, are below. A review, or an official configuration, would be very welcome.
Hardware
- Laptop: Samsung Galaxy Book6 Ultra,
PAMC-960UJH-PTLH-0, BIOSPAMC.1.4.49.421 - SoC: Intel Panther Lake, IPU7.5 at PCI
0000:00:05.0(device0xb05d) - Sensor: SmartSens SC200PC, ACPI
SSLC2000, I2C0x36, chip ID0x0b71 - Link: MIPI CSI-2 D-PHY, 2 lanes, CSI port 0, 832 Mbps/lane (link frequency 416 MHz)
- Mode: 1928x1088 RAW10, BGGR, 30 fps. The sensor is linear;
sc200pc.syshas only 1928x1088 at 30 and 15 fps and no DOL mode.
Linux setup
- Ubuntu 26.04, kernel 7.0.0-34: in-tree
intel-ipu7/intel-ipu7-isys, Ubuntu'sintel-ipu7-psysfromlinux-modules-ipu7-generic, andipu7ptl_fw.binfromlinux-firmware(PSYS1.2.1.251215214352) - An open-source V4L2 driver for the SC200PC, plus an
SSLC2000entry inipu_bridge - This HAL at
e5172cc(PTL release 2025-12-10),ipu7-camera-binsed16ac7,icamerasrc4fb31db
What the Windows driver package contains
sc200pc.inf (Provider: Intel Corporation, DriverVer 11/17/2025, 71.26100.0.11, HW ID ACPI\SSLC2000) installs:
| File | SHA-256 |
|---|---|
SC200PC_KAFC917_PTL.aiqb |
65b75702f33e880f9976cf51a3afa41e577dd33c1f1995e9a9fdfd1e29e5c99e |
SC200PC_KAFC917_PTL.cpf |
4945a3850729c9484078bd4420fa2a601f2c43afeaaef43fa1751199b5ec8cd0 |
graph_settings_SC200PC_KAFC917_PTL.bin |
acd119628426009170a12ee86ed7fa7e1bd7650e259339b43551b4685f8c9bd0 |
How the Windows files are adapted
The repo converts the two Windows files at build time. These are the changes that seem to be needed:
- Hashes. The graph settings file has exactly the layout of this repo at
e5172cc: header, 116-byteGraphConfigurationHeader, andsizeof(GraphConfiguration100032)6244 and100035248. Only the hashes differ: common1550038503vs1110027246, graph 1000323891494696vs611075083, and graph 100035419742221vs1527132867. Once they're replaced,StaticGraphReaderloads the file. - Linear graph instead of DOL. Every setting uses graph 100032 (Dol2Inputs_NoDvs_WithTnr), but the sensor is linear. Each setting is rebuilt as graph 100002 (Isys → LbffBayer → BbpsWithTnr):
- Kernels are matched by UUID, and their system API blobs are carried over unchanged.
- The DOL flags in the LBFF kernels are cleared.
- The BBPS output link runs in streaming mode, and the stream ID is 60001, as in Intel's own 100002 graphs.
- Unpacked ISYS input. The input feeder (ifd) configuration seems to expect packed ISYS output: 10-bit pixels packed 25 to 32 bytes, stride 2496. The in-tree ISYS delivers unpacked 16-bit samples, stride 3904. The stride, bits per pixel and a few related words are set to the values Intel's Linux graphs use. Without this, the PSYS accepted the first task and never completed it, with no error.
- Tuning. The
.aiqbloads, but its LAIQ record0x108is version 103, which the AIC ined16ac7doesn't seem to support.0x108,0x104and0x10care taken fromOV08X40_KAFE799_PTL.aiqb, which roughly halved the colour noise. The AE exposure plan is stretched to use the full frame before gain. - HAL.
isSameStreamConfigaccepts SBGGR10 as SGRBG10 (the graph's LBFF input crop starts one row down), and the AIC input timestamp is set, since it was left at 0.
Several of these values were copied from Intel's graphs by comparison rather than understood, including the ifd words and a BBPS flag bit. Using another sensor's tuning records can't be right either.
Result
In normal use it gives a usable picture with plausible colour. It's still noisier than Windows in low light, and I don't know whether that comes from the tuning swap, from the conversion, or from something else. Temporal noise reduction seems weak, for example.
The code is in https://github.com/MarcoGlauser/galaxybook6-ultra-camera (ipu7-hal/). The Windows files aren't redistributed; the installer fetches them from Samsung's driver download.
Open questions
- Is rewriting the ifd configuration for unpacked input the right approach? Or is there a supported way to get packed output from the in-tree ISYS, so a Windows-generated graph could be used unchanged?
- Is rebuilding a DOL graph as graph 100002 valid at all, given the system API blobs were generated for 100032?
- Will a future AIC release read LAIQ record
0x108version 103? - Does Samsung's tuning depend on anything this conversion drops or changes?
Request
SC200PC_KAFC917.IPU75XA.bin, generated for the current HAL. That would replace the conversion above.config/linux/ipu75xa/sensors/sc200pc-uf.json. I have a working one and can contribute it.SC200PC_KAFC917_PTL.aiqbalongside it, if it can be redistributed, ideally in a version the Linux AIC fully supports.
I can test on the hardware and report back.
Related issues
- 主要语言
- C++
- 星标
- 10
- 派生
- 29
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
intel/ipu7-camera-hal 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 45/100
intel/ipu7-camera-hal#92 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 45/100
intel/ipu7-camera-hal#52 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 45/100
intel/ipu7-camera-hal#48 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
intel/ipu7-camera-hal#45 · 4 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
intel/ipu7-camera-hal#38 ·
维护者通常 1 天内回复
查看 intel/ipu7-camera-hal 的全部 Issue
相似的 Issue
-
type:bug
难度 2/5 1-3 小时 新手友好度 65/100
tensorflow/tflite-micro#3995 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
-
not for AI lovers
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
VT: Backend
难度 2/5 1-3 小时 新手友好度 82/100
contour-terminal/contour#2314 ·
维护者通常 1 天内回复