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/gpe17
Linux 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=0x17
GRUBに起動パラメータを追加して再起動しました。これは高い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を使用してブロックしました。
- ファイルの作成
/etc/systemd/system/mask-gpe17.service
- 次の行をコピーしてファイルを保存します。
[Unit] Description=Mask GPE 17 [Service] ExecStart=/usr/bin/bash -c 'echo "mask" > /sys/firmware/acpi/interrupts/gpe17' [Install] WantedBy=multi-user.target
- ファイルの作成
/etc/systemd/system/mask-sci.service
- 次の行をコピーしてファイルを保存します。
[Unit] Description=Mask SCI [Service] ExecStart=/usr/bin/bash -c 'echo "mask" > /sys/firmware/acpi/interrupts/sci' [Install] WantedBy=multi-user.target
- その後、端末でサービスを有効にします。
sudo systemctl enable mask-gpe17.service sudo systemctl enable mask-sci.service