[Fedora31] Setting touchscreen in Dell XPS 13 7390 2 in 1

이 포스트 한글로 읽기

A few years ago, my main OS was Fedora and so I installed Fedora 31 on my new laptop. However, the touchscreen was not working in Fedora 31.

Thus, this article describes how to properly use the touchscreen on Fedora 31 on Dell XPS 2n 1 7390 machines.

You can find the same problem in Red hat Bugzilla.

In Fedora 32, the touchscreen is well worked.

1. Check Kernel version, after installing Fedora 31

If you installed properly Fedora 31 on your laptop, kernel version of your machine would be 5.3.7-301.fc31.

# Check current kernel version 
$ uname -a
<kernel version>

You need to install 5.4.x version kernel in order to use the touchscreen on Fedora 31 because the fixed patch related to use touchscreen was applied after 5.4.0 version kernel.

The under content is the patch related to use the touchscreen on Dell XPS 13 7390 2 in 1.

commit a8ff78f7f773142eb8a8befe5a95dd6858ebd635  
...
The BIOS bug is present on Dell XPS 13 7390 2-in-1:

[ 0.001734] 5 base 4000000000 mask 6000000000 write-combining

4000000000-7fffffffff : PCI Bus 0000:00
4000000000-400fffffff : 0000:00:02.0 (i915)
4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)

Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
...

2. Download Kernel 5.4.x version source code

Kernel version 5.4.x is known to have the touch screen setting. However, I used [torvalds/linux] source because I confirmed that the touch screen works well and proceeded based on this source code.

# Download kernel source code
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux
$ git checkout master

3. Setting config file

# Copy current kernel config file
$ cp /boot/config-5.3.7-301.fc31.x86_64 .

# Setting config details to build (touchscreen module built-in configuration)
$ make menuconfig

After entering the command, which is make memuconfig , the following screen will appear.

Press /, and find the intel_lpss_pci module. (Intel_lpss_pci module is a touch screen module.)

If it looks like the screen above, press 1.

You can see that the intel_lpss_pci module is set to M (module). However, I want to set this module to built-in and so I changed it by pressing y.

Now press tab to press save and press exit key.

4. Build Kernel

Build the kernel with the binrpm-pkg option due to using rpm command for installation.

$ make prepare 
$ make binrpm-pkg -j <the number of cpu core>

binrpm-pkg option

$ make help
...
Kernel packaging:
...
binrpm-pkg - Build only the binary kernel RPM package
...

5. Install Kernel

Kernel pkg, which has been built in step 4, is stored in $ HOME / rpmbuild / RPMS. Change path to this directory and start to install the kernel.

$ cd ~/rpmbuild/RPMS/x86_64/
$ ls
kernel-5.4.0+-7.x86_64.rpm kernel-headers-5.4.0+-7.x86_64.rpm
# Kernel installation.
$ sudo rpm -ivh kernel-5.4.0+-7.x86_64.rpm
# Kernel header installation.
$ sudo rpm -Uvh kernel-headers-5.4.0+-7.x86_64.rpm

6. Reboot

Boot the kernel, which is installed in step 5. Check if the kernel version 5.4.0 is properly installed with the following command.

$ uname -a
Linux 5.4.0+

After the kernel installation, there was a problem of not being able to network after booting.

7. Fixed Network issue

Update the network firmware to the latest file through the following procedure and the network will operate normally.

git clone https://chromium.googlesource.com/chromiumos/third_party/linux-firmware chromiumos-linux-firmware
cd chromiumos-linux-firmware
sudo cp iwlwifi-* /lib/firmware/
cd /lib/firmware
sudo ln -s iwlwifi-Qu-c0-hr-b0-50.ucode iwlwifi-Qu-b0-hr-b0-50.ucode

reference

--

--

I primarily write about solving problems about computer engineering and personal stories.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Juhee Kang

I primarily write about solving problems about computer engineering and personal stories.