lenovo_x1_carbon_7th_generation_vs._ubuntu_19.10

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
lenovo_x1_carbon_7th_generation_vs._ubuntu_19.10 [07.11.2019 01:57] – [internal LTE modem does not work] Pascal Suterlenovo_x1_carbon_7th_generation_vs._ubuntu_19.10 [07.11.2019 22:08] – [trackpad stops working] Pascal Suter
Line 11: Line 11:
 supposedly there should be a firmware upgrade for the synaptics touch pad which could fix this. the problem is, the synaptics pad firmware can only be updated under windows and I don't have a windows partitoin anymore!  supposedly there should be a firmware upgrade for the synaptics touch pad which could fix this. the problem is, the synaptics pad firmware can only be updated under windows and I don't have a windows partitoin anymore! 
  
-another suggestion is, that it might have something to do with the NFC module.+another suggestion is, that it might have something to do with the NFC module but that did not change anything when i tried it
  
  
 ===== internal LTE modem does not work ===== ===== internal LTE modem does not work =====
-it is started in PCIe mode but there are no linux drivers for the module in pcie mode and there will never be pcie drivers. The module has however also a USB mode and in USB mode it behaves like a normal USB dongle and can be used in Linux as well!+the 7th gen comes with a L850-GL modem. It is started in PCIe mode but there are no linux drivers for the module in pcie mode and there will never be pcie drivers. The module has however also a USB mode and in USB mode it behaves like a normal USB dongle and can be used in Linux as well!
  
 there is a [[https://github.com/abrasive/xmm7360|script]] available.. called [[https://github.com/abrasive/xmm7360|xmm2usb]] which can be run to switch the modem into usb mode. After switching the modem into usb mode for the first time, the usb mode must be changed from ''0'' to ''7''. Once this is done, ubuntu will detect a broadband modem and off you go.  there is a [[https://github.com/abrasive/xmm7360|script]] available.. called [[https://github.com/abrasive/xmm7360|xmm2usb]] which can be run to switch the modem into usb mode. After switching the modem into usb mode for the first time, the usb mode must be changed from ''0'' to ''7''. Once this is done, ubuntu will detect a broadband modem and off you go. 
Line 21: Line 21:
 The **problem** with this solution is, that you need to run this script every time the PCI card is re-initialized which is at least aver every reboot if not after every wakeup (haven't tried this yet). This alone would be no problem, but the script needs a kernel module called [[https://github.com/mkottman/acpi_call|acpi_call]] which is poorly maintained and won't compile on newer kernels (4.5.5 and newer iirc) without modification of the source code. The modification is very simple however, simply make sure that at the begining of the file ''acpi_call.c'' the two ''include'' statements for ''acpi.h'' and ''uaccess.h'' contain the path ''linux/acpi.h'' and ''linux/uaccess.h'' and not ''acpi/acpi.h'' etc.. once this is changed the module will compile but ''make install'' won't install it and it will not be loadable using ''insmod'' because of secure boot. So you need to disable secure boot and then you can load the module via ''sudo insmod acpi_call.ko''. once this is done, the xmm2usb script can be run. however, the script will try to load the module via modprobe which won't work because ''make install'' failed.. I simply commented out the ''modprobe'' line in the script and it worked.  The **problem** with this solution is, that you need to run this script every time the PCI card is re-initialized which is at least aver every reboot if not after every wakeup (haven't tried this yet). This alone would be no problem, but the script needs a kernel module called [[https://github.com/mkottman/acpi_call|acpi_call]] which is poorly maintained and won't compile on newer kernels (4.5.5 and newer iirc) without modification of the source code. The modification is very simple however, simply make sure that at the begining of the file ''acpi_call.c'' the two ''include'' statements for ''acpi.h'' and ''uaccess.h'' contain the path ''linux/acpi.h'' and ''linux/uaccess.h'' and not ''acpi/acpi.h'' etc.. once this is changed the module will compile but ''make install'' won't install it and it will not be loadable using ''insmod'' because of secure boot. So you need to disable secure boot and then you can load the module via ''sudo insmod acpi_call.ko''. once this is done, the xmm2usb script can be run. however, the script will try to load the module via modprobe which won't work because ''make install'' failed.. I simply commented out the ''modprobe'' line in the script and it worked. 
  
-now all these snags can be fixe and the startup of this cript could be automated using systemd or whatever.. however, a poorely maintained kernel module that needs to be recompiled after every kernel update does sound like trouble. maybe dkms could help with the re-compiling. +now all these snags can be fixed somehow and the startup of this cript could be automated using systemd or whatever.. however, a poorely maintained kernel module that needs to be recompiled after every kernel update does sound like trouble. maybe dkms could help with the re-compiling. 
  
 +so the best solution would be to simply use a card that is linux compatible. so i took the card out of my gen 5 and put that one into my new gen 7.. sadly the notebook will refuse to boot because the bios detects that the card is no longer one of the few whitelisted cards that Lenovo allows you to use in your notebook. there are possibilities to fix this by either modifying your card to emulate another PCI-ID or by modifying the bios, but that's dangerous and will be undone as soon as the next bios update is published, which, given other issues, is something you want to install on the 7th gen notebook. 
 +
 +I've therefore tried to disable the PCIe link on the original card, so that it will start as USB device (that's the documented behaviour, the card will first try to establish a PCI link, if that fails it will start as USB device). I believe i was successful by covering up all odd pins from 41 to 55, but the problem is, that in this case the card is again blocked by the bios because the USB mode is not whitelisted either! 
 +
 +so currently the software hack is the only solution. 
  
 ===== the speaker volume can only be 100% or 0% ===== ===== the speaker volume can only be 100% or 0% =====
  • lenovo_x1_carbon_7th_generation_vs._ubuntu_19.10.txt
  • Last modified: 16.12.2020 06:36
  • by Pascal Suter