Public bug reported:
## Summary
On Ubuntu 24.04 the `ov01a1s` MIPI camera is unusable because two packages that
must
agree on sensor geometry are out of sync by four months.
* `linux-modules-ipu6-*` ships the **October 2025** `ov01a1s` kernel driver,
whose only
supported output size is **1288x800**.
* `libcamhal-ipu6-common` ships HAL configuration from **June 2025**, which
still
specifies **1296x798**.
The HAL programs the CSI-2 receiver pad for 1296x798 while the sensor
sub-device remains
at 1288x800. The mismatch fails media-pipeline link validation in the kernel, so
`VIDIOC_STREAMON` returns `EPIPE` and no frames are ever produced. Every
consumer
(Cheese, Chrome, Zoom, Teams, `gst-launch-1.0 icamerasrc`) sees no working
camera.
The fix already exists upstream and is a configuration-only change.
---
## Affected packages
```
libcamhal-ipu6-common 0~git202506270118.c933525~ubuntu24.04.5
libcamhal-ipu6 0~git202506270118.c933525~ubuntu24.04.5
libcamhal0 0~git202506270118.c933525~ubuntu24.04.5
gstreamer1.0-icamera 0~git202509260937.4fb31db~ubuntu24.04.5
linux-modules-ipu6-oem-24.04 6.17.0-1032.32
```
## System
```
Ubuntu 24.04.4 LTS (noble)
Dell Latitude 9420, BIOS 1.48.0
Kernel 6.17.0-1032-oem
Intel IPU6 (Tiger Lake), PCI 0000:00:05.0
Sensor: OmniVision OV01A1S (RGB-IR), ACPI OVTI01AS:00, CSI-2 port 1,
behind the LJCA USB-I2C bridge
```
---
## What happens
```
$ gst-launch-1.0 icamerasrc buffer-count=7 ! \
"video/x-raw,format=YUY2,width=1280,height=720,framerate=30/1" ! \
videoconvert ! autovideosink
CamHAL[ERR] Start: Device node /dev/video9 IOCTL VIDIOC_STREAMON error: Broken
pipe
CamHAL[ERR] Device:Generic stream on failed.
CamHAL[ERR] Devices stream on failed:-38
CamHAL[ERR] Start capture unit failed with ret:-38.
CamHAL[ERR] Camera device starts failed.
```
## What should happen
The camera streams and is available to applications.
---
## Evidence
### The kernel driver supports exactly one size, 1288x800
```
$ v4l2-ctl -d /dev/v4l-subdev8 --list-subdev-framesizes pad=0,code=0x300a
ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0,stream=0)
Size Range: 1288x800 - 1288x800
```
### The HAL config requests 1296x798
```
$ grep -n '1296' /etc/camera/ipu6/sensors/ov01a1s-uf.xml
19: <MediaCtlConfig id="0" ConfigMode="AUTO" outputWidth="1296"
outputHeight="798" ...
20: <format name="ov01a1s $I2CBUS" pad="0" width="1296" height="798" .../>
21: <format name="Intel IPU6 CSI-2 $CSI_PORT" pad="0" width="1296"
height="798" .../>
...
79: <supportedISysSizes value="1296x798"/>
```
### The resulting pad mismatch
```
$ media-ctl -d /dev/media0 -p
- entity 465: ov01a1s 6-0036 (1 pad, 1 link, 0 routes)
pad0: Source
[stream:0 fmt:SGRBG10_1X10/1288x800 field:none] <-- sensor
-> "Intel IPU6 CSI2 1":0 [ENABLED,IMMUTABLE]
- entity 267: Intel IPU6 CSI2 1 (9 pads, 9 links, 0 routes)
pad0: Sink
[stream:0 fmt:SGRBG10_1X10/1296x798 field:none] <-- HAL
programmed this
```
Link validation compares these two formats. They differ, so
`media_pipeline_start()` fails and `VIDIOC_STREAMON` returns `-EPIPE`.
### The hardware itself is fine
Configuring the pipeline by hand at the sensor's real geometry captures frames
successfully, which confirms the sensor, IPU6 firmware and kernel drivers all
work:
```bash
export MDEV=/dev/media0
sudo media-ctl -d $MDEV -V '"ov01a1s 6-0036":0
[fmt:SGRBG10_1X10/1288x800]'
sudo media-ctl -d $MDEV -V '"Intel IPU6 CSI2 1":0
[fmt:SGRBG10_1X10/1288x800]'
sudo media-ctl -d $MDEV -V '"Intel IPU6 CSI2 1":1
[fmt:SGRBG10_1X10/1288x800]'
sudo v4l2-ctl -d /dev/video9 \
--set-fmt-video=width=1288,height=800,pixelformat=BA10 \
--stream-mmap --stream-count=5 --stream-to=/tmp/frame.raw
```
Result: 10,496,000 bytes captured, five frames.
---
## Root cause
`intel/ipu6-drivers` commit `7731d39b4` (Hans de Goede, 28 Oct 2025),
*"media: i2c: ov01a1s: Change output size to 1288x800"*, changed the driver's
output
size to match mainline, which reserves a 4x4 border for flip window shifting,
and
requires a height that is a multiple of 4 because the RGB-IR pattern on this
sensor
repeats every 4 lines. (Note that 798 is not a multiple of 4.)
That commit message states explicitly:
> This requires a matching change to the following 2 files in ipu6-camera-hal:
> `config/linux/ipu6/sensors/ov01a1s-uf.xml`
> `config/linux/ipu6/gcss/graph_settings_ov01a1s.xml`
> I will submit a separate pull-request for the matching ipu6-camera-hal
> changes.
>
> This has been tested on a Dell Latitude 9420.
Ubuntu ships the updated kernel driver but not the matching HAL
configuration.
---
## Upstream fix
`intel/ipu6-camera-hal` commit **`eb451ec`** —
*"config/linux/ipu6: ov01a1s configs: Adjust for new 1288x800 ov01a1s kernel
driver
output size"*.
It updates exactly the two files named above. It is the most recent commit
touching
either file, so current upstream HEAD is sufficient.
Note that this is not a simple 1296 -> 1288 substitution. The crop margins
change too,
in order to preserve the 4-line RGB-IR phase, e.g. in
`graph_settings_ov01a1s.xml`:
```diff
- <input width="1296" height="798" top="0" left="7" bottom="2" right="9" />
+ <input width="1288" height="800" top="0" left="3" bottom="4" right="5" />
```
Naive substitution produces either a config-lookup failure or visible
color banding.
---
## Suggested resolution
Refresh `libcamhal-ipu6-common` to a snapshot including `eb451ec`, or backport
that
commit to the packaged version.
Since the affected files are dpkg conffiles, users who have applied the fix
manually
will be prompted on upgrade rather than silently reverted.
---
## Workaround
```bash
git clone https://github.com/intel/ipu6-camera-hal.git
cd ipu6-camera-hal
sudo cp config/linux/ipu6/sensors/ov01a1s-uf.xml
/etc/camera/ipu6/sensors/
sudo cp config/linux/ipu6/gcss/graph_settings_ov01a1s.xml /etc/camera/ipu6/gcss/
```
Verified working immediately afterwards, with correct color and
exposure:
```bash
sudo -E gst-launch-1.0 icamerasrc buffer-count=7 ! \
"video/x-raw,format=YUY2,width=1280,height=720,framerate=30/1" ! \
videoconvert ! autovideosink
```
** Affects: ipu6-drivers (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165197
Title:
libcamhal-ipu6-common ships ov01a1s configs for 1296x798, but shipped
ov01a1s kernel driver outputs 1288x800 (camera unusable)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ipu6-drivers/+bug/2165197/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs