Lenovo ThinkPad X1 Yoga OLED 밝기


13

X1 Yoga OLED에서 16.04를 실행하고 있습니다.

화면의 밝기를 전혀 변경할 수 없습니다. 항상 최대 밝기로 보입니다. 난 노력 했어:

  • Fn+ F5/F6
  • xbacklight -set 50(그리고 100, 0, 20, ...) /xbacklight -dec 10

Xorg에서 그놈 쉘을 사용하고 있습니다.

희망적으로 유용한 소프트웨어 및 버전 목록은 추가 정보가 필요하면 의견을 보내주십시오.

gnome-shell 3.18.5-0ubuntu0.1
tlp         0.9-1~xenial
tp-smapi    0.41-1

1
동일한 랩톱과 동일한 문제가 있지만이 방법을 시도했지만 다음과 같은 결과가 나타납니다. xrandr --output eDP1 --brightness .5 경고 : output eDP1 not found; xrandr 무시 : 감마를 설정하려면 crtc가 필요합니다.
user240891

일부 업데이트는 도움이 될 수 있습니다. Wayland에서 작동하는 솔루션이 있습니다 ( github.com/udifuchs/icc-brightness) . icc-brightness watch그런 다음 일반 밝기 키를 사용하십시오. 예이!
orangenarwhals

답변:


11

OLED 화면에는 백라이트가 없습니다. 따라서 일반적인 방법은 작동하지 않습니다. 다음과 같은 방법으로 화면 밝기를 조정하십시오.

xrandr --output eDP1 --brightness .5  # dim to half 

xrandr --output eDP1 --brightness 1  # no dimming

숫자는 0과 1 사이의 숫자 일 수 있습니다.


맞습니다. 그놈 / 드라이버 관리자가 "SUN_ICON MINUS_SIGN 키를 누르면 화면이 어두워 질 것"이라는 사용자 인터페이스 문제를 해결했는지 궁금합니다. 아직, 그리고 언제 그리고 16.04에 도착할 것입니다.
joar

동일한 랩톱과 동일한 문제가 있지만이 방법을 시도했지만 다음과 같은 결과가 나타납니다. xrandr --output eDP1 --brightness .5 경고 : output eDP1 not found; xrandr 무시 : 감마를 설정하려면 crtc가 필요합니다.
user240891

3
방금 새 Linux 배포판을 설치하고 내 답변을 찾아야했기 때문에 귀하의 의견을 찾았습니다. 장치가 다르게 호출되면 xrandr 만 입력하십시오. 무엇보다도 장치 이름을 출력합니다. 지금은 eDP-1이라고합니다.
P.Meyer

11

밝기 버튼을 누를 때 xrandr 명령을 실행하는 방법을 찾고 있습니다. 이에 대한 사용자 정의 acpi 이벤트를 만들었습니다 ( https://help.ubuntu.com/community/LaptopSpecialKeys 에 대한 자세한 정보 ). 이것은 여전히 ​​해킹이며 적절한 해결책은 없지만 나에게 효과적입니다.

/ etc / acpi / events / yoga-brightness-up 파일을 3 개 만들었습니다.

event=video/brightnessup BRTUP 00000086
action=/etc/acpi/yoga-brightness.sh up

및 / etc / acpi / events / yoga-brightness-down :

event=video/brightnessdown BRTDN 00000087
action=/etc/acpi/yoga-brightness.sh down

그리고 마지막으로 /etc/acpi/yoga-brightness.sh :

#!/bin/sh

# Where the backlight brightness is stored
BR_DIR="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/"


test -d "$BR_DIR" || exit 0

MIN=0
MAX=$(cat "$BR_DIR/max_brightness")
VAL=$(cat "$BR_DIR/brightness")

if [ "$1" = down ]; then
    VAL=$((VAL-71))
else
    VAL=$((VAL+71))
fi

if [ "$VAL" -lt $MIN ]; then
    VAL=$MIN
elif [ "$VAL" -gt $MAX ]; then
    VAL=$MAX
fi

PERCENT=`echo "$VAL / $MAX" | bc -l`

export XAUTHORITY=/home/ivo/.Xauthority  # CHANGE "ivo" TO YOUR USER
export DISPLAY=:0.0

echo "xrandr --output eDP-1 --brightness $PERCENT" > /tmp/yoga-brightness.log
xrandr --output eDP-1 --brightness $PERCENT

echo $VAL > "$BR_DIR/brightness"

이는 asus-keyboard-backlight.sh 파일과 xrandr 루트 에 대한 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/660901 의 정보에서 많은 영감을 얻었습니다. 액세스 문제.

입력하여 acpi를 다시 시작하는 것을 잊지 마십시오

sudo service acpid reload

이게 도움이 되길 바란다 ;-)


동일한 랩톱과 동일한 문제가 있지만이 방법을 시도했지만 다음과 같은 결과가 나타납니다. xrandr --output eDP1 --brightness .5 경고 : output eDP1 not found; xrandr 무시 : 감마를 설정하려면 crtc가 필요합니다.
user240891

2
이 기능은 작동하지만 "eDP-1"대신 "eDP1"을 지정해야했습니다. 또한 "chmod a + rx /etc/acpi/yoga-brightness.sh"를 수행해야합니다. 감사!
Dan Christensen

5

부드러운 밝기 조절

( 업데이트 : 이것을 자동화하기 위해 프로비저닝 스크립트를 업로드 했습니다 Github 위해 .)

이 스크립트는 Ivo Blöchliger 의 해결 방법을 기반으로합니다. . 값 비싼 노트북이 저렴 해 보이기를 싫어했기 때문에 Linux가 아닌 동료와 경쟁하려면 밝기 값을 부드럽게 전환해야합니다.

이것은 OLED 패널이있는 Lenovo ThinkPad X1 Yoga (2 세대)의 Linux Mint 18.3 및 Ubuntu 16.04.3에서 작성 및 테스트되었습니다.

/etc/acpi/events/oled-brightness-up (644) :

event=video/brightnessup BRTUP 00000086
action=/etc/acpi/oled-brightness.sh up

/etc/acpi/events/oled-brightness-down (644) :

event=video/brightnessdown BRTDN 00000087
action=/etc/acpi/oled-brightness.sh down

/etc/acpi/oled-brightness.sh (755) :

#!/bin/bash
# Smooth brightness control
# Change "redsandro" in the line below to your username
export XAUTHORITY=/home/redsandro/.Xauthority
export DISPLAY=:0.0

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

MIN=0
MAX=1.2

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` )); then
    VAL=$MIN
elif (( `echo "$VAL > $MAX" | bc -l` )); then
    VAL=$MAX
else
    if [ "$1" == "up" ]; then
        for I in {1..10..1}; do xrandr --output eDP1 --brightness `echo "scale=2; $I/100+$CURR" | bc` 2>&1 >/dev/null | logger -t oled-brightness; done
    else
        for I in {1..10..1}; do xrandr --output eDP1 --brightness `echo "scale=2; $CURR-$I/100" | bc` 2>&1 >/dev/null | logger -t oled-brightness; done
    fi
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 service acpid reload


위의 스크립트를 다중 사용자 지원으로 업데이트하고 GDM xauthority 위치 gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221

3

업데이트-2019 년 7 월 12 일-

Wayland에 대한 멋진 스크립트가 있으며 밝기 키를 사용할 수 있습니다.

https://github.com/udifuchs/icc-brightness./icc-brightness watch.

아래의 스크립트 해킹은 가로 모드를 세로 모드로 전환하거나 터치 스크린 GUI 밝기 제어에 응답하지 않으면 화면을 최대 밝기로 설정합니다. Wayland 솔루션에 정말 만족합니다.

낡은

@Redsandro 솔루션이 우분투 18.10 설치에서 작동하도록 몇 가지 조정이 필요했습니다.

특히 .Xauthority파일이 더 이상 존재 하지 않기 때문에 Xauth 루트 해결 방법이 작동하지 않습니다 (@Ivo B!를 언급 해 주셔서 감사 합니다). 새 파일 위치를 찾으려면

$ xauth info
Authority file:       /run/user/1000/gdm/Xauthority

따라서 관련 줄을 변경합니다.

-OLD: export XAUTHORITY=/home/redsandro/.Xauthority
+NEW: export XAUTHORITY=/run/user/1000/gdm/Xauthority

또한로 변경 eDP1해야했습니다 eDP-1.

이로 인해 세 줄이 바뀌 었습니다.


추가 사항

디버깅하기 위해

rui@chaiX1YG2:/var/log$ $ tail -f /var/log/syslog | grep oled-br

예를 들어 내가 찾은 두 가지 오류 (Xauthority & eDP)

Jan 16 13:03:01 chaiX1YG2 oled-brightness: Can't open display :0.0
Jan 16 13:03:01 chaiX1YG2 oled-brightness: No protocol specified
Jan 16 13:23:46 chaiX1YG2 oled-brightness: warning: output eDP1 not found; ignoring
Jan 16 13:23:46 chaiX1YG2 oled-brightness: xrandr: Need crtc to set gamma on.

참고,이 솔루션은 웨이 랜드에서 작동하지 않습니다! xrandr는 웨이 랜드에서 작동하지 않습니다. 로그인 할 때 wayland가 아닌 xorg를 선택하십시오)

(불행하게도 파이어 폭스 터치 이벤트는 Wayland에서만 작동하므로 밝기 대 파이어 폭스 터치 스크롤 중 하나를 선택해야합니다. 그 이유가 아직 확실하지 않습니다).

(이 답변은 의견 이었지만 크레딧이 부족합니다.)


1

Ubuntu MATE 17.04에서 위와 비슷한 작업을 수행했습니다.

  1. cat $MYDIR/scrbr.property= 0.5 (scrbr = 화면 밝기)
  2. 스크립트를 만들었습니다 scrbr.sh:

```

#!/bin/bash

ACTION=$1

PROP_FILE=$MYDIR/scrbr.property
BRIGHT=$(cat $PROP_FILE)

if [[ "$ACTION" == "--up" ]]; then
        SYM="+"
elif [[ "$ACTION" == "--down" ]]; then
        SYM="-"
fi

BRIGHT=$(echo "$BRIGHT $SYM 0.1" | bc)

# Not less than 0
[[ $BRIGHT == -* ]] && BRIGHT=0

echo $BRIGHT > $PROP_FILE

xrandr --output eDP-1 --brightness $BRIGHT
  1. 다시 매핑 키 WinKey + Upscrbr.sh --up, 그리고에 대한 동일 --down.

  2. 이익.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.