Dell XPS 15 7590 (2020) Ubuntu 스크린 밝기 조정 에러 수정

업뎃: 아래와 같이 수정을 해도 제대로 로딩되지 않은 상황 발생. 문제는 이게 OLED다 보니 기존 스크린 밝기를 조정했던 백라이트 조정과는 차이가 있음. (OLED는 백라이트가 없고, 각각의 소자들의 값을 조정하여 밝기를 조정함.)

수동으론 조정 가능

$ xrandr --output eDP-1-1 --brightness .5

지난 포스팅에서 델의 XPS 15 7590 (2020)에 Ubuntu를 설치하는 방법을 설명하였는데, 설치 완료 후 스크린 밝기가 조정이 안되는 문제가 있었습니다.

인터넷엔 능력자들이 많기에 검색을 해보니, 역시나 문제에 대한 분석 및 해결 방법이 있었습니다. 신형 노트북 모니터 특히 OLED를 사용한 모니터와 기존 스크린 밝기를 조정하는 부분이 뭔가 호환이 안되는듯 합니다.

몇가지 귀찮은 작업을 해주면 사용 가능한데, 먼저 내 노트북의 디스플레이 이름을 확인합니다

$ xrandr --listmonitors
Monitors: 1
 0: +*eDP-1-1 3840/344x2160/194+0+0  eDP-1-1

eDP-1-1” 이 모니터 이름입니다. 터미널에서 명령을 입력하여 밝기가 조정이 되는지 확인해봅니다.

$ xrandr --output eDP-1-1 --brightness 0.5

정상적으로 밝기가 반정도 어두워지는 것을 확인할 수 있습니다. 0으로 하면 완전 검은색으로 변하니 주의하시고요. 이제 이것을 스크린 밝기를 조정하는 키와 맵핑을 해줘야 합니다.

두 개의 파일을 만들어줍니다.

$ sudo vi /etc/acpi/events/dell-brightness-up
event=video/brightnessup BRTUP 00000086 00000000
action=/etc/acpi/dell-brightness.sh up

$ sudo vi /etc/acpi/events/dell-brightness-down
event=video/brightnessdown BRTDN 00000087 00000000
action=/etc/acpi/dell-brightness.sh down

그런 다음 dell-brightness.sh 를 위 경로에 만들어줍니다.

$ sudo vi /etc/acpi/dell-brightness.sh
#!/bin/bash
DISPLAYNAME=$(xrandr --listmonitors | awk '$1 == "0:" {print $4}')

OLED_BR=`xrandr --verbose | grep -i brightness -m 1 | cut -f2 -d ' '`
CURR=`LC_ALL=C /usr/bin/printf "%.*f" 1 $OLED_BR`

MIN=0
MAX=1.0

if [ "$1" = "up" ];
    then
        VAL=`echo "scale=1; $CURR+0.1" | bc`
    else
        VAL=`echo "scale=1; $CURR-0.1" | bc`
fi

if [ `echo "$VAL < $MIN" | bc -l` = "1" ];
    then
        VAL=$MIN
elif [ `echo "$VAL > $MAX" | bc -l` = "1" ];
    then
        VAL=$MAX
else
    `xrandr --output $DISPLAYNAME --brightness $VAL` 2>&1 >/dev/null | logger -t oled-brightness
fi



# Set Intel backlight to fake value
# to sync OSD brightness indicator to actual brightness
INTEL_PANEL="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/"
if [ -d "$INTEL_PANEL" ]; then
    PERCENT=`echo "scale=4; $VAL/$MAX" | bc -l`
    INTEL_MAX=$(cat "$INTEL_PANEL/max_brightness")
    INTEL_BRIGHTNESS=`echo "scale=4; $PERCENT*$INTEL_MAX" | bc -l`
    INTEL_BRIGHTNESS=`LC_ALL=C /usr/bin/printf "%.*f" 0 $INTEL_BRIGHTNESS`
    echo $INTEL_BRIGHTNESS > "$INTEL_PANEL/brightness"
fi

저장하고, 이 스크립트 파일을 실행 가능하도록 수정

$ sudo chmod u+x /etc/acpi/dell-brightness.sh

그런 다음 재부팅하면 수정 완료.

참고링크: https://github.com/TillmannBerg/Ubuntu-Dell-XPS-15-2019

Dell XPS 15 7590 (2020) Ubuntu 설치 관련

최근 Dell XPS 15 7590을 업무용으로 사용하게 되었는데, 기존 외장 USB 드라이브에 Ubuntu를 설치하고 사용하는데 약간의 차이가 생겨, 이에 대한 기록 차원에서 정리.

가장 큰 차이는 더이상 델의 최신 버전 노트북에선 Legacy External Boot가 지원되지 않는다고 합니다. 대략 찾아보니 보안 관련, 32bit에 대한 지원 종료 (64bit만 사용) 등의 이유로 그렇게 된 듯 합니다. 따라서 BIOS 화면에서도 이에 관한 옵션이 사라져 있습니다. 델 상담원이랑 채팅을 통해 상담했는데 그렇다고 하네요.

이에 따라 Grub를 이용해서 부팅하던 USB 설치 스틱도 써먹을 수가 없었는데, 이는 Ubuntu에 내장된 Startup Disk Creator 어플리케이션을 사용하여 쉽게 새로운 설치 스틱을 만들수 있습니다.

이와 같은 상황으로 기존 BIOS에서 Secure Boot 옵션을 껐던 적이 있었는데, 이젠 그것은 그냥 켜두시면 됩니다. (보안에 좋답니다. ㅎㅎㅎ)

NVIDIA 드라이버를 정상적으로 사용하시려면 여전히 Secure Boot 옵션은 꺼둬야 합니다. 살짝 해맸네요..

Ubuntu 설치디스크로 부팅하시고 설치는 그냥 진행 하시되, 파티션 설정 부분에서 기존 /boot로 설정했던 파티션을 EFI 파티션으로 변경해야 합니다. 부트로더 설치할 디스크는 여전히 사용할 외장 USB 드라이브를 선택하시면 되고요. 그렇게 되면 파티션 설정은

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *        65535   3932099   3866565   1.9G ef EFI (FAT-12/16/32)
/dev/sda2         3932100 456385739 452453640 215.8G 83 Linux
/dev/sda3       456385740 488366819  31981080  15.3G 82 Linux swap / Solaris

와 같이 될겁니다.

이후 설치가 완료되고, 재부팅을 한 다음 로고가 나올때 F12키를 연타해보면, UEFI 리스트에 외장 USB 드라이브의 이름이 나오고, 이를 선택하면 잠시 검은색 화면이 나오고 재부팅되는데….

다시 F12키로 부팅리스트를 보면 ubuntu라는 UEFI가 추가로 생성됨을 볼수 있습니다. 이제 이것을 선택하면 정상적으로 부팅됩니다.

이제 사용하면 끝.!

덧:

  • 화면 밝기가 조정이 안됩니다. 하지만 이는 버그인듯하여 쉽게 수정이 될듯 합니다.
  • 기존 말썽을 부리던 Killer WiFi 카드의 드라이버가 그냥 잡힙니다. 하지만 성능은 여전히 구립니다.
  • 이전에 사용하던 Dell XPS 15 9570에서 고질적으로 발생하던 스크린 Flickering 현상은 새로운 모델에선 나타나지 않습니다.

Fix Screen Flickering of Dell Laptop on Ubuntu 18.04.3

현재 작업용으로 델 XPS15 9570 모델을 사용하고 있습니다. 처음 Ubuntu를 설치하여 사용할 때는 큰 문제는 없었는데, 최근들어 Ubuntu 설치때부터 사용중에도 화면이 계속 깜빡이거나 픽셀이 깨지는 등의 에러가 발생하였습니다.


덧: 검색해 본 결과, i915 (인텔 그래픽 드라이버)의 문제로, 4K 모니터를 가진 인텔 랩탑에서 대부분 발생하는 문제로 보임.


마치 하드웨어 (디스플레이 부분)의 불량인듯 보였지만, 윈도우로 부팅하게되면 이런 증상은 나타나지 않았기에 서비스를 맡기기에도 애매하였는데요. 검색을 해보니 (키워드: kernel 5.0, screen flickering) 리눅스 커널이 5.0 버전으로 올라가면서 eDP (아마도 디스플레이 패널 관련) 드라이버의 코드가 변경됨에 따라 일부 LCD 패널에서 발생하는 문제라고 합니다.

It was introduced by an optimization for eDP 1.4+ (“link config fast and narrow”) in the 5.x kernel; the patch doesn’t work for some panels, including that of the XPS 15, and had to be rolled back.

이 문제를 해결하는 방법으론 커널 버전을 이를 해결한 버전으로 올려야 한다고 하는데, 찾아보고 설치해 본 결과 커널 버전을 올려도 이와 같은 문제가 해결되진 않았습니다.

다음 방법으론 커널 소스를 직접 받아, 문제되는 부분을 수정하고, 커널을 빌드하여 사용하는 방법이 있습니다. 다음의 과정은 이와 같은 과정을 정리하였습니다.

먼제 커널 빌드에 필요한 패키지를 설치합니다. (Install necessary packages)

$ sudo apt install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache flex bison

작업을 위한 디렉토리를 생성하고, 커널 소스를 받아옵니다. 현재 사용하고 있는 커널 버전과 가장 유사한 버전을 가져오면 됩니다. 사용하고 있는 커널 버전은 “uname -r” 명령을 통해 확인 가능합니다.

make directory for kernel build and clone kernel source

업데이트: 현재 (2010/01) LTS 최신 커널 버전은 5.3.0-26이다.

$ cd ~
$ mkdir kernel_build 
$ cd kernel_build 
$ git clone -b linux-5.3.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Cloning into 'linux-stable'...

remote: Enumerating objects: 8131608, done.
remote: Counting objects: 100% (8131608/8131608), done.
remote: Compressing objects: 100% (1204105/1204105), done.
Receiving objects: 100% (8131608/8131608), 1.30 GiB | 2.21 MiB/s, done.
remote: Total 8131608 (delta 6878708), reused 8130931 (delta 6878032)
Resolving deltas: 100% (6878708/6878708), done.
Checking out files: 100% (63144/63144), done.

소스를 받아오는데 좀 시간이 걸립니다. 해외망 속도가 빠르면 빨리 받아오기도…

다음으로 현재 사용중인 커널 버전의 빌드 configuration 파일을 복사해옵니다. move linux-stable directory, and copy current configuration of your current kernel.

$ cd linux-stable
$ cp /boot/config-`uname -r` .config

이제, 복사해온 configuration 파일을 현재 받은 커널 소스의 빌드 환경에 적용해 주도록 합니다. Now you have to adapt the old configuration to the new kernel.

$ yes '' | make oldconfig

이제 문제가 된 eDP 관련 소스 파일을 수정해 줍니다.

$ vi drivers/gpu/drm/i915/display/intel_dp.c

대략 2120번 라인으로 가보면, intel_dp_compute_link_config 함수 내에 다음의 라인을 수정해줍니다.

업데이트: 커널 버전이 바뀌면서 소스 파일의 위치 및 라인 변경

        if (intel_dp_is_edp(intel_dp)) {
		/*
		 * Use the maximum clock and number of lanes the eDP panel
		 * advertizes being capable of. The panels are generally
		 * designed to support only a single clock and lane
		 * configuration, and typically these values correspond to the
		 * native resolution of the panel.
		 */
		limits.min_lane_count = limits.max_lane_count;
		limits.min_clock = limits.max_clock;
	}

이 부분을,

        if (false && intel_dp_is_edp(intel_dp)) {
		/*
		 * Use the maximum clock and number of lanes the eDP panel
		 * advertizes being capable of. The panels are generally
		 * designed to support only a single clock and lane
		 * configuration, and typically these values correspond to the
		 * native resolution of the panel.
		 */
		limits.min_lane_count = limits.max_lane_count;
		limits.min_clock = limits.max_clock;
	}

와 같이 수정합니다.


이제 커널을 빌드합니다.

$ make -j8 deb-pkg

시간이 꽤 걸린 후에 빌드가 완료되면 상위 디렉토리에 몇개의 deb 파일이 생성됩니다. 이를 설치해주면 됩니다.

$ ll *.deb
-rw-r--r-- 1 byeongkyu byeongkyu  11204740 Jan 18 07:20 linux-headers-5.3.18+_5.3.18+-1_amd64.deb
-rw-r--r-- 1 byeongkyu byeongkyu  59519512 Jan 18 07:21 linux-image-5.3.18+_5.3.18+-1_amd64.deb
-rw-r--r-- 1 byeongkyu byeongkyu 841223388 Jan 18 07:26 linux-image-5.3.18+-dbg_5.3.18+-1_amd64.deb
-rw-r--r-- 1 byeongkyu byeongkyu   1057176 Jan 18 07:20 linux-libc-dev_5.3.18+-1_amd64.deb

linux-libc-dev, linux-headers, linux-image 요 세개의 패키지를 설치하고 완료된 이후 재부팅하면 적용됨을 볼 수 있습니다.

물론 화면의 깜빡임 역시 해결되었습니다.

[노트북] DELL XPS15-9570 D662X9570508KR

현재 사용하고 있는 맥북프로 레티나 2012mid 모델이 오래된 티를 내는지 Ubuntu에서 조금만 빡센 작업을 하면 쓰로틀링이 걸려 엄청 느려지기 시작했습니다.

Ubuntu/ROS를 사용하면서 성능도 괜찮은 노트북을 검색하다가 맨처음 맘에 들었던 제품은 Razer Blade 15 2018 이었는데, 아쉽게도 아직 한국에 정식 출시도 안되었고 직구하기엔 시간이 좀 걸리는 관계로… 다음 순위였던 델 노트북으로 선택.

들고 다닐수 있는 고성능 노트북 중 그래도 납득할 만한 가격과 어느 정도 받쳐주는 성능으로 DELL XPS15-9570 D662X9570508KR을 선택하였습니다. 4k 디스플레이, GTX1050Ti, 인텔 i9 8세대, 램 16GB. 이정도면 큰 무리없이 몇년간은 사용할만한 사양인듯 합니다.

DELL XPS15-9570 D662X9570508KR

며칠간 사용해본 소감으론

  • 팬 소리가 심하다
  • 성능은 뭐 나름 만족
  • 디스플레이도 만족
  • 다시 사용하게 된 윈도우10은 역시나 별로
  • 스피커, 트랙패드 등은 기대도 안함.

끝!.