X1 Tablet Kameras (20GH) unter Linux

grue

New member
Registriert
15 Sep. 2021
Beiträge
9
Hallo zusammen,

vor kurzem habe ich mir ein gebrauchtes Thinkpad X1 Tablet (20GH) zugelegt, im Ǵlauben, dass das Gerät so problemlos unter Linux läuft wie meine bereits vorhandenen (älteren) Thinkpads.

Leider war dem nicht so. Das drängendste Problem sind die nicht funktionieren Kameras.

Hier im Forum habe ich dazu leider nur einen Thread (der ein 20GJ betraf, wenn ich mich richtig erinnere) gefunden, der ungelöst blieb. Daher (m)ein neuer Versuch.

Ich nutze Linux Mint, aktuell mit dem Kernel 5.13.0. inxi spuckt folgendes aus:

System: Kernel: 5.13.0-30-generic x86_64 bits: 64 compiler: N/A Desktop: Cinnamon 5.2.7 wm: muffin 5.2.0 dm: LightDM 1.30.0 Distro: Linux Mint 20.3 Una base: Ubuntu 20.04 focal Machine: Type: Detachable System: LENOVO product: 20GHS10T00 v: ThinkPad X1 Tablet serial: <filter> Chassis: type: 32 serial: <filter> Mobo: LENOVO model: 20GHS10T00 v: SDK0J40697 WIN serial: <filter> UEFI: LENOVO v: N1LET94W (1.94 ) date: 12/23/2021 Battery: ID-1: BAT0 charge: 6.9 Wh condition: 32.7/37.0 Wh (88%) volts: 7.6/7.5 model: SMP 00HW046 type: Li-poly serial: <filter> status: Charging CPU: Topology: Dual Core model: Intel Core m5-6Y57 bits: 64 type: MT MCP arch: Skylake rev: 3 L2 cache: 4096 KiB flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 11999 Speed: 600 MHz min/max: 400/2800 MHz Core speeds (MHz): 1: 600 2: 600 3: 600 4: 600 Graphics: Device-1: Intel HD Graphics 515 vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:191e Display: x11 server: X.Org 1.20.13 driver: modesetting unloaded: fbdev,vesa resolution: 2160x1440~60Hz OpenGL: renderer: Mesa Intel HD Graphics 515 (SKL GT2) v: 4.6 Mesa 21.2.6 direct render: Yes Audio: Device-1: Intel Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit vendor: Lenovo driver: ipu3-imgu bus ID: 00:05.0 chip ID: 8086:1919 Device-2: Intel vendor: Lenovo driver: ipu3-cio2 bus ID: 00:14.3 chip ID: 8086:9d32 Device-3: Intel Sunrise Point-LP HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel bus ID: 00:1f.3 chip ID: 8086:9d70 Sound Server: ALSA v: k5.13.0-30-generic Network: Device-1: Intel Wireless 8260 driver: iwlwifi v: kernel port: efa0 bus ID: 04:00.0 chip ID: 8086:24f3 IF: wlp4s0 state: up mac: <filter> Drives: Local Storage: total: 238.47 GiB used: 62.07 GiB (26.0%) ID-1: /dev/sda vendor: SanDisk model: SD8TN8U256G1001 size: 238.47 GiB speed: 6.0 Gb/s serial: <filter> rev: 3101 scheme: GPT Partition: ID-1: / size: 100.36 GiB used: 31.02 GiB (30.9%) fs: ext4 dev: /dev/sda5 Sensors: System Temperatures: cpu: 38.0 C mobo: N/A Fan Speeds (RPM): cpu: 65535 fan-1: Repos: No active apt repos in: /etc/apt/sources.list Active apt repos in: /etc/apt/sources.list.d/libreoffice-ppa-focal.list 1: deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu focal main Active apt repos in: /etc/apt/sources.list.d/maarten-fonville-android-studio-focal.list 1: deb http://ppa.launchpad.net/maarten-fonville/android-studio/ubuntu focal main Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list 1: deb https://ftp-stud.hs-esslingen.de/pub/Mirrors/packages.linuxmint.com una main upstream import backport 2: deb http://ftp.halifax.rwth-aachen.de/ubuntu focal main restricted universe multiverse 3: deb http://ftp.halifax.rwth-aachen.de/ubuntu focal-updates main restricted universe multiverse 4: deb http://ftp.halifax.rwth-aachen.de/ubuntu focal-backports main restricted universe multiverse 5: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse 6: deb http://archive.canonical.com/ubuntu/ focal partner Active apt repos in: /etc/apt/sources.list.d/signal-xenial.list 1: deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main Active apt repos in: /etc/apt/sources.list.d/skype-stable.list 1: deb [arch=amd64] https://repo.skype.com/deb stable main Active apt repos in: /etc/apt/sources.list.d/sunderme-texstudio-focal.list 1: deb http://ppa.launchpad.net/sunderme/texstudio/ubuntu focal main Info: Processes: 238 Uptime: 5m Memory: 7.50 GiB used: 2.01 GiB (26.9%) Init: systemd v: 245 runlevel: 5 Compilers: gcc: 9.3.0 alt: 9 Shell: bash v: 5.0.17 running in: gnome-terminal inxi: 3.0.38

Mit dem Mint LTS-Kernel 5.4 funktionieren die Kameras übrigens auch nicht.

Beim Versuch, ein Kamerabild anzuzeigen, z. B. mit cheese zeigt mir dmesg[/] folgende Meldung:

Code:
[ 1201.921776] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 1202.010625] ipu3-imgu 0000:00:05.0: required queues are disabled

Ich vermute entweder einen Kernelbug (laut meiner Suchergebnisse) oder dass die ipu3-Kameras noch nicht eindeutig unterstützt werden, da sie von einer Userspace Applikation abhängen, zumindest sagt libcamera.org das.

Unter Windows 10 laufen die Kameras übrigens out of the box.

Kann jemand vielleicht etwas zu meinem Problem beitragen?

Danke im Voraus!

Ben
 
Was wirft denn lsusb und ggf. lspci aus? Aber meist sind die Kameras ja per USB verbunden und über die Geräte- und Vendor-ID sollte ja zumindest herauszufinden sien, ob die Kameras überhaupt unter Linux laufen.

Hin und wieder werden Webcams auch als Bildverarbeitungsgeräte erkannt. Dann ist scanimage -L noch eine Option.
 
Soweit ich herausgefunden habe, ist das Kameramodul über I2C angebunden, das ist ja das Problem.

Ich habe mittlerweile den Surface-Kernel von https://github.com/linux-surface/linux-surface ans Rennen bekommen, da entsprechende Kameras auch in den Surface-Geräten von Microsoft verbaut werden. Allerdings rennt da die Kamera auch nicht, da es wohl ein Problem mit den ACPI-Tabellen gibt, die bei den Surface-Geräten naturgemäß anders sind.

(Ich bin da überhaupt nicht in der Materie, verzeiht mir bitte Ungenauigkeiten.)

libcamera von libcamera.org konnte ich über ein PPA installieren, ohne es selbst kompilieren zu müssen. Allerdings werden die Kameras weiter nicht erkannt.

So wie es aussieht, scheint mein Anliegen ein sehr exotisches zu sein. Im Linux Mint-Forum direkt war auch leider wenig Hilfe zu bekommen. Und die Suchergebnisse wecken nicht unbedingt Vertrauen.
Beitrag automatisch zusammengeführt:

Soweit ich herausgefunden habe, ist das Kameramodul über I2C angebunden, das ist ja das Problem.

Ich habe mittlerweile den Surface-Kernel von https://github.com/linux-surface/linux-surface ans Rennen bekommen, da entsprechende Kameras auch in den Surface-Geräten von Microsoft verbaut werden. Allerdings rennt da die Kamera auch nicht, da es wohl ein Problem mit den ACPI-Tabellen gibt, die bei den Surface-Geräten naturgemäß anders sind.

(Ich bin da überhaupt nicht in der Materie, verzeiht mir bitte Ungenauigkeiten.)

libcamera von libcamera.org konnte ich über ein PPA installieren, ohne es selbst kompilieren zu müssen. Allerdings werden die Kameras weiter nicht erkannt.

So wie es aussieht, scheint mein Anliegen ein sehr exotisches zu sein. Im Linux Mint-Forum direkt war auch leider wenig Hilfe zu bekommen. Und die Suchergebnisse wecken nicht unbedingt Vertrauen.
 
So wie es aussieht, scheint mein Anliegen ein sehr exotisches zu sein. Im Linux Mint-Forum direkt war auch leider wenig Hilfe zu bekommen. Und die Suchergebnisse wecken nicht unbedingt Vertrauen.

Scheint so;-)

Da in Deinem Tablet eine Intel Skycam verbaut ist, sollte die theoretisch über uvc laufen. guvcview hast Du installiert und ggf. das noch probiert, auch wenn Du keine "illegale" ID enthalten hast?

Und witzigerweise hat es in einem Fall eines anderen Books funktioniert nach dem Abschalten von SecureBoot. Vielleicht postest Du doch einmal explizit die Hardware- und Vendor-ID der Kamera(s). Die findest Du ja auch über den Gerätemanager unter W10 heraus. Dann weiß man wenigstens, ob die Kamera in diese Rubrik fällt.

Sonst bestünde tatsächlich die Möglichkeit, dass der Treiber noch nicht klar kommt trotz der meist guten Linux-Unterstützung seitens Intel. Im Kernel 5.17 soll es für das entsprechende Modul ipu3 weitere Treiber für die Surfaces geben. Wobei das X1 von Dir ja schon eine Weile existiert. Vielleicht findet sich ja doch noch ein Kniff, bevor wir bei Bug oder fehlendem Treiber verenden.
 
Das spuckt der Geräte-Manager in Windows 10 dazu aus:

Intel AVStream Camera 2500 unter "Kameras"
Hardware-ID: VIDEO\VEN_8086&DEV_191E&SUBSYS_224117AA&REV_07&INT3470
Passende Geräte-ID: VIDEO\INT3470


Systemgeräte:
Camera Sensor OV2740
Hardware-ID: ACPI\VEN_INT&DEV_3474

Camera Sensor OV8858
Hardware-ID: ACPI\VEN_INT&DEV_3477

Interessanterweise gab es mal V4L-Treiber für die Kamerasensoren im Kernel 4.14-4.16. In neueren Kerneln allerdings nicht mehr.
Beitrag automatisch zusammengeführt:

Ergänzung dazu, da ich jetzt gerade wieder auf dem Gerät Linux gebootet habe:

Eine "Illegale-ID" erhalte ich nicht, lshw zeigt mir erst gar keine Kameras an. (Aktuell mit 5.16-surface Kernel)

guvcview findet eine Menge Geräte, aber kein Videogerät. Siehe angehängter Screenshot.
 

Anhänge

  • Bildschirmfoto vom 2022-03-02 15-08-38.png
    Bildschirmfoto vom 2022-03-02 15-08-38.png
    685,8 KB · Aufrufe: 12
Zuletzt bearbeitet:
Da sind gerade Menschen dran, es gibt also Hoffnung. Guckst Du hier.
Beitrag automatisch zusammengeführt:

Interessieren würde mich, ob bei Dir der Trackpoint funktioniert. Bei mir unter KDE Neon leider nicht, obwohl ein Fix dafür im Kernel sein soll.
 
Grundsätzlich interessant, aber ich fürchte, dass da so schnell keine brauchbare Lösung bei rauskommt. Und da meinen Suchen nach bisher keiner eine schnelle Lösung für mein Problem anbieten kann, akzeptiere ich wohl, dass ich die vollständige Hardwareunterstützung zurzeit nur unter Windows "genießen" :) kann.

Ärgerlich, aber ist halt so.

Aber vielen Dank für die vielen Anregungen und Vorschläge!
Beitrag automatisch zusammengeführt:

Ah, Nachtrag wegen des Trackpoints: Kann ich dir ehrlicherweise nicht sagen, da ich das Ding nie benutzt habe...
 
Den Ausgangs-Link zu sambas Post hatte ich gestern auch gefunden. Es gibt auch eine Firmware für die ipu3-Geräte. Besagte Firmware irci_irci_ecr-master_20161208_0213_20170112_1500.bin ist unter Debian unter /lib/firmware/intel vorhanden bei mir in Debian 11. Insofern wäre das beschriebene Umbenennen zu ipu3-fw.bin und laden noch einen Versuch wert, denn unter diese Rubrik fallen die Kameras ja letztendlich. Anschließend noch das neu Bauen des Moduls libcamera über git clone, aber das sind schon ziemlich fette Hämmer, um da etwas zum Laufen zu bekommen.

Gestern war ich nur wegen Frühdienst zu müde, um halbwegs gerade Gedanken zu formulieren und heute ist es nicht viel besser. Vielleicht hilft ja bereits die Firmware, sonst bleibt m.E. nur abwarten, bis die Treiber nativ im Kernel sind.
 
Das Modul inkl. der nötigen Firmware wird laut dmesg geladen.

Die Hämmer sind mir, ehrlich gesagt, zu fett. Ich arbeite gern mit Linux und würde mich auch nicht als unerfahren bezeichnen. Aber zu solchen "Frickeleien" fehlen mir mittlerweile sowohl Zeit als auch Lust. Bisher hatte ich auch mit keiner meiner Hardware-Konfigurationen Probleme mit aktuellen Linux-Distros. Die Hardwarenutzung war in der Regel absolut unkompliziert.

Na ja, Ausnahmen bestätigen die Regel.

Aber, wie schon gesagt, vielen Dank für die vielfältigen Anregungen!
 
Ich lese den Kommentar des Entwicklern in dem verlinkten Github-Thread ganz optimistisch. Er meint, dass wenn er die notwendigen Infos hat, es wohl ausreichen würde, eine Zeile Code zu ändern, damit die für die für Surface-Devices mittlerweile funktionierende Implementation auch auf dem X1 Tablet läuft. Ich hoffe, es bleibt bei der Einschätzung. Einige Arbeit der Menschen, die an der Surface-Camera-Entwicklung arbeiten ist wohl schon Upstream in den Kernel gegangen, im kommenden Kernel steht auch einiges an.
 
Falls Du noch Bock hast: Es gibt mittlerweile auf GitHub ein Debian-Paket für´s Surface. Vielleicht läuft es bereits damit. Ansonsten bleibt nur weiter abwarten.

Ist natürlich immer noch experimentell...
 
Hey, Danke für die Info!
Ich hab mittlerweile Linux wieder vom X1 runtergeschmissen, um mehr Platz auf der SSD zu haben. Auf meinen anderen Geräten läuft es ja problemlos.

Sollte ich das X1 zum EOL von Win 10 im Jahr 2025 noch benutzen, schaue ich mir die dann aktuellen Linux-Distributionen noch einmal an. :)
Beitrag automatisch zusammengeführt:

Hey, Danke für die Info!
Ich hab mittlerweile Linux wieder vom X1 runtergeschmissen, um mehr Platz auf der SSD zu haben. Auf meinen anderen Geräten läuft es ja problemlos.

Sollte ich das X1 zum EOL von Win 10 im Jahr 2025 noch benutzen, schaue ich mir die dann aktuellen Linux-Distributionen noch einmal an. :)
 
Ich mal mal den Tread wieder auf: ThinkPad Tablet X1 Gen. 2, Debian 11, Kernel 5.10.0-22
Das problem was ich sehe, das unter Linux die Cameras gar nich "enumeriert" werden.
Dementsprechend werden sie von der Libcamera erkannt.

Code:
explit@TP-X1-Tablet-Gen2:~$ LIBCAMERA_LOG_LEVELS=*:DEBUG cam -l
[0:01:38.190728830] [2381] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa_ipu3.so is signed
[0:01:38.190998854] [2381] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa_ipu3.so'
[0:01:38.191432250] [2381] DEBUG IPAModule ipa_module.cpp:334 ipa_vimc.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa_vimc.so is signed
[0:01:38.191472592] [2381] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa_vimc.so'
[0:01:38.191582717] [2381]  INFO Camera camera_manager.cpp:298 libcamera v0.0.5+18-e8fccaea
[0:01:38.191723522] [2382] DEBUG Camera camera_manager.cpp:108 Starting camera manager
[0:01:38.191791696] [2382] ERROR DeviceEnumerator device_enumerator_sysfs.cpp:51 No valid sysfs media device directory
[0:01:38.191853684] [2381] ERROR Camera camera_manager.cpp:302 Failed to start camera manager: No such device
Failed to start camera manager: No such device
explit@TP-X1-Tablet-Gen2:~$

Im dmesg finde ich auch nichts über irgendwelche devices, die etwas mit ipu, i2c etc. zu tun haben....
Beitrag automatisch zusammengeführt:

Kurzes Update: Eigenes Kernel kompiliert, In der .config folgendes geändert:
Bash:
CONFIG_VIDEO_IPU3_CIO2=m
CONFIG_VIDEO_IPU3_IMGU=m

jetzt werden die ipu3 Devices zumindest "enumeriert"

Bash:
explit@TP-X1-Tablet-Gen2:~/libcamera$ sudo dmesg | grep ipu
[   29.904507] ipu3_imgu: module is from the staging directory, the quality is unknown, you have been warned.
[   29.946831] ipu3-imgu 0000:00:05.0: enabling device (0000 -> 0002)
[   29.949349] ipu3-imgu 0000:00:05.0: device 0x1919 (rev: 0x1)
[   29.951385] ipu3-imgu 0000:00:05.0: physical base address 0x00000000e1000000, 4194304 bytes
[   30.109029] ipu3-imgu 0000:00:05.0: firmware: direct-loading firmware intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin
[   30.111106] ipu3-imgu 0000:00:05.0: loaded firmware version irci_irci_ecr-master_20161208_0213_20170112_1500, 17 binaries, 1212984 bytes
[   30.130353] ipu3-cio2 0000:00:14.3: enabling device (0000 -> 0002)
[   30.143392] ipu3-cio2 0000:00:14.3: device 0x9d32 (rev: 0x1)
[  198.613010] ipu3-imgu 0000:00:05.0: required queues are disabled
[  198.613066] ipu3-imgu 0000:00:05.0: required queues are disabled
[  198.613170] ipu3-imgu 0000:00:05.0: required queues are disabled
[  236.610431] ipu3-imgu 0000:00:05.0: required queues are disabled
[  236.610456] ipu3-imgu 0000:00:05.0: required queues are disabled
[  236.610493] ipu3-imgu 0000:00:05.0: required queues are disabled
[  242.143316] ipu3-imgu 0000:00:05.0: required queues are disabled
[  242.143346] ipu3-imgu 0000:00:05.0: required queues are disabled
[  242.143391] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 1971.929469] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 1971.929528] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 1971.929586] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2005.538844] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2005.538881] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2005.538923] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2343.376262] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2343.376320] ipu3-imgu 0000:00:05.0: required queues are disabled
[ 2343.376393] ipu3-imgu 0000:00:05.0: required queues are disabled

guvcview sieht jede menge cameras, kann sie aber alle nicht nutzen.

cam -l find keine Kameras, mit denen libcamera etwas anfangen könnte.
Bash:
explit@TP-X1-Tablet-Gen2:~/libcamera$ cam -l
[0:47:53.422361443] [7804]  INFO Camera camera_manager.cpp:298 libcamera v0.0.5+18-e8fccaea
Available cameras:
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben