I bought a Lenovo ThinkPad X1 Yoga Gen 7 with:
32 GiB RAM
CPU: 12th Gen Intel Core i7-1260P x 16
Mesa Intel Graphics (ADL GT2)
SSD: 2 TB
FHD camera system with 4 microphones
3840x2400 Display which implies a MiPi camera as I learned*
and installed Ubuntu 23.04.
* I wasn't able to detect the camera hardware with Linux or Windows. I found "MiPi" by research.
As far as I tested yet everything works well except the build in camera. I could not test the microphones yet.
It seems to be a well-known problem similar to this question
I tried to follow the described solution. Unfortunately the build of the icamerasrc.git fails because the prior installed libcamhal is not found. I am not very experiences with building and installing manually on my system, so I probably made beginner's mistakes, and any help is appreciated.
What I tried in detail:
First I installed Ubuntu 22.04. After it failed I tried Ubuntu 20.04.06 because some ThinkPads of this kind was sold with Ubuntu 20.04, but it failed again. Now I have Ubuntu 23.04, and I am still trying to get it work.
I realized that there are some packages needed that are not installed by default like dkms and git. Also I assume working with sudo should work, but since I don't know what causes the problem, I tried installing it as root. Then I got some problems that where caused by a path which contained spaces. I came from macOS and got surprised. Anyway I eliminated the unnecessary spaces.
What I actually did at last was this:
sudo su
mkdir -p /media/data/shared/Installer/Linux/avp/Lenovo_ThinkPad_X1_Yoga_Gen_7_internal_Cam/
cd /media/data/shared/Installer/Linux/avp/Lenovo_ThinkPad_X1_Yoga_Gen_7_internal_Cam/
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git build-essential dkms cmake libdrm-dev v4l-utils libexpat-dev automake libtool libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
Hinweis: »libexpat1-dev« wird an Stelle von »libexpat-dev« gewählt.
git clone https://github.com/intel/ipu6-drivers.git
cd ipu6-drivers
git clone https://github.com/intel/ivsc-driver.git
cp -r ivsc-driver/backport-include ivsc-driver/drivers ivsc-driver/include .
rm -rf ivsc-driver
cd ..
git clone https://github.com/intel/ipu6-camera-bins.git
git clone https://github.com/intel/ipu6-camera-hal.git
git clone https://github.com/intel/icamerasrc.git
cd icamerasrc/
git checkout icamerasrc_slim_api
cd ..
cp ipu6-camera-hal/build.sh .
cd ipu6-drivers
sudo dkms add .
sudo dkms autoinstall ipu6-drivers/0.0.0
cd ..
sudo cp -r ipu6-camera-bins/include/* /usr/include/
sudo cp -r ipu6-camera-bins/lib/* /usr/lib/
sudo ./build.sh
Libraries have been installed in:
/media/data/shared/Installer/Linux/avp/Lenovo_ThinkPad_X1_Yoga_Gen_7_internal_Cam/out/install/lib/gstreamer-1.0
############### build_icamerasrc OK #############
sudo cp -r ./out/install/include/* /usr/include
sudo cp -r ./out/install/lib/* /usr/lib
sudo cp -r ./out/install/share/* /usr/share
cd icamerasrc
export CHROME_SLIM_CAMHAL=ON
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
sudo ./autogen.sh
Building with libcamhal
checking for libcamhal... no
configure: error: Cannot find libcamhal pkgconfig
configure failed
Though I just installed ipu6-camera-hal it is not recognized as libcamhal. Is this something different? Did I forget an important step? ./out contains among other things:
out/install/lib/libhal_adaptor.so
out/install/lib/libgsticamerainterface-1.0.so
out/install/lib/ipu_mtl/libcamhal.so
out/install/lib/gstreamer-1.0/libgsticamerasrc.so
out/install/lib/ipu_tgl/libcamhal.so
out/install/lib/ipu_adl/libcamhal.so
Aren't these the libs which are just installed by copying them to /usr/lib
?
As requested here are some outputs:
$ sudo dmesg|grep ipu6
[ 3.935647] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[ 3.935884] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 3.935906] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 3.935908] intel-ipu6 0000:00:05.0: mapped as: 0x000000000721f56d
[ 3.935954] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 3.935956] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 3.935957] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 3.952548] intel-ipu6 0000:00:05.0: IPC reset done
[ 3.952552] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 3.953693] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 3.962943] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 3.962966] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 3.962968] intel-ipu6 0000:00:05.0: mapped as: 0x00000000d3a0191d
[ 3.963175] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 3.963177] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 3.963179] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 3.968141] intel-ipu6 0000:00:05.0: IPC reset done
[ 3.968144] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 3.968273] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 3.971715] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 3.971737] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 3.971739] intel-ipu6 0000:00:05.0: mapped as: 0x000000000721f56d
[ 3.971777] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 3.971779] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 3.971780] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 3.974112] intel-ipu6 0000:00:05.0: IPC reset done
[ 3.974115] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 3.974204] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 3.982624] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 3.982640] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 3.982642] intel-ipu6 0000:00:05.0: mapped as: 0x00000000d3a0191d
[ 3.982680] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 3.982682] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 3.982683] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 3.987948] intel-ipu6 0000:00:05.0: IPC reset done
[ 3.987951] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 3.988080] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 3.991085] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 3.991101] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 3.991103] intel-ipu6 0000:00:05.0: mapped as: 0x000000005eca06cc
[ 3.991145] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 3.991146] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 3.991148] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 3.993267] intel-ipu6 0000:00:05.0: IPC reset done
[ 3.993270] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 3.993351] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.000086] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.000108] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.000110] intel-ipu6 0000:00:05.0: mapped as: 0x000000005cc98771
[ 4.000150] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.000152] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.000153] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.005098] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.005100] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.005171] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.016569] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.016584] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.016586] intel-ipu6 0000:00:05.0: mapped as: 0x00000000d3a0191d
[ 4.016618] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.016619] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.016621] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.020530] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.020532] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.020631] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.036195] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.036209] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.036210] intel-ipu6 0000:00:05.0: mapped as: 0x000000005eca06cc
[ 4.036235] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.036236] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.036237] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.040313] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.040316] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.040424] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.052389] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.052424] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.052426] intel-ipu6 0000:00:05.0: mapped as: 0x000000000721f56d
[ 4.052472] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.052475] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.052477] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.054276] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.054279] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.054385] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.079801] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.079830] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.079832] intel-ipu6 0000:00:05.0: mapped as: 0x00000000d3a0191d
[ 4.079898] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.079899] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.079901] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.083581] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.083584] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.083661] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.147389] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.147410] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.147411] intel-ipu6 0000:00:05.0: mapped as: 0x00000000d3a0191d
[ 4.147472] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.147475] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.147476] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.149845] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.149848] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.150028] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.191684] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.191708] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.191710] intel-ipu6 0000:00:05.0: mapped as: 0x0000000002ee22b0
[ 4.191756] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.191758] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.191759] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.193603] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.193605] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.193716] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.262608] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.262621] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.262622] intel-ipu6 0000:00:05.0: mapped as: 0x0000000002ee22b0
[ 4.262722] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.262725] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.262727] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.264803] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.264805] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.264943] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.299846] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.299857] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.299859] intel-ipu6 0000:00:05.0: mapped as: 0x00000000c6ca14e3
[ 4.299888] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.299891] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.299892] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.301706] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.301707] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.301837] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.319503] intel-ipu6 0000:00:05.0: Device 0x465d (rev: 0x2)
[ 4.319523] intel-ipu6 0000:00:05.0: physical base address 0x603c000000
[ 4.319525] intel-ipu6 0000:00:05.0: mapped as: 0x00000000cf4333ff
[ 4.319564] intel-ipu6 0000:00:05.0: IPU in secure mode
[ 4.319565] intel-ipu6 0000:00:05.0: IPU secure touch = 0x0
[ 4.319567] intel-ipu6 0000:00:05.0: IPU camera mask = 0xff
[ 4.321381] intel-ipu6 0000:00:05.0: IPC reset done
[ 4.321382] intel-ipu6 0000:00:05.0: cpd file name: intel/ipu6ep_fw.bin
[ 4.321488] intel-ipu6 0000:00:05.0: FW version: 20230102
[ 4.323547] intel-ipu6 0000:00:05.0: Found supported sensor INT3474:01
[ 4.323651] intel-ipu6 0000:00:05.0: Connected 1 cameras
[ 4.324616] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[ 4.333343] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[ 4.401681] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[ 4.401698] intel-ipu6 0000:00:05.0: IPU6-v3 driver version 1.0
[ 4.403190] intel-ipu6-isys intel-ipu6-isys0: bind ov2740 5-0036 nlanes is 2 port is 1
[ 4.411593] intel-ipu6-isys intel-ipu6-isys0: All sensor registration completed.
[ 4.411836] intel-ipu6-psys intel-ipu6-psys0: pkg_dir entry count:8
[ 4.411955] intel-ipu6-psys intel-ipu6-psys0: psys probe minor: 0
[ 7.312145] intel-ipu6-isys intel-ipu6-isys0: isys port open ready failed -16
[ 7.312152] intel-ipu6-isys intel-ipu6-isys0: Device close failure: -16
[ 8.460580] intel-ipu6-isys intel-ipu6-isys0: isys port open ready failed -16
[ 8.460618] intel-ipu6-isys intel-ipu6-isys0: Device close failure: -16
[213694.863767] intel-ipu6 0000:00:05.0: IPU in secure mode
[257080.442282] intel-ipu6 0000:00:05.0: IPU in secure mode
$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4621] (rev 02)
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P Integrated Graphics Controller [8086:46a6] (rev 0c)
00:04.0 Signal processing controller [1180]: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant [8086:461d] (rev 02)
00:05.0 Multimedia controller [0480]: Intel Corporation Device [8086:465d] (rev 02)
00:06.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 [8086:464d] (rev 02)
00:07.0 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root P[edit] ort #0 [8086:466e] (rev 02)
00:07.2 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #2 [8086:462f] (rev 02)
00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 02)
00:0a.0 Signal processing controller [1180]: Intel Corporation Platform Monitoring Technology [8086:467d] (rev 01)
00:0d.0 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 USB Controller [8086:461e] (rev 02)
00:0d.2 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #0 [8086:463e] (rev 02)
00:0d.3 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #1 [8086:466d] (rev 02)
00:12.0 Serial controller [0700]: Intel Corporation Alder Lake-P Integrated Sensor Hub [8086:51fc] (rev 01)
00:14.0 USB controller [0c03]: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller [8086:51ed] (rev 01)
00:14.2 RAM memory [0500]: Intel Corporation Alder Lake PCH Shared SRAM [8086:51ef] (rev 01)
00:14.3 Network controller [0280]: Intel Corporation Alder Lake-P PCH CNVi WiFi [8086:51f0] (rev 01)
00:15.0 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 [8086:51e8] (rev 01)
00:15.1 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 [8086:51e9] (rev 01)
00:16.0 Communication controller [0780]: Intel Corporation Alder Lake PCH HECI Controller [8086:51e0] (rev 01)
00:19.0 Serial bus controller [0c80]: Intel Corporation Alder Lake-P Serial IO I2C Controller #0 [8086:51c5] (rev 01)
00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:51b8] (rev 01)
00:1f.0 ISA bridge [0601]: Intel Corporation Alder Lake PCH eSPI Controller [8086:5182] (rev 01)
00:1f.3 Audio device [0403]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01)
00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake PCH-P SMBus Host Controller [8086:51a3] (rev 01)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-P PCH SPI Controller [8086:51a4] (rev 01)
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO [144d:a80a]
08:00.0 Wireless controller [0d40]: Intel Corporation XMM7560 LTE Advanced Pro Modem [8086:7560] (rev 01)
sudo dmesg | grep ipu6
output? – R A Oct 04 '23 at 18:37lspci -nn
– R A Oct 04 '23 at 18:45libcamhal-dev
) – R A Oct 05 '23 at 12:55sudo apt install hw-probe
,sudo -E hw-probe -all -upload
(Post output link) – R A Oct 07 '23 at 06:47