起動時にGPE ACPI割り込みを無効にしますか?

起動時にGPE ACPI割り込みを無効にしますか?

ACPI割り込みが見つかると、次のようになります。

/sys/firmware/acpi/interrupts/sci:   55414
/sys/firmware/acpi/interrupts/error:       0
/sys/firmware/acpi/interrupts/gpe00:       0   invalid
/sys/firmware/acpi/interrupts/gpe01:       0   invalid
/sys/firmware/acpi/interrupts/gpe02:       0   invalid
/sys/firmware/acpi/interrupts/gpe03:       0   invalid
/sys/firmware/acpi/interrupts/gpe04:       0   invalid
/sys/firmware/acpi/interrupts/gpe05:       0   invalid
/sys/firmware/acpi/interrupts/gpe06:       0   enabled
/sys/firmware/acpi/interrupts/gpe07:       0   enabled
/sys/firmware/acpi/interrupts/gpe08:       0   invalid
/sys/firmware/acpi/interrupts/gpe09:       0   disabled
/sys/firmware/acpi/interrupts/gpe10:       0   enabled
/sys/firmware/acpi/interrupts/gpe11:       0   invalid
/sys/firmware/acpi/interrupts/gpe12:       0   invalid
/sys/firmware/acpi/interrupts/gpe13:       0   invalid
/sys/firmware/acpi/interrupts/gpe14:       1   enabled
/sys/firmware/acpi/interrupts/gpe15:       0   invalid
/sys/firmware/acpi/interrupts/gpe16:       1   enabled
/sys/firmware/acpi/interrupts/gpe0A:       0   invalid
/sys/firmware/acpi/interrupts/gpe17:   54753   enabled
/sys/firmware/acpi/interrupts/gpe0B:       0   invalid
/sys/firmware/acpi/interrupts/gpe18:       0   invalid
/sys/firmware/acpi/interrupts/gpe0C:       0   invalid
/sys/firmware/acpi/interrupts/gpe19:       0   invalid
/sys/firmware/acpi/interrupts/gpe0D:       0   disabled
/sys/firmware/acpi/interrupts/gpe0E:       0   invalid
/sys/firmware/acpi/interrupts/gpe20:       0   invalid
/sys/firmware/acpi/interrupts/gpe0F:       0   invalid
/sys/firmware/acpi/interrupts/gpe21:       0   invalid
/sys/firmware/acpi/interrupts/gpe22:       0   invalid
/sys/firmware/acpi/interrupts/gpe23:       0   enabled
/sys/firmware/acpi/interrupts/gpe24:       0   invalid
/sys/firmware/acpi/interrupts/gpe25:       0   invalid
/sys/firmware/acpi/interrupts/gpe26:       0   invalid
/sys/firmware/acpi/interrupts/gpe1A:       0   invalid
/sys/firmware/acpi/interrupts/gpe27:       0   invalid
/sys/firmware/acpi/interrupts/gpe1B:       0   invalid
/sys/firmware/acpi/interrupts/gpe28:       0   invalid
/sys/firmware/acpi/interrupts/gpe1C:       0   invalid
/sys/firmware/acpi/interrupts/gpe29:       0   invalid
/sys/firmware/acpi/interrupts/gpe1D:       0   invalid
/sys/firmware/acpi/interrupts/gpe1E:       0   invalid
/sys/firmware/acpi/interrupts/gpe30:       0   invalid
/sys/firmware/acpi/interrupts/gpe1F:       0   invalid
/sys/firmware/acpi/interrupts/gpe31:       0   invalid
/sys/firmware/acpi/interrupts/gpe32:       0   invalid
/sys/firmware/acpi/interrupts/gpe33:       0   invalid
/sys/firmware/acpi/interrupts/gpe34:       0   invalid
/sys/firmware/acpi/interrupts/gpe35:       0   invalid
/sys/firmware/acpi/interrupts/gpe36:       0   invalid
/sys/firmware/acpi/interrupts/gpe2A:       0   invalid
/sys/firmware/acpi/interrupts/gpe37:       0   invalid
/sys/firmware/acpi/interrupts/gpe2B:       0   invalid
/sys/firmware/acpi/interrupts/gpe38:       0   invalid
/sys/firmware/acpi/interrupts/gpe2C:       0   invalid
/sys/firmware/acpi/interrupts/gpe39:       0   invalid
/sys/firmware/acpi/interrupts/gpe2D:       0   invalid
/sys/firmware/acpi/interrupts/gpe2E:       0   invalid
/sys/firmware/acpi/interrupts/gpe2F:       0   invalid
/sys/firmware/acpi/interrupts/gpe3A:       0   invalid
/sys/firmware/acpi/interrupts/gpe3B:       0   invalid
/sys/firmware/acpi/interrupts/gpe3C:       0   invalid
/sys/firmware/acpi/interrupts/gpe3D:       0   invalid
/sys/firmware/acpi/interrupts/gpe3E:       0   invalid
/sys/firmware/acpi/interrupts/gpe3F:       0   invalid
/sys/firmware/acpi/interrupts/sci_not:       0
/sys/firmware/acpi/interrupts/ff_pmtimer:       0   invalid
/sys/firmware/acpi/interrupts/ff_rt_clk:       0   disabled
/sys/firmware/acpi/interrupts/gpe_all:   55414
/sys/firmware/acpi/interrupts/ff_gbl_lock:       0   enabled
/sys/firmware/acpi/interrupts/ff_pwr_btn:       0   enabled
/sys/firmware/acpi/interrupts/ff_slp_btn:       0   invalid

起動時にこの機能を無効にするサービススクリプトを作成しました。

#!/bin/bash

### BEGIN INIT INFO
# Provides:          disable-gpe17
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

logger -t gpe17 -s "Disabling gpe17 interrupts..."

/etc/pm/sleep.d/30_disable_gpe17 thaw

exit 0

これは私のPMスクリプトを呼び出します。

#!/bin/sh

echo 0 > /sys/firmware/acpi/interrupts/gpe17 2>/dev/null

両方のスクリプトを実行可能にし、disable-gpe17起動スクリプトに追加しました。

sudo update-rc.d disable-gpe17 defaults

ブートログを見ると、gpe17が無効になっていることを示すsyslogエントリはありません。

起動時に特定の割り込みをディセーブルにするより良い方法(おそらくudev)はありますか?それ以外の場合、起動時にサービススクリプトが実行されないのはなぜですか?

私はカーネル3.19とUbuntu 14.04を実行しているMacBook Pro 11.5を使用しています。

答え1

私も同じ問題があります。 kworkerがCPUの消費を停止するには、gpe16とgpe17を無効にする必要があります。私はここのレシピに従いました。http://sudoremember.blogspot.com.au/2013/05/high-cpu-usage-due-to-kworker.html

省略された(少なくとも私の例では修正された)バージョンは次のとおりです。

$ sudo -s
# echo "disable" > /sys/firmware/acpi/interrupts/gpe16
# echo "disable" > /sys/firmware/acpi/interrupts/gpe17

これでCPUの負荷を確認し、ファンが回転している音を聞くことができます。再起動時にもこれが発生することを確認してください。まだroot権限を使用しています。

# crontab -e

お気に入りのエディタが開きます。次の行を追加してください。

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe16 
@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe17

一時停止モードが機能していないため、一時停止後に再起動したときにこれらの設定を再度有効にするスクリプトを作成する方法の残りの指示に従わなかった。

答え2

echo "disable" > /sys/firmware/acpi/interrupts/gpe17Linux 4.19では、GPE()を無効にしても問題は解決しないことがわかりました。 GPEが無効になっていても、数字は増え続け、CPUはまだ使用中です。 Linux 4.10以降、新しいソリューションは無効化ではなくブロックされているようです。

# echo mask > /sys/firmware/acpi/interrupts/gpe17

または、起動パラメータを使用してくださいacpi_mask_gpe=0x17(Debian / Ubuntuでは、それを/etc/default/grub行に追加してGRUB_CMDLINE_LINUX_DEFAULT実行しupdate-grubて再起動します)。

詳細については、次を参照してください。Linuxカーネルコミット9c4aa1eeLinux 4.10-rc3 で初めてマージされ、バグレポートがここにリンクされています。

答え3

以前のMacbook 2006でLubuntu 20.10、5.8カーネルを実行するのと同じ問題があります。私の場合、Peter Noweeの提案を使用することは解決策でした。

acpi_mask_gpe=0x17GRUBに起動パラメータを追加して再起動しました。これは高いCPU使用率の問題を解決します。

このコマンドで間違った点が見つかりました。 grep . -r /sys/firmware/acpi/interrupts/

質問: /sys/firmware/acpi/interrupts/gpe17: 3491042 EN enabled unmasked

答え4

Linux Lite 5.2、MacBook Pro 9.2、Bios 233.0.0.0(2020年6月10日)では、gpe17およびsci割り込みに問題があります。

上記のPeter Noweeのソリューションが動作します!

systemctlを使用してブロックしました。

  1. ファイルの作成/etc/systemd/system/mask-gpe17.service
  2. 次の行をコピーしてファイルを保存します。
    [Unit]
    Description=Mask GPE 17
    
    [Service]
    ExecStart=/usr/bin/bash -c 'echo "mask" > /sys/firmware/acpi/interrupts/gpe17'
    
    [Install]
    WantedBy=multi-user.target
    
  3. ファイルの作成/etc/systemd/system/mask-sci.service
  4. 次の行をコピーしてファイルを保存します。
    [Unit]
    Description=Mask SCI
    
    [Service]
    ExecStart=/usr/bin/bash -c 'echo "mask" > /sys/firmware/acpi/interrupts/sci'
    
    [Install]
    WantedBy=multi-user.target
    
  5. その後、端末でサービスを有効にします。
    sudo systemctl enable mask-gpe17.service
    
    sudo systemctl enable mask-sci.service
    

関連情報