私は Linux バージョン 3.10.17 を使用しており、デバイス ツリーを使用してカーネルを起動しています。
デバイスツリーでは、「pwm-backlight」互換のドライバを定義します。ドライバは変数を定義します。default-brightness-level
起動時に、ドライバーはこの値をドライバーの「明るさ」値に適用します。
値を保存して、「default-brightness-level」の代わりに使用する方法があるかどうかを知りたいです。目的は、明るさの値を保存して、Linux の次回起動時に使用できるようにすることです。
答え1
sysfsの使用
sysfs を使用してファイルに値を設定することは可能ですbrightness
。 の下を見てください/sys/class/backlight
。おそらく、バックライト デバイスのサブディレクトリがあります。そのディレクトリに、ファイル があるはずですbrightness
。
brightness-levels
使用したい値 ( 内) のインデックスに対応する値をそのファイルにパイプします。例:
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 ファイルは、ブートローダ スクリプトで参照されます。例として、UBoot の場合は次のようになります。
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