コマンドを使用して、サポートされているLenovo(Carbon X1など)のキーボードバックライトを有効にします


18

一部のLenovoラップトップにはキーボードバックライトがあり、Fn+ を使用してオンにできますSpace。オフ、通常、明るいの3つの状態があります。

Ubuntuを起動すると、これらのラップトップは常にデフォルトで燃える太陽画面の明るさに戻り、キーボードが消灯します。

通常、このラップトップは暗い環境で使用するため、中程度の明るさとキーボードライトをデフォルトでオンにします。

バックライトは簡単です。インターネットはこれに関する情報でいっぱいです。
echo 10 > /sys/class/backlight/acpi_video0/brightness

しかし、コマンドでキーボードのバックライトをオンにするにはどうすればよいですか?私はここを見てきましたが、何もしないようです:
/sys/class/leds/tpacpi\:\:thinklight


更新情報

試しましたfor i in {1..32}; do xset led $i; doneが、何も変わりません。おそらく、Lenovoラップトップのキーボードバックライトには専用のドライバーがあり、tpacpi?でしか制御できません。

またfor i in $(find /sys/devices/platform/thinkpad_acpi/leds/ | grep /brightness\); do echo 255 > $i; done、無駄にしようとしました。


どちらかxset led (それはほぼ100%可能性の高いキャップロック、などになることですが、私はとにかくそれを追加します)、またはsetleds編集:見つかり
Wilf

機能しません。試しましたfor i in {1..32}; do xset led $i; doneが、何も変わりません。
レッサンドロ

回答:


8

これは更新されたように見えますが、ubuntuMATE 16.04 LTSを搭載したX1Cは

/sys/class/leds/tpacpi\:\:kbd_backlight/brightness

期待通りに動作します。すなわち:

# echo 2 > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness

完全な光にそれをもたらします:)


ねえ、確かに!これを古い質問と共有してくれてありがとう。:)
レッサンドロ

1
いいえちゃったごめんなさい、それは私が探していたとき、最初のヒットではなかった、それはすることはできないと思ったことを、ハードなので、私は私の調査結果で、このいずれかを更新する必要がありますと思った:)
wuxmedia

14

これは本当に修正する必要があります!

これは新しいthinkpadの一般的なバグだと思います。キーボードを手動で点灯してfn + spaceから実行した場合:

echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness

キーボードがフェードアウトします。役立つ場合は、次のリンクを参照してください。

http://www.spinics.net/lists/ibm-acpi-devel/msg03090.html


ねえ、あなたは正しい、私は知りませんでした。これをオフにできるので、開発者にとってこれを修正するのは簡単なことのように感じます。バグレポートはまだありますか?
レッドサンドロ

電子メールはこの回避策を提案しました:gist.github.com/hadess/6847281どのようにそれを実装することができますか?
rashad

4

これは私が使用するbashスクリプトです。

https://gist.github.com/vzaliva/0adba7bc40e2f31a0b5f802af2a63267

Ubuntu 16.04を搭載したIBM ThinkPad X260で動作します。


IBM?そのラップトップは少なくとも10歳でなければなりません!しかし、私のCarbon X1でも機能します!公平を期すために、rashadが回答したhadessのコードは同じことをしましたが、5つのステップを踏んでコンパイラーをインストールしたくありません。単純なbashコマンドを探していました。そして、これは私が使用できるものです。私の3年前の質問に答えてくれてありがとう。受け入れられました。
レッサンドロ

便利だとうれしく思います。もちろん、私はLenovo Thinkpadを意味しており、私のX260は新品です。私は同じ問題を抱えていてこの答えを見つけましたが、手動のmodprobeを必要とするCプログラムが好きではなかったので、スクリプトとして書き直しました。元のCプログラムの作成者は、すべて重労働をしました。
krokodil

3

わかりました、この要点で私とうまくいきます:

https://gist.github.com/hadess/6847281

  • まず、上記の要点をダウンロードし、名前をのThinkLight.c代わりに変更しましたtmp.c
  • glib-2.0がインストールされていることを確認してください。

    sudo apt-get install libglib2.0-dev
    
  • ThinkLight.c次のようにコンパイルします。

    gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ThinkLight.c -o ThinkLight -lglib-2.0
    
  • ロードec_sysモジュール(これは/etc/modulesブート時に追加できます):

    sudo modprobe ec_sys
    
  • 最後にThinkLight、レベル引数(0、1、または2)で実行します。

     sudo ./ThinkLight 0
     sudo ./ThinkLight 1
     sudo ./ThinkLight 2
    

これを実現してくれたハデスに感謝します!


sudoなしでこれを実行する方法はありますか?別のスクリプト内でこれを実行しようとすると、それはユーザーとして実行されます。
zsquare

私はこれを試して、いくつかのエラーを得ました:( ThinkLight.c:In function 'main':ThinkLight.c:56:6:warning:implicit declare of function 'lseek' [-Wimplicit-function-declaration] if(lseek(fd、 0xd、SEEK_CUR)<0){^ ~~~~ ThinkLight.c:60:6:警告:関数 'write'の暗黙の宣言[-Wimplicit-function-declaration] if(write(fd、&levels [level]、1 )<0){^ ~~~~
ヘリベルトフアレス

@HeribertoJuarezこれは古い答えです。新しいLinuxカーネルでこれを直接操作できます。wuxmediaの答えを確認してください
rashad

1

私のT450は、カーネルが4.6より古い場合、再開時にキーボードバックライトを再度有効にしませんでした。FWIWの4.6では、キーボードのバックライトはサスペンド前の明るさに設定されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.