web-dev-qa-db-ja.com

Samsungでキーボードのバックライトを機能させる

最近、Samsung NP900X3Nを手に入れ、バックライトを動作させようとしています(UEFI上のLinux Mint 18.1およびKernel 4.10を使用)。私はそれについてたくさん読みましたが、そのトピックには多くのページが存在することを認識していますが、それらはすべて古く(3年以上)、それらのどれも私のために機能させることができませんでした(おそらくこのバージョンのラップトップが原因です)比較的新しいです)。

私が試したいくつかのことは:

  • samsung-toolsパッケージをダウンロードしてインストールしましたが、それを実行すると、約2分間何も出力されずにエラーが発生します。
  • この簡単な答え に従ってsamsung::kbd_backlight/brightnessファイルを見つけようとしましたが、明らかに何もありません(phy0-led/brightnessしか見つけられませんでした。しますが、すでに1に設定されています。
  • 私は このガイド を非常に手動のアプローチで試そうとしましたが、正直に言うと、あまり遠くまで行くことができませんでした(おそらく私の側の知識が不足しているためですが、より複雑なアプローチ)
  • この答え で提案されているようにカーネルログをチェックして、キーのスキャンコードをチェックアウトします。

この最後のものが一番近くに来たものであり、私はさらに追求したいものです。 fn+f9(キーボードのバックライトを切り替える)を押すと、そのキーにスキャンコードe02cが割り当てられます。だから私はやった

Sudo setkeycodes e02c 230

答え で提案されています。したがって、このキーを押すと、キーボードのライトシンボルを示す通知が表示されます。これは良い兆候だと思いますが、何も起こりません。

キーコード値230はkbdlightを増やすための質問ですが、私のラップトップにはそれがありません。トグルkbdlightキーしかありません。したがって、これが問題である可能性があると思いますが、「トグル」キーコードを見つけることができません(/usr/include/linux/input.hを完全に理解できないことが原因である可能性があります)。

xmodmap -pke | lessを使用して、キーコード236としてリストされている「トグルキーボードのバックライト」を見つけましたが、そのリストの数値は実際には機能しません。

助言がありますか?

[〜#〜]編集[〜#〜]

ll /sys/class/backlight/の出力:

lrwxrwxrwx  1 root root 0 Apr 28 07:16 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/

/sys/class/backlight/brightnessで値を変更しようとしましたが、これはディスプレイの明るさのみを制御します。

ll /sys/class/leds/の出力:

lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::capslock -> ../../devices/platform/i8042/serio0/input/input3/input3::capslock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::numlock -> ../../devices/platform/i8042/serio0/input/input3/input3::numlock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::scrolllock -> ../../devices/platform/i8042/serio0/input/input3/input3::scrolllock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 phy0-led -> ../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/leds/phy0-led/

Capslockはそれが言うことです(私はテストしました)。値を0から最大値に変更して何も起こらなかったため、numlockは何も実行していないように見えます(キーボードにはnumlockがありません。スクロールロックも何も実行していないようです。また、わかりません) what phy0-led。すでに1に設定されており、0を入れても何も起こりません。

EDIT2

modprobe samsung-laptopを実行すると、フォローエラーが発生します

modprobe: ERROR: could not insert 'samsung_laptop': No such device

古いバグ のようです。

7
TomCho

キーボードの特別なキーでバックライトを制御できるようにするには、2つの部分があります。

  • キーが押されたときに生成されるイベントを理解する
  • 実際にバックライトの輝度を変更する

また、イベントに反応して強度を変更するウィンドウマネージャーなどのプログラムが必要です。

あなたは最初の部分で大丈夫です、あなたはイベントを受け取ります、そして私たちは後で必要な翻訳を整理することができます。 2番目の部分については、バックライトの輝度を制御する方法を知っているドライバーと、このドライバーへのインターフェイスが必要です。

多くの場合、これらは/sys階層にあります。

ll /sys/class/backlight
ll /sys/class/led

そして、出力で質問を編集します。これらのディレクトリには、brightnessという名前のファイルとmax_brightnessという名前のファイルを持つ他のディレクトリへのリンクが含まれている必要があります。名前がわからない場合は、max_brightnessの内容を確認し、ルートとして、0から最大値までの数値を各ファイルに書き込んでみてください。

echo 0 > /sys/class/led/phy0-led/brightness

それが何を制御しているかを特定できるかどうかを確認します。

編集

わかりました、キーボードのバックライトのコントロールがないようで、特定のドライバーが必要です。 phy0-ledは、WLAN LEDコネクタである可能性が高く、実際には何にも接続されていない場合があります。 lspciで確認し、00:1c.0でデバイスを探すことができます。

samsung::kbd_backlightコントロールは、WMIインターフェイスを使用するASUSラップトップ用の asus-wmi ドライバーによって提供されます。 は、Samsungに似たもの、つまり samsung-laptop であり、leds/samsung::kbd_backlightを提供し、debugfsもあります。より直接アクセスするためのインターフェース。

これがモデルで機能するかどうかはわかりません。試す

modprobe samsung-laptop

ルートとして、ロードされている場合はlsmodで確認し、dmesgを調べて問題やその他のメッセージがないかどうか、何か問題が発生していないかどうかを確認します。

2
dirkt