未检测到内置摄像头 Lenovo P14 AMD

未检测到内置摄像头 Lenovo P14 AMD

我在 Lenovo P14 AMD 笔记本电脑上使用带有 Qtile Window Manager 的 Garuda Linux,但无法使内置摄像头正常工作。我尝试过 Cheese 和各种网站(Jitsi、Google Hangouts 等),但总是显示“未找到设备”。

我没有video*位于 的文件/dev/

Linux版本:Linux linux 5.19.9-zen1-1-zen

跑步lsusb

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0489:e0cd Foxconn / Hon Hai Wireless_Device
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

一些系统信息:

Graphics:
  Device-1: AMD Cezanne vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5.1
    code: Vega-2 process: TSMC n7 (7nm) built: 2018-21 pcie: gen: 3
    speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s ports:
    active: HDMI-A-1,eDP-1 empty: DP-1,DP-2 bus-ID: 07:00.0
    chip-ID: 1002:1638 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.4 compositor: Picom v: git-c4107
    driver: X: loaded: amdgpu unloaded: modesetting alternate: fbdev,vesa
    gpu: amdgpu display-ID: :0 screens: 1
  Message: Unable to show GL data. Required tool glxinfo missing.

我不确定可以采取什么步骤来解决这个问题。

答案1

https://github.com/djrscally/miix-510-cameras 这是关于 Miix 510 Lenovo 运行 Linux 需要什么的书面答案。

哦!做他们的工作?

有点。加载 Surface_camera 驱动程序和 ov2680 驱动程序后,您可以拍摄(非常糟糕的)图像。 ov5648 驱动程序还不能工作。这些驱动程序还有很多工作要做,随后 libcamera 也需要做很多工作才能让它们以有用的方式工作。为什么这如此困难?

有几个问题:

The cameras are powered off by default behind a PMIC called a TPS68470, identified as INT3472 in the ACPI tables. The ACPI tables don't define an I2cSerialBus2 section for the PMIC, so its driver never realises that it's present.
The TPS68470 driver doesn't actually turn it on; there are 3 GPIO lines into the PMIC defined in the ACPI tables, but they're off by default and the PMIC driver doesn't toggle them. They're also not named in the ACPI tables so it's not a simple matter to determine which ones are the power lines and which the reset pin. In my case, 1 and 2 were power and 0 was reset, so the chip can be turned on like so:

$ sudo gpioset gpiochip0 122=1 143=1

在此步骤之前,PMIC 和相机的 i2c 接口均未启用,这意味着它们根本不会在任何地方显示。设备打开后,您应该能够使用 i2cdetect 看到它:

OV2680 位于 0x10。 TPS68470 是位于 0x48 的设备。我不知道 0x0c 处是什么;这是为 oc5648 定义的两个可能地址之一,但打开该芯片的 PMIC 后发现它位于 0x36。谁在乎呢,真的。无论如何,现在相机已打开,您可以通过与传感器交谈并询问其 ID 来验证这不是废话。 OV2680 数据表告诉我们,它的 id 位于寄存器 0x​​300a:

$ sudo i2cDetect -r -y 7

相关内容