无法在 Dell Latitude 7390 触摸屏上的 PopOS/Ubuntu 22.04 上禁用唤醒设备

无法在 Dell Latitude 7390 触摸屏上的 PopOS/Ubuntu 22.04 上禁用唤醒设备

我有一台 Dell Latitude 7390 二合一触摸屏笔记本电脑。我在上面安装了 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

第二个选项:

如果重新启动后黑名单模块仍然存在,那么您需要对该模块进行“假”安装。您可以使用 检查它lsmod

  • 在单独的行上键入install hid_sensor_accel_3d /bin/true

接下来这两个选项都要做:

  • 重新生成 initramfs -update-initramfs -u
  • 重启

相关内容