数週間前に2015年半ば(11,4)のMacbook ProでUbuntu Desktop 14.04とMac OS 10.10.4(Yosemite)をデュアルブートすることができました。何らかの理由で、マシンはシャットダウン時およびスタンバイ時にハングします。具体的には:
マシンにシャットダウンするよう指示する(例:Sudoの電源オフ、Sudoのシャットダウンなど)と、最後の行「System will now halt。」まで通常のシャットダウンルーチンが発生します。ここでシステムがフリーズし、電源を切る唯一の方法は、ハードシャットダウンのために電源ボタンを数秒間手動で押し続けることです。
マシンをスタンバイ状態にすると、マシンは黒い画面になり、応答しなくなります。それを元に戻す唯一の方法は、ハードシャットダウンのために電源ボタンを数秒間押し続けることです。マシンを再起動した後、再開時に「システムエラーが検出されました」という通知が表示されます。
いくつかの関連するメモ:
MBPは統合されたIntel iris proとグラフィックス用のAMD Radeon R9 M370Xコンボを実行しており、私はfglrx-updatesの専用ドライバーを使用しています。 Ubuntuの以前のバージョンで関連しているように見える他のケースから、問題はプロプライエタリなグラフィックスドライバーに起因することを知っています。ただし、オープンXOrgドライバーに切り替えてapt-get fglrx-updatesをパージしても、どちらの問題も解決しません。
スタンバイの代わりに休止状態にしようとすると、ディスプレイは元に戻り、しばらくしてからデスクトップに戻ります(休止状態から復帰したかのように)。
リブートは正常に機能します。実際、Ubuntuからマシンでクリーンシャットダウンを取得できる唯一の方法は、再起動してrEFIndからシャットダウンするか、OS Xで起動してシャットダウンすることです。
どのログが投稿するのが最も理にかなっているのかわかりませんが(質問するのは初めてです)、誰かが洞察を持っているなら、できるだけ早く正しいものを投稿してもらえると嬉しいです。
UPDATE 1:実際に画面をスタンバイ状態にすると、画面がオフになり、すぐにオンになり、再びオフになってハングします。 Ubuntuに戻るときに受け取るシステムエラーは次のとおりです。
ProblemType: KernelOops
Annotation: This occured during a previous suspend and prevented it from resuming properly.
Architecture: AMD64
Date: Thu Sep 10 22:50:55 2015
DistroRelease: Ubuntu 14.04
ExecutablePath: /usr/share/apport/apportcheckresume
ExecutableTimestamp: 1439395460
Failure: suspend/resume
InterpreterPath: /usr/bin/python3.4
Package: linux-image-3.19.0-25-generic 3.19.0-25.26~14.04.1
また、以下に睡眠ログを添付しました。
Initial commandline parameters:
Thu Sep 10 22:50:05 EDT 2015: Running hooks for suspend.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change suspend suspend:
/usr/lib/pm-utils/sleep.d/000kernel-change suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000record-status suspend suspend:
/usr/lib/pm-utils/sleep.d/000record-status suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging suspend suspend:
Linux fruit 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Module Size Used by
nvram 16384 0
msr 16384 0
btusb 40960 0
joydev 20480 0
bcm5974 20480 0
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 450560 3 vboxnetadp,vboxnetflt,vboxpci
xt_CHECKSUM 16384 1
iptable_mangle 16384 1
ipt_MASQUERADE 16384 1
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
iptable_nat 16384 1
nf_conntrack_ipv4 16384 1
nf_defrag_ipv4 16384 1 nf_conntrack_ipv4
nf_nat_ipv4 16384 1 iptable_nat
nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack 106496 4 nf_nat,nf_nat_ipv4,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
xt_tcpudp 16384 5
bridge 110592 0
stp 16384 1 bridge
llc 16384 2 stp,bridge
iptable_filter 16384 1
ip_tables 28672 3 iptable_filter,iptable_mangle,iptable_nat
x_tables 36864 6 xt_CHECKSUM,ip_tables,xt_tcpudp,ipt_MASQUERADE,iptable_filter,iptable_mangle
applesmc 20480 0
input_polldev 16384 1 applesmc
x86_pkg_temp_thermal 16384 0
intel_powerclamp 20480 0
coretemp 16384 0
kvm_intel 151552 0
kvm 479232 1 kvm_intel
brcmfmac 278528 0
brcmutil 16384 1 brcmfmac
lpc_ich 24576 0
cfg80211 524288 1 brcmfmac
bdc_pci 16384 0
mei_me 20480 0
mei 90112 1 mei_me
sbs 16384 0
sbshc 16384 1 sbs
Apple_gmux 16384 0
mac_hid 16384 0
snd_hda_codec_cirrus 20480 1
snd_hda_codec_generic 69632 1 snd_hda_codec_cirrus
snd_hda_codec_hdmi 53248 1
snd_hda_intel 32768 10
snd_hda_controller 32768 1 snd_hda_intel
snd_hda_codec 143360 5 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller,snd_hda_codec_cirrus
snd_hwdep 20480 1 snd_hda_codec
fglrx 12460032 127
snd_pcm 106496 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 32768 2 snd_pcm,snd_seq
snd 86016 31 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_cirrus
Apple_bl 16384 1 Apple_gmux
AMD_iommu_v2 20480 1 fglrx
soundcore 16384 2 snd,snd_hda_codec
shpchp 40960 0
bnep 20480 2
rfcomm 69632 0
bluetooth 491520 11 bnep,btusb,rfcomm
binfmt_misc 20480 1
parport_pc 32768 0
ppdev 20480 0
lp 20480 0
parport 45056 3 lp,ppdev,parport_pc
nls_iso8859_1 16384 1
dm_crypt 24576 1
hid_generic 16384 0
hid_Apple 16384 0
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
aesni_intel 172032 2
aes_x86_64 20480 1 aesni_intel
lrw 16384 1 aesni_intel
gf128mul 16384 1 lrw
glue_helper 16384 1 aesni_intel
ablk_helper 16384 1 aesni_intel
cryptd 20480 4 ghash_clmulni_intel,aesni_intel,ablk_helper
uas 24576 0
usb_storage 69632 1 uas
ahci 36864 3
usbhid 53248 0
libahci 32768 1 ahci
hid 110592 3 hid_generic,usbhid,hid_Apple
video 20480 1 Apple_gmux
total used free shared buffers cached
Mem: 16306696 1188872 15117824 22748 47276 365684
-/+ buffers/cache: 775912 15530784
Swap: 4194300 0 4194300
/usr/lib/pm-utils/sleep.d/00logging suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00powersave suspend suspend:
/usr/lib/pm-utils/sleep.d/00powersave suspend suspend: success.
Running hook /etc/pm/sleep.d/10_grub-common suspend suspend:
/etc/pm/sleep.d/10_grub-common suspend suspend: success.
Running hook /etc/pm/sleep.d/10_unattended-upgrades-hibernate suspend suspend:
/etc/pm/sleep.d/10_unattended-upgrades-hibernate suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/49tlp suspend suspend:
/usr/lib/pm-utils/sleep.d/49tlp suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/50unload_alx suspend suspend:
/usr/lib/pm-utils/sleep.d/50unload_alx suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/60_wpa_supplicant suspend suspend:
Failed to connect to non-global ctrl_ifname: (null) error: No such file or directory
/usr/lib/pm-utils/sleep.d/60_wpa_supplicant suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/75modules suspend suspend:
/usr/lib/pm-utils/sleep.d/75modules suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/90clock suspend suspend:
/usr/lib/pm-utils/sleep.d/90clock suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend:
/usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95anacron suspend suspend:
stop: Unknown instance:
/usr/lib/pm-utils/sleep.d/95anacron suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95hdparm-apm suspend suspend:
/usr/lib/pm-utils/sleep.d/95hdparm-apm suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/95led suspend suspend:
/usr/lib/pm-utils/sleep.d/95led suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend:
ATI Catalyst driver detected, not using quirks.
/usr/lib/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend:
kernel.acpi_video_flags = 0
/usr/lib/pm-utils/sleep.d/99video suspend suspend: success.
Running hook /etc/pm/sleep.d/novatel_3g_suspend suspend suspend:
/etc/pm/sleep.d/novatel_3g_suspend suspend suspend: success.
Thu Sep 10 22:50:06 EDT 2015: performing suspend
UPDATE 2:この問題はUbuntuを超えて広がる可能性があるようです。デバッグを開始する方法がわかりません。何かご意見は??
https://forums.gentoo.org/viewtopic-p-7772846.html?sid=7ab6dd35c3dfc7a38a2c1b02edb15044
これは現在、最新のメインラインLinuxカーネル内のMacbookPro 11,4および11,5で文書化された問題であることがわかりました(これを書いている時点では4.6まで考えています)。カスタムカーネルのパッチ適用/コンパイルが必要な回避策があります。 https://bugzilla.kernel.org/show_bug.cgi?id=103211 のコメント#172にあります。具体的には、
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index ee72ebe..d3ec833 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2775,6 +2775,13 @@ static void quirk_hotplug_bridge(struct pci_dev *dev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_HINT, 0x0020, quirk_hotplug_bridge);
+static void quirk_hotplug_bridge_skip(struct pci_dev *dev)
+{
+ dev->is_hotplug_bridge = 0;
+}
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8c10, quirk_hotplug_bridge_skip);
+
/*
* This is a quirk for the Ricoh MMC controller found as a part of
* some mulifunction chips.
コメントの中から、Linuxカーネルの異なる4.Xバリエーションを使用してUbuntu 14.04および16.04で実際に機能することを少数の人々が確認しているようです。私は今16.04にこれをテストしており、すべてが正常に機能する場合、この答えを受け入れます。他の誰かが以前のカーネルリリース(3.X)で14.04にこのパッチを確認したい場合は、以下にコメントしてください。
UPDATE:これは、カーネルv4.4.0-28-genericを使用するUbuntu 16.04で機能することを確認できます。次の手順を実行しました。
すべてが正常に機能しているようです。
私は https://joshtronic.com/2017/03/13/getting-suspend-in-linux-working-on-a-macbook-pro/ で解決策を見つけました-私のために働いたもの(16.04LTS)、次を/etc/rc.local
に追加していました
#!/bin/sh -e
echo LID0 > /proc/acpi/wakeup
echo XHC1 > /proc/acpi/wakeup
exit 0
ただし、ファイルに追加する前に手動でテストすることをお勧めします。これは、Sudo -i
に続けて個々の行を実行することで実行できます。
echo LID0 > /proc/acpi/wakeup
は、LID0
でウェイクアップが発生するかどうかを単純に反転します。
悲しい副作用は、蓋を開けるとコンピューターの電源が入らなくなることです