Well BT should be stable if the newest linux-firmware is also installed. There is an actual 6.12 (no rc) package, now. I just uploaded it. What does sudo dmesg|grep Bluetooth
say? Bluetooth is rock solid here.
I have issues with it not booting consistantly too.
Have you tried @juergh’s suggested solution here? Status of Ubuntu support for Lenovo ThinkPad X13s - #79 by juergh
I don’t really know how to test the camera with mpv, but I can confirm that Cheese doesn’t work for me. The camera in Gnome Camera, firefix, and qcam all work on 6.12 though.
Is your user a member of the video and kvm groups?
My bluetooth is having issues with your kernel too.
Bluetooth: hci0: QCA Failed to request file: qca/hpnv21.b8c (-2)
Bluetooth: hci0: QCA Failed to download NVM (-2)
The camera in Cheese is working for me with Ubuntu’s 6.11.0-9 kernel, though.
If its not the newest linux-firmware, I’m afraid you need to copy the files over yourself, still. There is a newer version of the patch that does a fallback to the default files. It’s not in the build yet.
After my last message (but before seeing your reply @glathe ) I did get newer BT (firmware?) via a regular update && upgrade. After that my headphones did connect again via BT but the sound dropped now and then. I will the dmesg tonight (local time) after work. Thanks for the work!
Nopes, missed that tip (race condition). Will try.
Camera only works on qcam. I have added the firefox fix and added myself to the kvm and video groups. Will try again with firefox though.
Updated Ubuntu kernel 6.11.0-12-generic and linux-fimware for Oracular in the Ubuntu Concept PPA. This fixes the boot issue for me and also loads the new Bluetooth NVM.
As mentioned by others, any user who wants to use the camera needs to be added to the kvm
group.
To make the camera work with cheese
:
$ sudo apt install pipewire-libcamera
$ systemctl --user restart pipewire
$ wpctl status
...
Video
├─ Devices:
│ 55. Qualcomm Camera Subsystem [v4l2]
...
│ 86. Qualcomm Camera Subsystem [v4l2]
│ 87. ov5675 [libcamera]
...
Verify that wpctl
shows a libcamera
video device.
Then start cheese
, go to Preferences
and select the Built-in Front Camera
Webcam Device. Restart cheese
and voilà (hopefully)
I am considering getting a used X13s to use with Ubuntu for some office work. Does Ubuntu’s current support for the X13s out of the box already allow for a battery life of around 6-8 hours or more, a stable wifi connection, and software like Libre Office Writer, Thunderbird, Okular, and Nextcloud Desktop?
Thanks for your insights!
Using your latest kernel now (6.12.0-061200-x1e…). Unfortunately, webcam recognized, but no video output anywhere and no Bluetooth connection can be established. I have tried lots of things back and forth, so I don’t know if this is a fair test of the kernel. Anyhow, here is the output from “sudo dmesg | grep Bluetooth”:
[ 4.982054] Bluetooth: Core ver 2.22
[ 4.982320] Bluetooth: HCI device and connection manager initialized
[ 4.982326] Bluetooth: HCI socket layer initialized
[ 4.982330] Bluetooth: L2CAP socket layer initialized
[ 4.982336] Bluetooth: SCO socket layer initialized
[ 5.037911] Bluetooth: HCI UART driver ver 2.3
[ 5.037921] Bluetooth: HCI UART protocol H4 registered
[ 5.037923] Bluetooth: HCI UART protocol BCSP registered
[ 5.042444] Bluetooth: HCI UART protocol LL registered
[ 5.042447] Bluetooth: HCI UART protocol ATH3K registered
[ 5.045855] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 5.048539] Bluetooth: HCI UART protocol Intel registered
[ 5.057790] Bluetooth: HCI UART protocol Broadcom registered
[ 5.062040] Bluetooth: HCI UART protocol QCA registered
[ 5.062048] Bluetooth: HCI UART protocol AG6XX registered
[ 5.064284] Bluetooth: HCI UART protocol Marvell registered
[ 5.079694] Bluetooth: hci0: setting up wcn6855
[ 5.135112] Bluetooth: hci0: QCA Product ID :0x00000013
[ 5.135119] Bluetooth: hci0: QCA SOC Version :0x400c0210
[ 5.135120] Bluetooth: hci0: QCA ROM Version :0x00000201
[ 5.135121] Bluetooth: hci0: QCA Patch Version:0x000038e6
[ 5.145534] Bluetooth: hci0: QCA controller version 0x02100201
[ 5.145542] Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
[ 5.627414] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.627418] Bluetooth: BNEP filters: protocol multicast
[ 5.627424] Bluetooth: BNEP socket layer initialized
[ 5.790658] Bluetooth: hci0: QCA Downloading qca/hpnv21.b8c
[ 5.955380] Bluetooth: hci0: QCA setup on UART is completed
[ 5.999898] Bluetooth: hci0: AOSP extensions version v0.98
[ 5.999909] Bluetooth: hci0: AOSP quality report is supported
[ 6.010774] Bluetooth: MGMT ver 1.23
[ 6.024595] Bluetooth: RFCOMM TTY layer initialized
[ 6.024610] Bluetooth: RFCOMM socket layer initialized
[ 6.024617] Bluetooth: RFCOMM ver 1.11
[ 10.740511] Bluetooth: hci0: setting up wcn6855
[ 10.799795] Bluetooth: hci0: QCA Product ID :0x00000013
[ 10.799810] Bluetooth: hci0: QCA SOC Version :0x400c0210
[ 10.799815] Bluetooth: hci0: QCA ROM Version :0x00000201
[ 10.799819] Bluetooth: hci0: QCA Patch Version:0x000038e6
[ 10.810968] Bluetooth: hci0: QCA controller version 0x02100201
[ 10.810984] Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
[ 11.459492] Bluetooth: hci0: QCA Downloading qca/hpnv21.b8c
[ 11.652818] Bluetooth: hci0: QCA setup on UART is completed
[ 11.728174] Bluetooth: hci0: AOSP extensions version v0.98
[ 11.728196] Bluetooth: hci0: AOSP quality report is supported
[ 11.791015] Bluetooth: hci0: Invalid link address type 1 for 00:1b:66:c0:c2:b4
Nice! The 6.11.0-12-generic fixed Bluetooth for me. Also I do get video using qcam. However, neither cheese nor mpv works. I get a “Failed to recognize file format.” on both. I guess I miss some package?
Btw, tried the 64k version of the kernel too (even I have no idea what it is hahaha). Didn’t boot at all.
well the last message looks a bit strange: Invalid link address type 1. That’s one I don’t have:
jglathe@x13s-jg:~$ journalctl -b -g Bluetooth
Nov 23 08:39:47 kernel: Bluetooth: Core ver 2.22
Nov 23 08:39:47 kernel: Bluetooth: HCI device and connection manager initialized
Nov 23 08:39:47 kernel: Bluetooth: HCI socket layer initialized
Nov 23 08:39:47 kernel: Bluetooth: L2CAP socket layer initialized
Nov 23 08:39:47 kernel: Bluetooth: SCO socket layer initialized
Nov 23 08:39:47 kernel: Bluetooth: HCI UART driver ver 2.3
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol H4 registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol BCSP registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol LL registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol ATH3K registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol Three-wire (H5) registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol Intel registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol Broadcom registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol QCA registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol AG6XX registered
Nov 23 08:39:47 kernel: Bluetooth: HCI UART protocol Marvell registered
Nov 23 08:39:47 kernel: Bluetooth: hci0: setting up wcn6855
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA Product ID :0x00000013
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA SOC Version :0x400c0210
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA ROM Version :0x00000201
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA Patch Version:0x000038e6
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA controller version 0x02100201
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA Downloading qca/hpnv21.b8c
Nov 23 08:39:47 kernel: Bluetooth: hci0: QCA setup on UART is completed
Nov 23 08:39:47 kernel: Bluetooth: hci0: AOSP extensions version v0.98
Nov 23 08:39:47 kernel: Bluetooth: hci0: AOSP quality report is supported
Nov 23 08:39:47 systemd[1]: Starting bluetooth.service - Bluetooth service...
Nov 23 08:39:47 bluetoothd[1890]: Bluetooth daemon 5.77
Nov 23 08:39:47 kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 23 08:39:47 kernel: Bluetooth: BNEP filters: protocol multicast
Nov 23 08:39:47 kernel: Bluetooth: BNEP socket layer initialized
Nov 23 08:39:47 kernel: Bluetooth: MGMT ver 1.23
Nov 23 08:39:47 bluetoothd[1890]: Bluetooth management interface 1.23 initialized
Nov 23 08:39:47 kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 23 08:39:47 kernel: Bluetooth: RFCOMM socket layer initialized
Nov 23 08:39:47 kernel: Bluetooth: RFCOMM ver 1.11
Nov 23 08:39:47 systemd[1]: Started bluetooth.service - Bluetooth service.
Nov 23 08:39:47 systemd[1]: Reached target bluetooth.target - Bluetooth Support.
Nov 23 08:39:47 systemd[1]: Starting hwe-lenovo-x13s-bluetooth-addr.service - Set Bluetooth Address...
Nov 23 08:39:51 bootmac[2308]: Configuring MAC address for Bluetooth
Nov 23 08:39:51 bootmac[2311]: setting Bluetooth MAC to F4:A8:0D:f3:d9:69
Nov 23 08:39:51 bootmac[2322]: saved Bluetooth rfkill state
Nov 23 08:39:51 kernel: Bluetooth: hci0: setting up wcn6855
Nov 23 08:39:51 bootmac[2331]: restoring Bluetooth rfkill state to unblocked
Nov 23 08:39:51 bootmac[2336]: Bluetooth MAC address configured successfully
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA Product ID :0x00000013
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA SOC Version :0x400c0210
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA ROM Version :0x00000201
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA Patch Version:0x000038e6
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA controller version 0x02100201
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA Downloading qca/hpnv21.b8c
Nov 23 08:39:51 kernel: Bluetooth: hci0: QCA setup on UART is completed
Nov 23 08:39:52 kernel: Bluetooth: hci0: AOSP extensions version v0.98
Nov 23 08:39:52 kernel: Bluetooth: hci0: AOSP quality report is supported
Nov 23 08:39:52 systemd[1]: Started hwe-lenovo-x13s-bluetooth-addr.service - Set Bluetooth Address.
Nov 23 08:40:01 systemd[2373]: Reached target bluetooth.target - Bluetooth.
Nov 23 08:40:01 systemd[3052]: Reached target bluetooth.target - Bluetooth.
Nov 23 08:40:11 systemd[2373]: Stopped target bluetooth.target - Bluetooth.
Ok what I see now in my log is that I have two jobs for setting up the Bluetooth Address (bootmac and hwe-lenovo-x13s-bluetooth-addr.service). The second one failed, btw.
jglathe@x13s-jg:~$ systemctl status hwe-lenovo-x13s-bluetooth-addr.service
× hwe-lenovo-x13s-bluetooth-addr.service - Set Bluetooth Address
Loaded: loaded (/usr/lib/systemd/system/hwe-lenovo-x13s-bluetooth-addr.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Sat 2024-11-23 08:39:52 CET; 10h ago
Duration: 9ms
Invocation: 06f4524f1c814a9fa2b26b2034fe02a9
Main PID: 2608 (code=exited, status=1/FAILURE)
Mem peak: 1.9M
CPU: 14ms
Nov 23 08:39:47 x13s-jg systemd[1]: Starting hwe-lenovo-x13s-bluetooth-addr.service - Set Bluetooth Address...
Nov 23 08:39:52 x13s-jg systemd[1]: Started hwe-lenovo-x13s-bluetooth-addr.service - Set Bluetooth Address.
Nov 23 08:39:52 x13s-jg set-bt-public-addr[2608]: Set public addr of hci0 to f9:a5:3b:f0:fd:8c
Nov 23 08:39:52 x13s-jg set-bt-public-addr[2617]: Set Public Address for hci0 failed with status 0x0b (Rejected)
Nov 23 08:39:52 x13s-jg set-bt-public-addr[2617]:
Nov 23 08:39:52 x13s-jg systemd[1]: hwe-lenovo-x13s-bluetooth-addr.service: Main process exited, code=exited, status=1/FAILURE
Nov 23 08:39:52 x13s-jg systemd[1]: hwe-lenovo-x13s-bluetooth-addr.service: Failed with result 'exit-code'.
jglathe@x13s-jg:~$ hciconfig
hci0: Type: Primary Bus: UART
BD Address: F4:A8:0D:F3:D9:69 ACL MTU: 1024:7 SCO MTU: 240:4
UP RUNNING
RX bytes:8011581 acl:53102 sco:0 events:144260 errors:0
TX bytes:424034 acl:56 sco:0 commands:1475 errors:0
jglathe@x13s-jg:~$
Anyway, maybe it is an idea to check if a MAC address has been set for the BT host controller, can be checked with hciconfig
.
Kernel 6.12-x1e is working fine here on all devices so far, and @libredood reports that even the X13s camera works.
YMMV, but I’m happily using my X13s since Ubuntu 23.04. Don’t need the camera (haven’t tried it yet, but it’s reportedly working now). Sound works, although it is not very loud for safety reasons. WLAN works well. BT works well without hacks as of recently (“right” firmware needs to be loaded, which was in Windows only, but now arrived in linux-firmware with a patch that works for wcn6855). The missing MAC adresses are worked around by the Ubuntu setup. There are several other ways of solving this, should work ootb now.
Suspend/resume works well, battery life has seemingly improved a bit. But actually, battery life was not a concern at all. It was always enough for a day+, never had an issue (unless you compile big projects non-stop).
GPU and performance is amazing overall. The x1e laptops are faster, but the X13s is more than enough as a daily driver.
Issue: external screen and docks are a minefield. I have a type-c capable 2k display with integrated dock, with it its more or less a breeze. But tbh, I use the laptop without external display most of the time. With Thunderbird, Firefox, LibreOffice calc, sublime text and merge, meld, my build toolchain. I also have 5G in it, and it can be made to work on Linux, too.
Oh and I actually have a pop-OS 24.04 installation on it. Alpha, but nice, too.
Thanks for the effort. On the 6.11.0-12 right now. Still have the “hci0: Invalid link address type 1 for 00:1b:66:c0:c2:b4”. However “systemctl status hwe-lenovo-x13s-bluetooth-addr.service” seems to get yield a positive result (as far as I can tell) and “hciconfig” shows a set MAC address. Also, Bluetooth works. I have no idea why this failed when I tried your 6.12 kernel. Again, thanks for the effort.
Nice to hear. For my use case (that includes remote supervision), I need the camera and Bluetooth working for being my travel laptop. So no there just yet. Slightly better battery life would be nice, but I could probably get by. I have not tried to connect to an external video projector yet that I sometime need in my line of work. Otherwise, it works fine for what I do on a laptop: writing/coding in nvim, remote server work, and webmail (and consuming YouTube videos). Switching between Dwm and Gnome.
EDIT: Forgot to mention the awesome silence and perfect size for any kind of travel (around the house, around a large campus, on trains etc). Though I have to mention that the keyboard has less travel than I would want (my older ThinkPads have better keyboard).
Are you saying that even on ARM (some) Lenovo laptops have the suspend problem?
I have an Intel Yoga that I ended up getting Chrome OS Flex installed on because it would not supsend under Linux (part of the reason why I got it in the first place).
Thank you @jokkeholmberg for your information. You are using the 6.11.0-12-generic kernel. Some days ago I did a clean install of plucky-desktop-arm64.iso with the 6.11.0-8-generic kernel on the X13s. Now, I would also like to update the kernel. I couldn’t find a package in the package manager related to the 6.11.0-12-generic kernel and apt dist-upgrade also did not update the kernel. Could you please help me to update the kernel? This would be great! Thank you very much in advance.
You are welcome. I followed @juergh and his link to this page Packages in “Ubuntu Concept - X13s” : Ubuntu Concept - X13s : “Ubuntu Concept” team
Then I found packages “linux - 6.11.0-12.12~x13s2” and “linux-firmware - 20240913.gita34e7a5f-0ubuntu2.1+x13s1” published by @juergh 2024-11-22. I downloaded all “*arm64.deb” and “*all.deb” files into an otherwise empty folder and installed them with “sudo dpkg -i *.deb” using a tip from @glathe
It seems there is even a newer version now (“6.11.0-12.13” by someone else, but I have not tried that one). I may try the 6.12 by @glathe again soon, depending on spare time.
Good luck!
6.11.0-12.13
is the next official kernel from the Ubuntu archive but it doesn’t have the X13s patches yet. You need to pin 6.11.0-12.12~x13s2
until the patches are applied.