
私はDell Latitude 7390 2-in-1タッチスクリーンノートパソコンを使用しています。ここにPopOS 22.04をインストールしました(Ubuntu 22.04ベースですが、より高いカーネル:5.19.0)。これで、ノートブックを一時停止状態にするたびに(カバーを閉じるなど)、ランダムに一時停止状態が終了し、電力が消費され続けます。
この問題を解決するために、次のコマンドを使用してすべてのウェイクアップデバイス(電源ボタンを除く)を無効にしてみました。
for x in $(grep enabled /proc/acpi/wakeup | cut -f1 | grep -v PBTN)
do
echo $x | sudo tee /proc/acpi/wakeup
done
しかし、効果はありません。ノートブックはキーボードを使用するか、カバーを開いてスリープ/サスペンド状態を解除できます。電源ボタンだけを使って強制的に省電力モードを終了したいです。
更新:すべてのウェイクアップデバイスが無効になっても目が覚めます!
ノートブックのすべてのウェイクアップデバイスを無効にしても、/proc/acpi/wakeup
キーボードキーを押すとラップトップが起動し続けます(蓋を開いたり電源ボタンを押しても目が覚めなくても)。
アップデート:加速度計を無効にする方法は?
ノートパソコンを振るとノートパソコンも目覚めることがわかりました!バックパックに入れるとこんなことがたくさん発生します。これは加速度計のウェイクアップによるものです。したがって、加速度計自体を無効にすると、この問題は消えます。
だから私は代替質問を投げます。加速度計を無効にする方法は?
関連センサーをオフロードするカーネルモジュールが利用可能でなければなりませんが、modprobe -r module_name
Catch-22の状況に閉じ込められています。それらはすべて互いに依存しているように見え、一部にはリストされていない依存関係があります。以下は重要なセンサーのリストです。
$ lsmod | grep sensor
Module Size Used by
hid_sensor_accel_3d 20480 1
hid_sensor_gyro_3d 20480 0
hid_sensor_magn_3d 20480 1
hid_sensor_custom_intel_hinge 16384 0
hid_sensor_rotation 20480 0
hid_sensor_incl_3d 20480 0
hid_sensor_trigger 20480 12 hid_sensor_gyro_3d,hid_sensor_custom_intel_hinge,hid_sensor_incl_3d,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_rotation
industrialio_triggered_buffer 16384 1 hid_sensor_trigger
hid_sensor_iio_common 24576 7 hid_sensor_gyro_3d,hid_sensor_trigger,hid_sensor_custom_intel_hinge,hid_sensor_incl_3d,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_rotation
industrialio 102400 11 industrialio_triggered_buffer,hid_sensor_gyro_3d,hid_sensor_trigger,hid_sensor_custom_intel_hinge,hid_sensor_incl_3d,kfifo_buf,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_rotation
hid_sensor_custom 28672 0
hid_sensor_hub 28672 9 hid_sensor_gyro_3d,hid_sensor_trigger,hid_sensor_iio_common,hid_sensor_custom_intel_hinge,hid_sensor_incl_3d,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_rotation,hid_sensor_custom
hid 155648 7 i2c_hid,wacom,usbhid,hid_multitouch,hid_sensor_hub,intel_ishtp_hid,hid_generic
一部のセンサーは「使用先」列に数字で表示されます(ただし、そのセンサーを使用するモジュールは指定しません)。したがって、削除は失敗します。hid_sensor_accel_3d
そのセンサーを取り除きたいです。しかし、それは不可能です!
答え1
これで質問は「カーネルモジュールを無効にする方法」であり、これに答えます。
- あなたはファイルに書きます -
/etc/modprobe.d/blacklist.conf
最初のオプション:
- 別の行に入力してください。
blacklist hid_sensor_accel_3d
2番目のオプション:
再起動後もブラックリストモジュールが残っている場合は、モジュールを「偽」インストールする必要があります。で確認できますlsmod
。
- 別の行に入力してください。
install hid_sensor_accel_3d /bin/true
次に、両方のオプションを実行します。
- initramfsの再生成 -
update-initramfs -u
- 再起動