Voici comment mettre en veille son PC ! [ Suspend 2 + Hibernate ] - Installation - Linux et OS Alternatifs
Marsh Posté le 08-05-2005 à 20:01:58
Marsh Posté le 08-05-2005 à 20:03:26
Marsh Posté le 08-05-2005 à 20:07:33
Super initiative
Marsh Posté le 08-05-2005 à 20:09:49
content de vois que je me suis pas cassé le cul pour rien
Marsh Posté le 08-05-2005 à 20:53:00
udok a écrit : content de vois que je me suis pas cassé le cul pour rien |
Sisi, c'est nul ce truc!
Chez toi ça marche avec l'agp nvidia (NvAGP 1)?
Si oui je re-re-re-re-ressaierai un week-end prochain.
Marsh Posté le 08-05-2005 à 20:58:51
fl0ups a écrit : Sisi, c'est nul ce truc! |
fl0ups a écrit : Chez toi ça marche avec l'agp nvidia (NvAGP 1)? |
j'ai dit que non dans le premier message !
mais apparemment je suis un oiseau rare, c'est censé marché avec le nvagp à 1 ... je comprends pas, c'est le seul problème que j'ai
mais tente le coup toi, normalement c'est censé passé
y-a aussi une histoire de version de kernel et de driver nvidia comme je l'ai dit dans le premier post
à savoir que le meilleur coup semble être le duo kernel 2.6.9 + nvidia 6629
mais moi j'avais pas envi de changer de version, d'autant que je joue pas.
Pour infos, chez moi, glxgears me donne :
avec nvagp = 1 : 3800 fps
avec nvagp = 0 avant suspend : 3200 fps
avec nvagp = 0 après resume : 2800 fps
ça gène pas tant qu'on joue pas (par contre si vous jouez, va falloir que vous trouviez le moyen de forcer le nvagp à 1)
Marsh Posté le 09-05-2005 à 02:03:39
http://www.suspend2.net/features
y-a pas grande différence en fait. Vu que c'est la première fois que je tentais le coup, j'ai pris celui dont il me semblait qu'on parlait le plus
m'enfin c'est pas le plus gros du travail
le plus chiant je trouve, c'est la conf d'hibernate et ce qui suit
mais changer entre ce que tu utilises, et ce que je mets là, c'est une ligne à commenter et une autre à décommenter dans le fichier de conf d'hibernate
mais peut être que ça marcherait mieux pour moi et mon pb de nvagp si j'utilisais ton truc.
ça a l'air plus ouvert aussi comme truc, le suspend2. dans le fichier de conf on peut choisir S3, S4 ou S5. Je sais pas à quoi sert S5 mais je me suis dis, quite à en prendre un, autant qu'il me laisse des possibilités et du choix, j'aviserais quand j'en saurais plus
sinon avec ta commande seule, il y a plein de truc à gérer autour qui sont géré automatique avec le script hibernate, donc c'est plutot une bonne idée de l'utiliser
y-a deux trucs qui ont l'air bien aussi avec le suspend2, mais vu que j'ai pas testé, je peux pas affirmer :
- l'image est compressé, ce qui évite les pb de manque de place en mémoire qu'on certaines personnes apparemment.
- y-a une interface graphique qui supporte le bootsplash et le fbsplash et qui montre ce qui se passe, ce qui est plutot pratique (je sais pas comment c'est fait avec ta méthode)
EDIT : je viens de trouver une page qui concentre les arguments et ceux qui les soutiennent pour intégrer le suspend2 à la branche principale du kernel :
http://wiki.suspend2.net/FeatureUserRegister
Marsh Posté le 09-05-2005 à 02:36:40
ben mon truc me plante la machine 2 fois sur 3, donc si y a mieux...
Marsh Posté le 09-05-2005 à 08:55:23
C'est vrai que c'est pas encore super stable comme truc, mais sur mon portable ça marche plutôt bien.
Par contre
Si ça intéresse du monde, il est possible de lancer la commande hibernate à la suite d'un évenement ACPI comme la fermeture du couvercle d'un portable, c'est plutôt assez pratique
Par exemple, /etc/acpi/events/default.sh contient :
|
et /etc/acpi/default.sh contient :
|
Marsh Posté le 09-05-2005 à 09:47:07
Pour moi ça marche vraiment très très bien : je reboote vraiment mon portable une fois par mois par acquis de conscience pour qu'il me fasse un petit fsck mais sinon c'est comme si j'avais un ordi tournant depuis 30 jours à raison de 8-12h/jour. Plus besoin de recharger les applis, démarrage bcp plus rapide, que du bonheur.
Marsh Posté le 09-05-2005 à 11:33:42
Merci mais ça a l'air bien compliqué tout ça
Par contre avec la méthode normal (ie, echo 3 > /proc/acpi/sleep), je ne peux pas le faire puisque je n'ai pas le fichier sleep si quelqu'un sait pourquoi... pourtant j'ai compilé le noyau avec l'ACPI uniquement donc je vois pas trop...
Marsh Posté le 09-05-2005 à 17:52:58
onizuka_sensei a écrit : Merci mais ça a l'air bien compliqué tout ça |
faut activer les sleep states
Marsh Posté le 09-05-2005 à 18:31:35
onizuka_sensei a écrit : Merci mais ça a l'air bien compliqué tout ça |
C'est pas compliqué, c'est long
et c'est long parce que j'explique tout en détail (tous les pb que j'ai pu rencontré, etc...)
et ta méthode n'est pas plus simple, c'est juste que ce n'est qu'une petite parti de ce qu'il faut faire pour mettre son pc en veille, et c'est bien pour ça que ça marche pas chez toi, tu oublies des choses là
dans ton cas tu as oublié d'activer un truc dans l'acpi (CONFIG_ACPI_SLEEP)
Marsh Posté le 09-05-2005 à 18:32:46
Pour les autres, n'hésitez pas à dire si ça marche pour vous et surtout comment vous avez résolu les pb que vous avez rencontré (si vous en avez rencontré)
Marsh Posté le 10-05-2005 à 00:52:59
J'ai essayé swsusp mais ça ne marche pas (il veut pas du suspend to ram, et même en suspend to disk, les nvidia ne passent pas)
et pour la gestion via acp (/proc/acpi/sleep), c'est marqué deprecated, donc j'ai pas cherché plus loin
voila donc pour moi y-a que suspend2 qui vaille le coup
Marsh Posté le 10-05-2005 à 17:54:58
y-en a qui arrive à activer l'agp sur leur nvidia ? moi j'arrive pas, ça plante si j'essaie de l'activer et que je mets en veille.
Le pb c'est que c'est plus chiant que prévu alors j'aimerais bien pouvoir l'activer
Marsh Posté le 10-05-2005 à 18:42:46
bonjour
très bien tout ca. J'ai moi même installé le Software Suspend 2 il y a quelques temps et je peux donc vous éclairer
ca marche parfaitement chez moi. A noter que :
_il FAUT patcher le driver NVidia, autrement c'est freeze assuré au resume sur les kernel récent (signal ACPI modifié depuis la .10). Ca aurait été plus simple si j'avais lu ce post avant, parce que ce point n'était pas très clair même sur le site officiel et la mailist et j'ai pas mal galéré. Honte a NVidia. Si vous êtes pas sur de votre coup éssayez en premier avec le driver "nv", ca fonctionne aussi
_c'est quant même relativement plus lent que sous Windows
_il est préférable je pense de désactiver la mise sur disque du cache-disque avec ImageSizeLimit nocache dans hibernate.conf, ca devrait accélérer un peu
_l'ACPI c'est bien beau mais ca veut aussi dire pas d'APM, et donc pas de véritable mode "sleep" qui fonctionne (le premier qui me dit que le mode suspend-to-ram marche sur son ACPI j'en fais de la chair à patée). Encore un pas derrière Windows, c'est con, même si ca me fera pas lancer Windows loin de là
_pas forcement besoin d'enlever agpgart du noyau, enfin moi je ne l'ai pas fait, mais le mettre en blacklist d'hotplug est une bonne idée. J'ai NVagp=1 dans le xorg.conf, et évidemment la 3D fonctionne parfaitement
sinon je n'ai pas redémarré mon linux, au sens classique, depuis trèèèès longtemps maintenant alors je peux vous dire que ca marche
enjoy
Marsh Posté le 10-05-2005 à 18:58:33
nico65 :
- c'est pas la faute à nvidia si les devels du kernel sont infoutu de garder les mêmes numéros de signaux d'une version sur l'autre
- le suspend to ram marche sur mon acpi
- c'est quoi ta config matériel ? (moi ça veut pas prendre nvagp=1 )
Marsh Posté le 10-05-2005 à 19:08:28
Bonne initiative que ce topic compatible protocole de Kyoto udok !
Marsh Posté le 10-05-2005 à 19:46:00
ReplyMarsh Posté le 10-05-2005 à 21:32:10
ma config est à base de GeForce Go 5200, c'est un Acer Aspire 1363 (Sempron x86)
le kernel est sorti bien avant le driver de NVIdia, c'est pourquoi je gueule sur NVidia (l'autre raison c'est que j'ai repéré un bug du driver qui peut faire freezer le kernel)
ah part le blacklist d'agpgart je peux pas te dire pourquoi NVagp=1 marche pas chez toi. Quant tu boot en mode 2, le module agpgart ne doit pas être chargé (`lsmod | grep agpgart` vide), ensuite le module nvidia charge le sien mais ca c'est une autre histoire
quant j'active le suspend-to-ram (echo 3 > /proc/acpi/sleep, c'est ca ?) j'ai bien la led "Zz" du laptop qui s'allume mais si j'appuie sur une touche du clavier il rédémarre from scratch
Marsh Posté le 10-05-2005 à 21:51:56
Je peux pas te dire pour ta dernière phrase, j'ai pas testé, c'est marqué deprecated dans le kernel.
mais pour le nvagp=1 qui passe pas chez moi, ça me saoule
Marsh Posté le 10-05-2005 à 22:07:33
Nico65 : tu utilises quelle version pour :
- le kernel
- le suspend 2
- le driver nvidia ?
Marsh Posté le 10-05-2005 à 22:21:56
ça m'ennerve que ça marche pas chez moi !
ça veut dire que le nvagp ne supporte pas aussi bien le nforce2 que ton chipset (c'est un nvidia ? ça serait un comble sinon)
Marsh Posté le 10-05-2005 à 22:33:20
ben non ma carte mère n'est pas une NForce donc pas de NVidia, c'est à base de VIA quelque chose
Marsh Posté le 10-05-2005 à 22:53:43
c'est un comble ça
l'agp de nvidia qui supporte mieux les cartes mères via que les cartes mères nvidia
Marsh Posté le 10-05-2005 à 23:04:09
udok a écrit : kessidilui ? |
Les économies d'énergie toussa quoi (tin, les noobs, ça suit l'actu de loin ).
Marsh Posté le 10-05-2005 à 23:59:59
j_c_p a écrit : Les économies d'énergie toussa quoi (tin, les noobs, ça suit l'actu de loin ). |
bah moi c'est du suspend to ram, et c'est pour remplacer l'extinction totale de la machine, donc je pense plutot que je consommerais un poil plus
Marsh Posté le 11-05-2005 à 13:21:49
Citation : Bonne initiative que ce topic compatible protocole de Kyoto udok ! |
c'est l'équivalent de la veille prolongée sous Windows, pas trop de rapport avec l'énergie
udok : si le but est de mettre le PC en veille, pourquoi utiliser le suspend software (qui met le contenu de la RAM sur le disque, et ensuite utilise l'ACPI pour mettre en veille, rebooter ou arrêter le PC) et pas directement l'ACPI ?
Marsh Posté le 11-05-2005 à 20:03:57
Nico65 a écrit :
|
Je sais pas, c'est marqué deprecated dans le kernel, donc moi j'utilise pas ce qui est deprecated
tu peux me coller ton /proc/driver/nvidia/agp/status ?
Marsh Posté le 11-05-2005 à 22:41:34
tiens nico, j'avais même pas fait gaffe, mais c'est toi là non ? =>
http://www.nvnews.net/vbulletin/showthread.php?t=48929
Marsh Posté le 13-05-2005 à 08:32:27
ouai, j'était aussi sur la mailiste officielle de Software Suspend 2 (sous le nom Nigo, j'ai posté une Success Story) où j'ai posté la solution quant je l'avais trouvé au hasard d'un site déniché par Google (patcher le driver NVidia)... NVnews m'a pas été d'une grande aide (comme si ils pouvaient pas me le dire qu'il fallait patcher le driver ?! et à l'époque pas de patch 7174 en vue), ils avaient qu'à se débrouiller
cat /proc/driver/nvidia/agp/status
Status: Enabled
Driver: NVIDIA
AGP Rate: 8x
Fast Writes: Disabled
SBA: Enabled
Marsh Posté le 13-05-2005 à 11:38:55
Hello, chuis pas super au fait de tout ça mais je vais en avoir besoin. Est-ce qu'il faut de l'ACPI2 ou pas besoin?
Marsh Posté le 13-05-2005 à 11:50:29
Dans le premier message, faudrait corriger le lien de suspend2.net : y a une parenthèse qui traîne et du coup ça chie.
Marsh Posté le 13-05-2005 à 14:49:04
Nico65 a écrit : ouai, j'était aussi sur la mailiste officielle de Software Suspend 2 (sous le nom Nigo, j'ai posté une Success Story) où j'ai posté la solution quant je l'avais trouvé au hasard d'un site déniché par Google (patcher le driver NVidia)... NVnews m'a pas été d'une grande aide (comme si ils pouvaient pas me le dire qu'il fallait patcher le driver ?! et à l'époque pas de patch 7174 en vue), ils avaient qu'à se débrouiller |
ah bah c'est bien possible que ça soit dans un de tes posts sur la ml que j'ai trouvé le patch
j'ai tellement naviguer que je sais plus où j'ai trouvé les infos
bon sinon j'ai pareil que toi dans status ... comprends pas qu'il veuille pas de l'agp chez moi
Marsh Posté le 13-05-2005 à 14:49:46
xouille38 a écrit : Hello, chuis pas super au fait de tout ça mais je vais en avoir besoin. Est-ce qu'il faut de l'ACPI2 ou pas besoin? |
acpi2 ? je connais pas donc j'imagine qu'il n'y en a pas besoin
Goon a écrit : Dans le premier message, faudrait corriger le lien de suspend2.net : y a une parenthèse qui traîne et du coup ça chie. |
ok merci, j'avais pas vu
Marsh Posté le 08-05-2005 à 19:53:41
Intérêt de mettre en veille un PC : C'est bien plus rapide que l'arrêt + démarrage normal de la machine (même si ce n'est pas instantané), mais surtout ça permet de garder ses applications ouvertes et c'est ça le plus appréciable pour moi
Après avoir galérer de longues heures, j'ai finallement réussi à faire fonctionner la mise en veille avec les drivers proprio nvidia.
Ca marche plutôt bien, et vu que c'est pas forcément évident, je voulais partager ce merveilleux moment avec vous .
MISE EN GARDE : Je n'ai personnellement eu aucun problème de perte de données, mais il vaut mieux sauvegarder vaut donner avec de tenter l'expérience.
Je fais ça sur une debian sid, mais ça doit pouvoir marcher sur n'importe quelle distribution.
Mon ordinateur est composée d'une nforce2 et d'une gforce4. Le fonctionnement peut changer d'une configuration matérielle à l'autre (notamment pour la gestion de l'agp comme on le verra plus loin)
Les versions des logiciels mis en oeuvre :
Tout d'abord, une petite remarque, il semblerait que la configuration du BIOS puisse parfois poser problème. Pour ma part j'ai du régler le mode de mise en veille dans le bios sur S1 (c'est à dire désactiver la mise en veille, il ne voulait pas du mode S3 ... bizarre). Si je laissais sur S3, ça suspendait bien, mais au moment de redémarrer (resume), ça restait noir, même au niveau du boot du bios.
Commencer par installer le script hibernate (prenez celui de votre distribution s'il est disponible).
On le configurera plus tard.
COMPILATION DU KERNEL :
Je n'ai pas testé, ce patch a été proposé par riot ici (donc demandé lui si vous voulez plus d'infos) :
http://forum.hardware.fr/forum2.ph [...] =0#t780476
Etapes à suivre :
- activer le software suspend 2
CONFIG_PM=y
CONFIG_SUSPEND2_SWAPWRITER=y
CONFIG_SUSPEND2_LZF_COMPRESSION=y
CONFIG_SUSPEND2_TEXT_MODE=y
CONFIG_SUSPEND2_DEFAULT_RESUME2="/dev/hdaX"
CONFIG_SUSPEND2_CHECK_RESUME_SAFE=y
Pour CONFIG_SUSPEND2_DEFAULT_RESUME2, mettez la partition swap active sur votre machine (taille préconisée : de 1 à 2 fois la taille de votre ram)
Atention : les versions 2.1.8 et antérieure n'ont pas les mêmes noms pour les options, mais ils s'en approchent.
- Il est conseillé de désactiver un certains nombres de choses pour mettre toutes les chances de votre coté (vous pourrez les réactiver dans une compilation ultérieure si vous y tenez). Il s'agit du preempt, du regparm et du 4kstack. Perso je vois pas la différence tant que la music saute pas (et elle saute pas là), et au moins vous serez tranquille en ce qui concerne la stabilité.
- Tout ce qui concerne l'AGPGART doit être enlever du kernel. A priori ça pose de nombreux problèmes si vous souhaitez faire mettre en veille votre nvidia. Préferrez lui plutôt l'agp inégré au driver proprio qui sont de bonnes qualités dans la plupart des cas (NvAGP = 1 dans le fichier de conf de X)
- Enfin, certains drivers ne doivent pas être compilés en dur dans le kernel, mais compilés en tant que module, de manière à pouvoir les décharger avant la mise en veille (parce qu'ils ne sont pas pris en charge correctement). Il s'agit des modules listés dans le fichier /etc/hibernate/blacklisted-modules. A noter que vous pouvez tout de même passer outre en ce qui concerne i8042 (chezmoiçamarche) et le compiler en dur. Tant que vous êtes dans ce fichier, commentez la ligne "nvidia" avec un '#', puisqu'on ne veut pas le décharger (sinon il faudrait arrêter X) et que ça marche bien sans le décharger.
Voilà, c'est fini pour la configuration, vous avez plus qu'à compiler votre noyau et à l'installer.
CONFIGURATION DU SCRIPT HIBERNATE :
J'ai installé le paquet fourni dans la debian sid, et j'ai modifié le fichier de configuration /etc/hibernate/hibernate.conf pour qu'il contienne :
UseSwsusp2 yes
Reboot yes
EnableEscape yes
DefaultConsoleLevel 1
PowerdownMethod 3
Verbosity 0
LogFile /var/log/hibernate.log
LogVerbosity 1
Distribution debian
SaveClock restore-only
UnmountFSTypes vfat
UnmountGraceTime 2
UnloadBlacklistedModules yes
LoadModules auto
DownInterfaces auto
UpInterfaces auto
SwitchToTextMode yes
UseDummyXServer no
Pour savoir à quoi tout ça correspond, lisez la doc.
"Reboot" est à "yes" pour la phase de test, mais il faudra bien sur le mettre à "no" quand vous serez sur que tout marche correctement.
"PowerdownMethod" est à 3 chez moi, ce qui signifie que j'utilise le Suspend To Ram.
DownInterfaces et UpInterfaces ne sont nécessaires que pour les quelques personnes qui doivent décharger leur module réseau (le forcedeth du nforce2 par exemple, qui est listé dans le fichier /etc/hibernate/blacklisted-modules).
CONFIGURATION DE GRUB/LILO :
Vous devez rajouter à votre kernel l'option resume2=/dev/hdaX avec /dev/hdaX votre partition de swap active dont on a parlé tout à l'heure.
PREMIERS TESTS :
Arriver là, je vous conseille de faire un premier jet de test. Pour ça, démarrer en mode single (rajouter l'option single à votre noyau dans lilo ou grub). Puis exécuter le script "hibernate" (il est situé dans /usr/sbin/hibernate, donc si votre PATH est bien paramétré, vous avez juste à tapper "hibernate" sur la ligne de commande et c'est bon).
Vous voyez ce qui se passe. Normalement il est censé redémarrer tout seul puisque "Reboot" est à "yes". En fonction des symptômes, d'inombrables problèmes peuvent survenir, donc demander, ça sera plus simple.
C'est sûrement l'étape la plus chiante et la plus longue. Le problème qui a le plus de risque d'arriver est que ça s'arretera bien (suspend), mais quand moment de redémarrer (resume), ça s'arrête sur le message "load kernel" (ou un truc du genre, là faudra faire reset). Ca veut dire que vous avez un driver incompatible qui n'a pas été déchargé ce qui peut être dû à plusieurs causes :
- soit vous avez laisser en dur dans le kernel un driver qui est listé dans le fichier /etc/hibernate/blacklisted-modules. Auquel cas vous êtes bon pour recompiler votre kernel en mettant ce driver en module (de manière générale, si ce n'est pas déjà le cas, vous devriez avoir les drivers usb, son, réseau, et sans doute d'autres encore, en modules et non en dur dans le kernel).
- soit, plus embêtant, il est incompatible mais pas encore signalé comme tel (donc pas dans le fichier blacklist). Il va alors falloir trouver le coupable en blacklistant les modules les uns après les autres jusqu'à trouver celui qui posait problème. (ça serait bien de le signaler quand vous en trouvez un)
Si ça a bien redémarré et que vous avez retrouvé vos petits, c'est une bonne nouvelle, vous allez pouvoir passer à l'étape suivant.
INSTALLATION DES DRIVERS NVIDIA (proprio) :
Comme je l'ai dit plus haut, il ne faut pas utiliser l'agpgart.
Dans le fichier de configuration de X, vous devez avoir NvAGP = 1.
Dans certains cas, dont le miens, vous devrez mettre NvAGP = 0 (vous verrez bien en testant). Ce n'est pas un problème quand vous ne jouez pas, mais sinon, vous aurez plus qu'à attendre un meilleur support de la part de nvidia.
Avant de compiler les nvidia, vous devez patcher les sources avec ce patch (contre les 7174) :
diff -u -Nru nvidia-kernel.old/nv/nv.c nvidia-kernel.new/nv/nv.c
--- nvidia-kernel.old/nv/nv.c 2005-04-07 04:47:07.000000000 -0500
+++ nvidia-kernel.new/nv/nv.c 2005-04-08 15:35:43.000000000 -0500
@@ -3424,5 +3424,6 @@
switch (state)
{
+ case PM_SUSPEND_STANDBY:
case PM_SUSPEND_MEM:
nv_printf(NV_DBG_INFO, "NVRM: ACPI: received suspend event\n" );
status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
Vous avez plus qu'à compiler et installer le driver.
Vous redémarrez. Vous tapper hibernate et vous voyez si ça marche
Si c'est bon, vous n'avez plus qu'à éditer /etc/hibernate/hibernate.conf et à mettre "Reboot" à "no".
QUELQUES ASTUCES :
J'ai sans doute oublié des trucs, alors demander si vous avez un problème.
Plus on sera nombreux à tester, et plus le développement avancera !
Message édité par udok le 12-02-2006 à 19:28:06
---------------
Non au projet de loi DADVSI ! (droits d'auteurs)