Forum Linux.mageia Problème de sortie d'hibernation (HDMI et réseau)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
0
7
août
2019

J'utilise un portable entre un bureau pro (écran HD), un bureau perso (écran 1680*1200) et une télé. En général, je réveille le PC en l'ayant branché sur un écran différent.
Et très souvent la configuration HDMI est ratée. Il suffirait de garder la même : 2 écrans côte à côte. Mais souvent le PC principal a un écran noir ou une résolution écran correspondant au 1680 (avec le bas coupé donc). Il faut brancher/débrancher le câble HDMI, etc… et avec rien sur l'écran, c'est compliqué. Si au moins l'écran du PC était toujours le principal au réveil, cela réglerait 80% des problèmes (mode clone ou 2 écrans)

Le son ne suit pas toujours non plus. Il faut souvent refaire le réglage à la main dans volume audio > avancé > Profil.

Il y a aussi la configuration réseau, le truc ne fait pas tout seul ifdown wlo1 && ifup wlo1 quand le wifi change entre pro et perso.Il faut même faire la même chose pour le réseau filaire alors que j'ai toujours branché un câble Ethernet n'importe comment dans le passé, et cela marchait.

  • # Workaround, etc...

    Posté par  . Évalué à 3. Dernière modification le 07 août 2019 à 10:28.

    Bon … on va passer sur le côté assez illisible de ton post, l'absence de point d'interrogation et de question clairement formulée, et le manque flagrant de détail quant à ton setup (gestionnaire de fenêtre/bureau ? gestionnaire de réseau ?? Méthode utilisée pour déclencher l'hibernation) pour essayer de te fournir un début d'aide …

    J'utilise un portable entre un bureau pro (écran HD), un bureau perso (écran 1680*1200) et une télé. En général, je réveille le PC en l'ayant branché sur un écran différent.
    Et très souvent la configuration HDMI est ratée. Il suffirait de garder la même : 2 écrans côte à côte. Mais souvent le PC principal a un écran noir ou une résolution écran correspondant au 1680 (avec le bas coupé donc). Il faut brancher/débrancher le câble HDMI, etc… et avec rien sur l'écran, c'est compliqué. Si au moins l'écran du PC était toujours le principal au réveil, cela réglerait 80% des problèmes (mode clone ou 2 écrans)

    C'est un peu logique en même temps… tu changes la configuration hardware a la volée, faut pas s'étonner que ça marche pas super.
    Personnellement,j'ai un problème similaire avec ma machine du boulot. Je l'ai résolu en désactivant l'écran externe avant la mise en veille via un petit script que je m'étais codé pour l'occasion.
    Tu dois pouvoir aussi le faire directement dans le script shell en charge de "trigger" l'hibernation (/etc/acpi) via la commande xrandr.

    Le son ne suit pas toujours non plus. Il faut souvent refaire le réglage à la main dans volume audio > avancé > Profil.

    Ca, ça ressemble plus à un bug de ton pilote audio…
    Pareil, tu dois pouvoir scripter la remise en "état" de ta configuration dans les scripts ACPI.

    Il y a aussi la configuration réseau, le truc ne fait pas tout seul ifdown wlo1 && ifup wlo1 quand le wifi change entre pro et perso.Il faut même faire la même chose pour le réseau filaire alors que j'ai toujours branché un câble Ethernet n'importe comment dans le passé, et cela marchait.

    C'est pareil … Au final, si avant la mise en veille et après la mise en veille ton chip ethernet a toujours un "link", comment veux tu qu'il détecte qu'il doit faire un ifdown puis ifup ???
    Concernant le wifi, même combat… Il faut probablement attendre qu'un timeout soit levé disant "y a plus l'AP" pour déclencher le processus désactivation du lien/recherche d'un autre AP.

    Comme je te l'ai suggéré pour ton soucis d'écran, je pense qu'une desactivation du réseau "propre" lors de l'hibernation peut être une bonne idée…

    EDIT:
    Sur ma debian, c'est le script /usr/sbin/pm-hibernate qui se charge de l'hibernation.
    En lisant ce script, j'ai remarqué ça:

    # run the sleep hooks
    log "$(date): Running hooks for $ACTION."
    if run_hooks sleep "$ACTION $METHOD"; then
            # Sleep only if we know how and if a hook did not inhibit us.
        log "$(date): performing $METHOD"
        sync
        "do_$METHOD" || r=128
        log "$(date): Awake."
    else
        log "$(date): Inhibit found, will not perform $METHOD"
    fi
    log "$(date): Running hooks for $REVERSE"
    # run the sleep hooks in reverse with the wakeup action
    if run_hooks sleep "$REVERSE $METHOD" reverse; then
            log "$(date): Finished."
    else 
            exit $((r+1))
    fi

    J'en déduis donc qu'il y a moyen de définir des hooks te permettant de mettre au carré ton système avant et après l'hibernation.
    Je te laisse creuser pour savoir ou et comment définir ces hooks.

    • [^] # Re: Workaround, etc...

      Posté par  (site web personnel) . Évalué à 4.

      Bon … on va passer sur le côté assez illisible de ton post, l'absence de point d'interrogation et de question clairement formulée, et le manque flagrant de détail quant à ton setup (gestionnaire de fenêtre/bureau ? gestionnaire de réseau ?? Méthode utilisée pour déclencher l'hibernation) pour essayer de te fournir un début d'aide …

      Je ne vois pas le rapport avec le problème en question. Fermer l'écran ou cliquer sur hiberner déclenche la même chose.

      C'est un peu logique en même temps…

      Non, cela ne l'est pas du tout. Windows gère ça très bien. Et c'est très chiant : il n'y aucune raison que cela ne soit pas automatique et correct.

      Comme je te l'ai suggéré pour ton soucis d'écran, je pense qu'une desactivation du réseau "propre" lors de l'hibernation peut être une bonne idée…

      Oui bidouiller je sais faire, c'est surtout mageia qui devrait corriger ses scripts de base.

      "La première sécurité est la liberté"

      • [^] # Re: Workaround, etc...

        Posté par  (site web personnel) . Évalué à 3.

        Je ne vois pas le rapport avec le problème en question. Fermer l'écran ou cliquer sur hiberner déclenche la même chose.

        Bon en fait, je n'ai pas trouvé si mageia utilise systemd ou pas pour ça. L'idée d'un startup hook serait sympa pour forcer la mise à jour réseau + le mode clone en hdmi.

        "La première sécurité est la liberté"

        • [^] # Re: Workaround, etc...

          Posté par  . Évalué à 3.

          A ma connaissance, c'est totalement agnostique du processus d'init… donc oublie systemd.

          Sur ma debian, ça se passe via le paquet pm-utils.

          Il semblerait que les hooks se déclarent dans /etc/pm/sleep.d et le premier argument contient l'action ( suspend | hibernate | resume | thaw)
          Il y a des hooks disponible dans /usr/lib/pm-utils/sleep.d dont un 99video.

          Libre à toi donc de poser un script dans /etc/pm/sleep.d qui, si $1 vaut "hibernate", coupe le réseau proprement, désactive l'écran externe et, si $1 vaut "resume" réactive le réseau et configure l'écran comme tu veux.

          J'imagine qu'un mécanisme similaire si ce n'est identique existe pour mageia…

          Et note que ça n'a rien d'un bidouillage puisque c'est un mécanisme supporté nativement par le système.

      • [^] # Re: Workaround, etc...

        Posté par  . Évalué à 3.

        Je ne vois pas le rapport avec le problème en question. Fermer l'écran ou cliquer sur hiberner déclenche la même chose.

        C'est pas parce que tu ne le vois pas qu'il n'y en a pas.
        Tu pourrais aussi faire un bête echo hibernate > /sys/power/state qui, pour le coup, by-passerait l'intégralité des scripts acpi …

        Non, cela ne l'est pas du tout. Windows gère ça très bien. Et c'est très chiant : il n'y aucune raison que cela ne soit pas automatique et correct.

        Et bien réinstalle windows … ou fixe le bug.

        Oui bidouiller je sais faire, c'est surtout mageia qui devrait corriger ses scripts de base.

        Ou comme dis plus haut, tu peux ouvrir un bug sur le bugtracker de Mageia et y pousser un correctif.

  • # Mode clone du 2nd écran !

    Posté par  (site web personnel) . Évalué à 3.

    Je suis tombé dans un mode encore plus bizarre : au réveil, je suis en mode clone mais du 2ième écran donc sans le widget qui permet de changer la configuration. C'est très très chiant.

    En appuyant sur la touche F8 (icone d'écran sur mon Dell), j'ai le widget de choix qui apparait \o/ Si j’appuie sur bureau étendu, j'ai 2 second écrans o_O

    kscreen-doctor est censé aider mais en fait non, il indique que l'écran eDP1 est bien "primary" or ce n'est pas le cas.

    "Alt gr + Print Screen + K" permet de tuer le serveur X, j'ai du me reloger, j'ai retrouvé mes navigateurs mais pas mon kconsole.

    "La première sécurité est la liberté"

    • [^] # Re: Mode clone du 2nd écran !

      Posté par  (site web personnel) . Évalué à 1.

      Il y a un bouton pour changer le réglage des écrans. Un ou plusieurs appuis sur celui-ci ne permet pas de s'en sortir?
      Il se trouve sur une des touche [F*], il faut appuyer sur la touche [fn] en même temps

      Un LUG en Lorraine : https://enunclic-cappel.fr

      • [^] # Re: Mode clone du 2nd écran !

        Posté par  (site web personnel) . Évalué à 3. Dernière modification le 10 août 2019 à 11:22.

        Oui, c'est sur la touche F8 dont je parle dans le commentaire. Cela ne fonctionne qu'à moitié.

        J'ai l'impression que la mise en veille avec le hdmi branché, puis un réveil avec un autre écran se passe mal, (même si la configuration est strictement identique : un deuxième écran full hd).

        "La première sécurité est la liberté"

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.