[Fedora31] Dell XPS 13 7390 2 in 1 터치스크린 설정

Read this post in English here

몇년 전부터, 나의 주 OS는 Fedora였고, 자연스럽게 새로운 노트북에 Fedora 31을 설치하였다. 하지만, Dell XPS 2 in 1 7390에서 지원되는 터치스크린이 잘 동작하지 않았다.

이 글에서는 Dell XPS 2n 1 7390 머신의 Fedora 31에서 터치스크린을 정상적으로 사용하기 위한 방법에 대해 설명하고자 한다.

레드햇 버그질라에서도 이 문제에 대한 내용은 확인 할 수 있다.

Fedora 32 버전에서는 터치 스크린이 잘 동작한다!

1. Fedora 31 설치 이후 커널 버전 확인

Fedora 31이 정상적으로 설치가 되었다면, 현재 컴퓨터에는 5.3.7-301.fc31 버전의 커널이 설치되어있을 것이다.

# 현재 커널 버전 확인
$ uname -a
<커널 버전>

Dell XPS 13 7390 2 in 1 터치스크린 사용 관련 패치는 5.4.x 버전의 커널 소스부터 적용되기 때문에 터치스크린 을 사용하기 위해서는 커널 5.4.x 버전 설치가 필요하다.

다음 아래 내용은 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. 커널 5.4.x 버전 커널 소스 코드 다운

커널 5.4.x 버전부터는 터치스크린 설정이 되어 있는 것으로 알고 있으나, 2019.12.07일 기준으로 [torvalds/linux]에서는 터치스크린이 잘 작동되는 것을 확인하여 5.4.0 버전의 소스코드를 바탕으로 진행하였다.

# 소스코드 다운로드 
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux
$ git checkout master

3. config 설정

# 현재 커널버전 config 복사
$ cp /boot/config-5.3.7-301.fc31.x86_64 .

# 빌드할 커널 config 세부 설정 (터치스크린 모듈 빌트인 설정을 위해)
$ make menuconfig

make memuconfig 명령을 치게 되면 다음과 같은 화면이 나오게 된다.

/를 눌러, intel_lpss_pci 모듈을 검색한다. (intel_lpss_pci 모듈이 터치스크린 모듈이다.)

위의 화면처럼 나온다면, 1을 누른다.

현재 intel_lpss_pci 모듈이 M(모듈)으로 되어 있는 것을 확인 할 수 있고, 나는 이 모듈을 빌트인으로 설정해서 빌드하고 싶기 때문에, y를 눌러서 설정을 바꿔주었다.

이제 tab키를 눌러 save를 해준 후, exit로 빠져나온다.

4. 커널 빌드

커널을 rpm 명령을 사용하여 설치할 것이기 때문에 binrpm-pkg 옵션으로 커널을 빌드한다.

$ make prepare 
$ make binrpm-pkg -j <cpu core 개수>

binrpm-pkg 옵션

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

5. 커널 설치

4번 과정에서 빌드가 완료된 커널 pkg는 $HOME/rpmbuild/RPMS 위치에 저장이 되어있다. 그 위치로 이동하여 이제 커널 설치를 진행한다.

$ cd ~/rpmbuild/RPMS/x86_64/
$ ls
kernel-5.4.0+-7.x86_64.rpm kernel-headers-5.4.0+-7.x86_64.rpm
# 커널 설치
$ sudo rpm -ivh kernel-5.4.0+-7.x86_64.rpm
# 커널 헤더 설치
$ sudo rpm -Uvh kernel-headers-5.4.0+-7.x86_64.rpm

6. 재부팅

5번 과정에서 설치한 커널버전으로 부팅한다.

아래 명령을 통해 5.4.0 버전의 커널이 정상적으로 설치되어 있는지 확인한다.

$ uname -a
Linux 5.4.0+

커널 설치 이후, 부팅을 하고 나서 네트워크가 안되는 문제가 발생하였다.

7. 네트워크 문제 해결

네트워크 펌웨어를 최신으로 아래 과정을 통해 최신파일로 교체해주면 네트워크가 정상적으로 작동하게 된다.

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

참고

--

--

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

Love podcasts or audiobooks? Learn on the go with our new app.

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

Juhee Kang

34 Followers

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