저는 장치 트리를 사용하여 커널을 부팅하는 Linux 버전 3.10.17을 사용하고 있습니다.
장치 트리에서 "pwm-backlight" 호환 드라이버를 정의합니다. 드라이버는 변수를 정의합니다.default-brightness-level
시작 시 드라이버는 이 값을 드라이버의 "밝기" 값에 적용합니다.
"기본 밝기 수준" 대신 값을 저장하여 사용할 수 있는 방법이 있는지 알고 싶습니다. 목적은 밝기 값을 저장하여 다음에 Linux를 시작할 때 사용할 수 있도록 하는 것입니다.
답변1
sysfs 사용
sysfs를 사용하여 파일에 값을 설정하는 것이 가능해야 합니다 brightness
. 아래를 살펴보십시오 /sys/class/backlight
. 백라이트 장치에 하위 디렉터리가 있을 가능성이 높습니다. 해당 디렉토리에는 파일이 있어야 합니다 brightness
.
brightness-levels
해당 파일에 사용하려는 값(in)의 인덱스에 해당하는 값을 파이프합니다 . 예를 들어:
me@mydevice:/ $ echo 3 > /sys/class/backlight/backlight_lvds.0/brightness
그러면 값이 의 4번째 항목으로 설정되어야 합니다 brightness-levels
.
이 파일을 쿼리할 수도 있습니다.
me@mydevice:/ $ cat /sys/class/backlight/backlight_lvds.0/brightness
3
답변2
사용자 정의(이식 가능한) dtb 파일 사용
참고: 당신이 언급한 것으로 알고 있습니다."기본 밝기 수준" 대신, 그러나 dtb 파일이 만들어지면 커널 외부에 저장된 구성을 저장하는 데 사용할 수 있습니다(즉, 커널을 다시 빌드하지 않고 다른 파일로 교체할 수 있음).
커널이 빌드된 dtsi 파일에 액세스할 수 있는 경우 해당 섹션에서 값을 수정할 수 있습니다. 이 파일은 arch/arm/boot/dts
커널 소스 디렉터리에 있어야 합니다.
와 동일한 수준에는 매개변수 compatible = "pwm-backlight"
도 있습니다 default-brightness-level
. 이 값을 원하는 값으로 변경합니다(배열의 인덱스에 해당합니다 brightness-levels
. 예:
backlight_lvds {
compatible = "pwm-backlight";
pwms = <&pwm4 0 500000>;
brightness-levels = <100 75 60 50 40 30 20 10 5 0>;
/* Default brightness level (index into the array defined by the "brightness-levels" property) */
default-brightness-level = <5>;
status = "okay";
};
그런 다음 dtsi를 부팅 파티션에 포함된 dtb 파일로 컴파일할 수 있습니다. 명령 을 사용하여 컴파일합니다 make dtbs
. 다음과 같은 것 :
cd ~/MyOS/kernel_imx
export CROSS_COMPILE=`pwd`/../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
make myboard_defconfig
make dtbs
그러면 출력 dtb 파일이 부트로더 스크립트에서 참조됩니다. 예를 들어, UBoo의 경우 다음과 같습니다.
setenv dtbname myCustom.dtb
myCustom.dtb
명령 의 출력입니다 make dtbs
.
답변3
커널은 이 작업을 수행하지 않지만(백라이트 값을 저장하고 다음 재시작 시 적용), 커널이 sysfs를 지원하는 경우 구성 파일(예: /etc/backlight.conf)에 현재 값을 유지할 수 있습니다. , 부팅 시 적용합니다.
백라이트를 변경할 때마다:
echo <newvalue> > /sys/class/backlight/<subdir>/brightness
echo <newvalue> > /etc/backlight.conf
부팅 시:
if [ -f /etc/backlight.conf ]; then
cat /etc/backlight.conf > /sys/class/backlight/<subdir>/brightness
fi