web-dev-qa-db-fra.com

Suspendre et arrêter le blocage sur Macbook Pro 11,4

Je viens tout juste de réussir à obtenir un double démarrage d'Ubuntu Desktop 14.04 et de Mac OS 10.10.4 (Yosemite) sur mon Macbook Pro mi-2015 (11,4) il y a quelques semaines. Pour une raison quelconque, la machine se bloque à l'arrêt et en veille. Plus précisément:

  • Dire à la machine de s’éteindre (par exemple, Sudo Power Off, Sudo maintenant, etc.) provoque la routine d’arrêt normale jusqu’à la dernière ligne "Le système va maintenant s’arrêter". Une fois arrivé, le système se bloque et la seule façon de l’éteindre est de maintenir manuellement le bouton d’alimentation enfoncé pendant quelques secondes pour un arrêt complet.

  • Dire à la machine de se mettre en veille provoque l'affichage d'un écran noir qui ne répond plus. Le seul moyen de le ramener est de maintenir le bouton d'alimentation enfoncé pendant quelques secondes pour un arrêt complet. Une fois la machine sauvegardée, une notification "Erreur système détectée" s'affiche à la reprise.

Quelques notes pertinentes:

  • Le MBP exécute un programme intégré d’intell iris pro et un combo AMD Radeon R9 M370X pour les graphiques, et j’utilise le pilote propriétaire de fglrx-updates. Je sais d’autres cas apparemment liés dans des versions antérieures d’Ubuntu, que le problème provient du pilote graphique propriétaire. Cependant, revenir au pilote XOrg ouvert et à apt-get purging fglrx-updates ne résout aucun des problèmes.

  • Si j'essaie d'hiberner au lieu d'être en veille, l'écran revient en arrière et revient quelques instants plus tard sur le bureau (comme s'il sortait de l'hibernation).

  • Le redémarrage fonctionne bien. En fait, la seule façon d'obtenir un arrêt complet de la machine à partir d'Ubuntu est de redémarrer et de s'arrêter à partir de rEFInd ou de démarrer sous OS X, puis de s'arrêter.

Je ne sais pas ce que les journaux ont le plus de sens pour poster (c’est la première fois que je pose une question), mais si quelqu'un a des idées, je serais heureux d’obtenir les bonnes notes postées dès que possible.

UPDATE 1: En le mettant en veille, l'écran s'éteint, puis s'allume presque immédiatement, puis s'éteint à nouveau et se bloque. L'erreur système que je reçois lors de mon retour sur Ubuntu est la suivante:

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

J'ai également joint le journal de sommeil ci-dessous.

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: Il semble que ce problème dépasse les limites d'Ubuntu. Je ne sais pas comment commencer à le déboguer. Des pensées??

https://forums.gentoo.org/viewtopic-p-7772846.html?sid=7ab6dd35c3dfc7a38a2c1b02edb15044

https://bbs.archlinux.org/viewtopic.php?id=199388

13
hopeburnsbright

Il s’avère que c’est maintenant un problème documenté avec les MacbookPro 11,4 et 11,5 dans le dernier noyau Linux principal (je pense jusqu’à la version 4.6 au moment de la rédaction de cet article). Il existe une solution de contournement qui nécessite de patcher/compiler un noyau personnalisé. Il se trouve dans le commentaire n ° 172 sur https://bugzilla.kernel.org/show_bug.cgi?id=103211 . Plus précisément,

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.

D'après les commentaires, il semblerait qu'une poignée de personnes aient confirmé que cela fonctionnait bien dans Ubuntu 14.04 et 16.04 avec différentes variantes 4.X du noyau Linux. Je teste ceci maintenant sur 16.04, et accepterai cette réponse si tout fonctionne bien. Si quelqu'un d'autre souhaite confirmer ce correctif le 14.04 avec une version antérieure du noyau (3.X), veuillez commenter ci-dessous.

UPDATE: Je peux confirmer que cela fonctionne dans Ubuntu 16.04 avec le noyau v4.4.0-28-generic. J'ai fait les étapes suivantes:

Tout semble fonctionner comme il se doit.

7
hopeburnsbright

J'ai trouvé une solution à https://joshtronic.com/2017/03/13/getting-suspend-in-linux-working-on-a-macbook-pro/ - ce qui a fonctionné pour moi (on 16.04LTS), ajoutait ce qui suit à /etc/rc.local

#!/bin/sh -e
echo LID0 > /proc/acpi/wakeup
echo XHC1 > /proc/acpi/wakeup
exit 0

Je recommanderais cependant de tester ceci manuellement avant d’ajouter au fichier. Cela peut être fait en exécutant Sudo -i suivi des lignes individuelles.


echo LID0 > /proc/acpi/wakeup bascule simplement si LID0 doit provoquer un réveil ou non.


Un triste effet secondaire est que l'ordinateur ne s'allumera plus lorsque le couvercle sera ouvert

0
RasmusWL