Atlas (Pixelbook Go) camera support on Linux

Hi,

I’m not sure how big a task I’m taking on but I’m motivated to make the Atlas (Pixelbook Go) integrated web camera to work on Linux.

I don’t have much experience with Linux drivers and video input sadly. What gives me hope is that ChromeOS is Linux and thus the functionality can be transferred onto other Linux distros as well.

I have a device and it seems the hardware consists of a Sony IMX 208 sensor attached to Intel IPU3 where both seem to have drivers in the mainline Linux kernel?

I have been playing around with V4L2 on ChromeOS and reading some docs on IPU3 but overall I am hoping that by asking here I can get ideas on what I should learn overall and what in particular is missing or not working on Atlas so I can focus my efforts (or you can destroy my dreams if you assume it’s not a simple matter of patching and configuration).

So far it seems libcamera will do the job but needs configuration for my camera sensor. I am working with libcamera people to add support for my camera model which should make it all work out of the box. Fingers crossed!

Managed to get my camera working through libcamera. Some aspects are not ideal, it seems we need to set the black level and gain and we cannot easily do that without the datasheet for the sensor.

Either way, this was the only thing that was missing for the camera to work. In a future release of libcamera, laptops using a supported image processor + Sony IMX 208 should work. I may update on here once a release happens

For those who might be interested in how to get Zoom to work using the libcamera support for the Pixelbook Go camera, here is what I did:

  1. Build libcamera from source with the patch from petarlishov. Make sure to add all the dependencies for gstreamer.
  2. Test gstreamer following the instructions in the README.
  3. Create a virtual video device:
sudo modprobe v4l2loopback video_nr="42" 'card_label=virtcam'
  1. Set up the gstreamer pipeline:
gst-launch-1.0 libcamerasrc ! videoconvert ! v4l2sink device=/dev/video42

  1. Run Zoom. Zoom should automatically discover the video.

Thanks! Which distro do you run, or does this run on? I’ll be installing linux on my Pixelbook Go this week, and I’m still on the fence which distro I’ll install. Edging towards Pop!_OS as I’m accustomed to Debian/Ubuntu.

@petarlishov: massive respect for digging into libcamera. Do you have any news on the inclusion of your patch into their releases?

Have you started using the Pixelbook Go with Linux? Could you provide any feedback, what works, what doesn’t, pros & cons?

UPDATE: I’m especially interested in the camera experience (on-topic!) and keyboard (do you use the Google’s custom key between left Ctrl and Alt? All other keys working?).

I had looked into key mappings and you can set them up whichever way you want, but I do not remember which daemon I set up for that. Everything except for camera and audio worked out of the box. The one gripe I had was that the touchpad felt better to use on ChromeOS than on Fedora 42 but it was still perfectly usable. The audio fix was easy, the camera still needs that patch. I did not manage to get it in as the maintainers asked me to make changes and my Pixelbook died (seems the soldered SSD is not great for maintenance when it breaks) … I managed to get it back in working order this week though so I may address the comments and get the patch merged (if someone else did not yet pick that up instead of me) but no promises on timelines, I am notoriously bad at getting stuff done. Feel free to keep yourself updated on here or to even pick up the patch work though

1 Like

Hi, I used the Pixelbook with Linux (I used both OpenSuse Tumbleweed and EndeavorOS). Everything worked (after applying some initial patches), but I couldn’t get the camera to work. This made me revert it back to ChromeOS and use my faster Dell laptop with Linux/Windows dualboot.

In the end I always revert back to my Macbook, as a compromise between a fast Unix-like-OS and support for Microsoft software.

1 Like

Were you ever able to finish fixing up the patch to libcamera? Because the mrchromebox firmware turned back on the webcam for atlas and nocturne.