Aller au contenu

[Gentoo] Avancer le lancement de X


Messages recommandés

Bonjour à tous !

Voilà, depuis quelques temps je me demandais comment "accélérer" le démarrage de mon PC (sous Gentoo donc).

Et les quelques actualités sur un EeePC sous Linux démarré en 5 secondes, m'ont fait me replancher sur le problème.

Le fait est que pour beaucoup de gens, un PC est considéré comme démarré lorsqu'on peut saisir son login / mot de passe.

Mais sous Linux, la complexité potentielle du système empêche de lancer X suffisamment tôt.

Par exemple, si votre /home est situé sur un disque réseau, il ne faut pas que vous puissiez vous logger graphiquement avant que ce disque soit monté (préférences du window manager, .xinitrc ...).

Mais dans la majorité des cas, nous n'avons pas de /home distant. On peut donc certainement avancer le lancement de X.

Sous Gentoo, l'ordre de lancement des scripts d'initrd est fait avec les instructions de dépendances situées dans les fichiers /etc/init.d/*, avec en +, un runlevel fixé lorsqu'on ajoute le script dans la séquenece de démarrage (boot, default, nonetwork...).

Une première chose à faire est donc de mettre notre script xdm dans le runlevel 'boot'.

S'il n'y est pas, vous pouvez faire :

# rc-update del xdm
# rc-update add xdm boot

Maintenant, seules les dépendances calculées vont agir sur le moment auquel va se lancer le script.

Pour les voir, il suffit d'ouvrir le fichier /etc/init.d/xdm

On peut y voir dans la section depend() ceci ;

after bootmisc consolefont modules 
after readahead-list ypbind autofs openvpn gpm lircd
before alsasound netmount

Malgré tout, cela fait lancer le script après les requêtes DHCP des cartes réseau.

Ce qui peut être très ennuyeux, surtout si on change de réseau et qu'une des requêtes DHCP n'aboutira peut être pas.

Notre but sera donc lancer ce script avant ces requêtes qui ne nous sont pas utiles pour nous logger (puisque notre /home est local).

Néanmoins, placer trop tôt le script a pour effet radical de ne pas charger le DM (j'utilise slim).

Après pas mal de tests infructeux de différentes instrcutions before, la première qui fonctione chez moi est :

before termencoding

Remplacez la section originale par celle-ci pour gagner au minimum quelques secondes de boot ou au mieux plusieurs dizaines de secondes si vous avez des requêtes DHCP qui n'aboutiront pas.

En espérant que ça aura intéressé quelqu'un :chinois:

Lien vers le commentaire
Partager sur d’autres sites

En parlant de diminuer le temps de lancement d'un PC, j'ai creusé un peu le dossier - sous Ubuntu mais ça pourrait faire pareil sous Gentoo que j'ai pratiquée pendant 2 ans.

En fait à l'origine je voulais montrer à un client un laptop qui boote super vite et à l'image de sa boite ... son logo en bootsplash ça l'a bluffé

J'ai donc bricolé avec bootchart pour savoir ce qui prenait le temps :

- DHCP ... les scripts bloquants avec des timeout de 15s, merci ... j'ai donc plutôt envisagé de faire moi-même mes scripts de détection réseau correspondant à mes confs : filaire au boulot ou Wifi chez moi. mais c'est un peu crado j'hésite à le publier :transpi:

- modprobe ... gourmand, intervient plusieurs fois et est bloquant. Je pense faire le ménage dans /lib/modules ...

- lrm-video : sympa, ça teste pour toi si ton driver graphique proprio est à jour ... en bricolant /etc/modprobe.d/lrm-video on peut faire en sorte qu'il s'intéresse tout de suite à TON driver

- readahead : là c'est un cas intéressant. Il prend 14s à lui tout seul, mais un read-ahead mieux configuré m'a permis de gagner 25s en temps total de démarrage (au final je suis passé de 95s à 48s avant d'avoir le greeter). Y'a un tuto en VO sur les forums ubuntu. Comme je suis mono-user j'ai même mis mon environnement de travail en read-ahead, ça dépote bien l'ouverture instantanée de firefox ;)

Précisions sur le laptop, pas un avion non plus

Dell D810 : Pentium M 1,7 GHz, 1,2Go de RAM, disque 40 Go 5400t, Xubuntu Hardy

(par contre pour la démo client, un Core2Duo avec 2 Go et SSD, plein la vue il en a pris :) )

Lien vers le commentaire
Partager sur d’autres sites

Bah moi vu que j'ai avancé le moment où X se lance, je ne suis plus embêté par les requêtes DHCP.

Pour les modules c'est pareil, mon noyau est compilé avec uniquement ce qui est nécessaire et en statique.

Concernant lrm-video, bah sous Gentoo en paramétrant la variable VIDEO_CARDS, je n'ai en théorie que le driver Nvidia d'installé (avec peut être le VESA mais bon ...).

Je jetterai un oeil du côté de readahead effectivement.

Mais en tout cas, une fois que Grub lance le boot, j'arrive à l'écran de login en moins de 30s.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...