No Camera Found laptop (Microsoft Surface Book 2)

Asked by G Noel

I am new to Linux & I cannot seem to get either of the built-in cameras to be recognized. What am I missing to be able to share video &/or my screen in a Google Meet, Zoom or Teams meeting?

Here are the details about my laptop:
# System Details Report
---

## Report details
- **Date generated:** 2024-06-11 15:31:03

## Hardware Information:
- **Hardware Model:** Microsoft Corporation Surface Book 2
- **Memory:** 16.0 GiB
- **Processor:** Intel® Core™ i7-8650U × 8
- **Graphics:** Intel® UHD Graphics 620 (KBL GT2)
- **Graphics 1:** NVIDIA GeForce GTX 1060
- **Disk Capacity:** (null)

## Software Information:
- **Firmware Version:** 394.779.768
- **OS Name:** Ubuntu 24.04 LTS
- **OS Build:** (null)
- **OS Type:** 64-bit
- **GNOME Version:** 46
- **Windowing System:** X11
- **Kernel Version:** Linux 6.8.0-35-generic

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
G Noel (ginoel) said :
#1

Front & back cameras appear to be supported for Surface Book 2 but I'm still not sure what I need to do: https://github.com/linux-surface/linux-surface/wiki/Camera-Support

Revision history for this message
actionparsnip (andrew-woodhead666) said :
#2

https://turlucode.com/how-to-install-ubuntu-18-04-on-surface-book-2/

Seems there is a custom kernel to make stuff work.

Revision history for this message
G Noel (ginoel) said :
#3

I tried everything starting from 'Install linux-image-surface kernel" to "Post installation" but the camera still isn't working. Please let me know if there is anything else I can try.

Revision history for this message
Manfred Hampl (m-hampl) said :
#4

For diagnostic purposes, what output do you receive for the commands (to be executed in a terminal window):

uname -a
lsb_release -crid
sudo lsusb
sudo lspci
sudo dmesg | grep -i -E 'firm|cam|ipu|ov5|ov7|ov8|ov9'

(not sure whether it will help, though)

Revision history for this message
G Noel (ginoel) said :
#5

I've tried a bunch of solutions, so perhaps that's why I still can't get it to work. But here's the output from a copy/paste of the commands from above...

Linux gnoel-Surface-Book-2 6.9.3-surface-2 #2 SMP PREEMPT_DYNAMIC Mon Jun 10 23:37:21 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 045e:0942 Microsoft Corp. L1 USB2 Hub
Bus 001 Device 003: ID 045e:091e Microsoft Corp. XBOX ACC
Bus 001 Device 004: ID 045e:0944 Microsoft Corp. L2 USB2 Hub
Bus 001 Device 005: ID 045e:0922 Microsoft Corp. Surface Keyboard
Bus 001 Device 006: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 007: ID 1286:204c Marvell Semiconductor, Inc. Bluetooth and Wireless LAN Composite
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 045e:0941 Microsoft Corp. L1 USB3 Gen1 Hub
Bus 002 Device 003: ID 045e:0943 Microsoft Corp. L2 USB3 Gen1 Hub
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
00:05.0 Multimedia controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit (rev 01)
00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-LP Integrated Sensor Hub (rev 21)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:14.3 Multimedia controller: Intel Corporation CSI-2 Host Controller (rev 01)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:16.4 Communication controller: Intel Corporation iTouch Controller (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC/eSPI Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Ethernet controller: Marvell Technology Group Ltd. 88W8897 [AVASTAR] 802.11ac Wireless
02:00.0 3D controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963
[ 0.000000] AMD AuthenticAMD
[ 0.210186] PCI: ECAM [mem 0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
[ 0.210195] PCI: not using ECAM ([mem 0xe0000000-0xefffffff] not reserved)
[ 0.282532] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.319480] PCI: ECAM [mem 0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
[ 0.324294] PCI: ECAM [mem 0xe0000000-0xefffffff] reserved as ACPI motherboard resource
[ 0.367598] ACPI: \_SB_.PCI0.CAMP: New power resource
[ 0.386138] pci 0000:00:05.0: DMAR: Passthrough IOMMU for integrated Intel IPU
[ 0.535064] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.535938] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.536782] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.537602] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.538444] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.539287] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.540097] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 0.541471] ACPI: thermal: [Firmware Bug]: No valid trip points!
[ 1.352255] surface_serial_hub serial0-0: SAM firmware version: 182.2304.139
[ 4.118573] systemd[1]: Mounting snap-firmware\x2dupdater-127.mount - Mount unit for firmware-updater, revision 127...
[ 4.652904] ov8865 i2c-INT347A:00: supply dvdd not found, using dummy regulator
[ 4.653005] ov8865 i2c-INT347A:00: supply dovdd not found, using dummy regulator
[ 4.653026] ov8865 i2c-INT347A:00: supply avdd not found, using dummy regulator
[ 4.657460] ipu3_imgu: module is from the staging directory, the quality is unknown, you have been warned.
[ 4.677801] ipu3-imgu 0000:00:05.0: enabling device (0000 -> 0002)
[ 4.677952] ipu3-cio2 0000:00:14.3: Found supported sensor INT33BE:00
[ 4.678023] ipu3-imgu 0000:00:05.0: device 0x1919 (rev: 0x1)
[ 4.678048] ipu3-imgu 0000:00:05.0: physical base address 0x00000000c2000000, 4194304 bytes
[ 4.678813] ov8865 i2c-INT347A:00: supply dvdd not found, using dummy regulator
[ 4.679347] ov8865 i2c-INT347A:00: supply dovdd not found, using dummy regulator
[ 4.679487] ipu3-cio2 0000:00:14.3: Found supported sensor INT347A:00
[ 4.680060] ov8865 i2c-INT347A:00: supply avdd not found, using dummy regulator
[ 4.681659] ipu3-cio2 0000:00:14.3: Found supported sensor INT347E:00
[ 4.681929] ipu3-cio2 0000:00:14.3: Connected 3 cameras
[ 4.681950] ipu3-cio2 0000:00:14.3: enabling device (0000 -> 0002)
[ 4.681973] ov5693 i2c-INT33BE:00: supply avdd not found, using dummy regulator
[ 4.682030] ov5693 i2c-INT33BE:00: supply dovdd not found, using dummy regulator
[ 4.682040] ov5693 i2c-INT33BE:00: supply dvdd not found, using dummy regulator
[ 4.682150] ipu3-cio2 0000:00:14.3: device 0x9d32 (rev: 0x1)
[ 4.695909] ov7251 i2c-INT347E:00: supply vdddo not found, using dummy regulator
[ 4.704385] ov7251 i2c-INT347E:00: supply vddd not found, using dummy regulator
[ 4.705104] ov7251 i2c-INT347E:00: supply vdda not found, using dummy regulator
[ 4.712628] ov7251 i2c-INT347E:00: OV7251 revision 7 (1F) detected at address 0x60
[ 4.783410] ipu3-imgu 0000:00:05.0: loaded firmware version irci_irci_ecr-master_20161208_0213_20170112_1500, 17 binaries, 1212984 bytes
[ 4.804160] ov8865 i2c-INT347A:00: Instantiated dw9719 VCM
[ 5.316104] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[ 5.660457] audit: type=1400 audit(1718286728.551:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="cam" pid=897 comm="apparmor_parser"

Revision history for this message
Manfred Hampl (m-hampl) said :
#6

The log files show two cameras (probably front and rear). What output do you now receive for the command

cam --list

Revision history for this message
G Noel (ginoel) said :
#7

Here is what I get from cam --list

cam: command not found

Revision history for this message
G Noel (ginoel) said :
#8
Revision history for this message
Manfred Hampl (m-hampl) said :
#9

cam is contained in the package libcamera-tools

Revision history for this message
G Noel (ginoel) said :
#10

Hmmm, not sure what that means I typed "libcamera-tools cam --list" & got this: libcamera-tools cam --list.

I just googled install libcamera-tools & found this: https://libcamera.org/getting-started.html
I copy/pasted the code at the top in terminal & got this:
Cloning into 'libcamera'...
remote: Enumerating objects: 39446, done.
remote: Counting objects: 100% (39446/39446), done.
remote: Compressing objects: 100% (12614/12614), done.
remote: Total 39446 (delta 30657), reused 34857 (delta 26657)
Receiving objects: 100% (39446/39446), 7.30 MiB | 6.59 MiB/s, done.
Resolving deltas: 100% (30657/30657), done.
meson: command not found
ninja: command not found

I've been trying different things & found this: https://github.com/linux-surface/linux-surface/wiki/Camera-Support but none of the commands work. I think I found the bin files but they are in a zst that I don't have permission to uncompress. All other commands return results that include "command not found", so I'm clearly doing something wrong.

This is a fresh install, I'm don't know why this is so messed up already.

Revision history for this message
Manfred Hampl (m-hampl) said :
#11

You misunderstood "cam is contained in the package libcamera-tools"

You have to install the Ubuntu package libcamera-tools and this will provide the application "cam".

Either in a terminal execute the command

sudo apt install libcamera-tools

or search in the software center (or in synaptic, or other package management tools) for the package libcamera-tools and install it from there.

Can you help with this problem?

Provide an answer of your own, or ask G Noel for more information if necessary.

To post a message you must log in.