La réponse à cette question change trop rapidement pour qu'on puisse donner une réponse ici. Notons simplement que cette FAQ contient une entrée pour les cartes graphiques : J'ai une carte graphique dernière génération, Section 4.1. Pour les autres composants, il faudra se référer au HOWTO-hardware, dont l'objectif est justement de répondre à cette question.
Il faut désactiver le support UDMA66 du BIOS pour l'installation. Une fois les sources du kernel installées et une recompilation adéquate, on peut faire un petit passage par le BIOS pour réactiver le support UDMA66.
La question est de savoir ce qu'il faut faire pour régler l'horloge du système.
Il existe une une très bonne
doc
sur le sujet, et je ne vais donc pas m'attarder dessus. De
plus, ce n'est pas vraiment une question Debian, alors j'ai assez peu de
remords...
Parfois, on a des doutes sur la bonne santé de sa mémoire vive, et on aimerait bien pouvoir la tester.
Et pour se faire, il suffit d'installer le paquet hwtools
.
Dedans, on trouve un programme nommé memtest86
. Mais ce programme
n'est pas vraiment un programme Linux, car il fait des choses tellement
inhabituelles sur la mémoire qu'il faut le lancer seul en mémoire (ie, sans
système d'exploitation). Ça se fait en rajoutant dans le lilo.conf :
image = /usr/lib/hwtools/memtest86.bin label = memtest
(il faut évidemment relancer lilo pour que les changements soient pris en compte), et ensuite, il faut choisir memtest à l'invite LILO.
Il suffit de modifier le fichier dans lequel vous définissez votre fournisseur d'accès à Internet (normalement, /etc/chatscripts/provider). Il faut modifier la ligne
"" ATZ
On y remplace ATZ (reset brutal) par AT&F1L0M0 (AT&F1 = utilisation de la config standard, L0 = niveau sonore nul, M0 = niveau sonore nul ; un des deux sert avant la connexion, l'autre est pour après). Attention, il n'y a pas de lettre O sur cette ligne, il s'agit de zéros... (dernière remarque : on m'a conseillé d'utiliser F1, mais ça me donnait un comportement instable. Ça va beaucoup mieux avec F0 -- zéro).
Éteindre l'ordinateur est un acte grave... puisqu'il consiste à tuer tous les processus.
On peut procéder à une boucherie - éteindre directement l'unité centrale - à condition de comprendre qu'il s'agit aussi d'un suicide, car votre ordinateur ne pourra jamais redémarrer proprement, et vous vous arracherez les cheveux qui vous restent à essayer de rétablir la situation.
Ou on peut faire « ça » à la Ponce Pilate, en confiant la basse besogne à un programme qui le fera pour nous. Quitte à être lâche, autant être intelligent : il faut choisir un programme qui tuera les processus tout en permettant à votre ordinateur d'être un phénix renaissant à l'identique de ses cendres à la prochaine mise en route.
Un tel programme existe qui possède les moyens de savoir ce qui a été fait, puisqu'il est le père de tous les processus : INIT (processus de pid 1). Si Dieu existe, il a été créé par INIT. Et si INIT existe, c'est parce qu'il est issu du chaos créé par les informaticiens (si vous n'en aviez pas déjà fait l'expérience, vous n'éprouveriez pas le besoin de vous farcir la FAQ...).
Arrêter l'ordinateur (ou le faire redémarrer), cela consiste donc à signifier à INIT de se transformer en Médée, c'est-à-dire d'aller zigouiller tous ces enfants et de faire le ménage.
Donc arrêter l'ordinateur peut se faire de toutes les manières dont on peut passer des paramètres à INIT.
Le seul à avoir le droit de commettre des génocides, c'est le dictateur : root (à quand une nuit du 4 août pour l'abolition des privilèges de root ?). Donc les commandes suivantes ne peuvent être lancées que par le super-utilisateur :
halt
// pour arrêter
reboot
// pour rebooter
shutdown
// pour arrêter en spécifiant différents paramètres
En fait reboot n'est qu'un lien vers halt, et halt se contente d'appeler shutdown.
Et que fait shutdown ? Il appelle INIT en lui disant de basculer vers le niveau d'exécution spécifié :
(Tous niveaux que vous trouverez spécifiés dans /etc/inittab, le fichier de configuration d'INIT).
Ce qui signifie qu'on peut donc faire la même chose en invoquant directement INIT :
Fréquemment, lorsque l'on « dit » à INIT de changer de niveau d'exécution, on
emploie la commande telinit
qui n'est qu'un lien vers
init
. Simple coquetterie en somme.
Quel est donc l'intérêt de halt, reboot, shutdown, telinit
si,
finalement, il ne s'agit que de « commandes de paille » masquant INIT ? Déjà
pour l'intérêt mnémotechnique des commandes. Ensuite, parce que
shutdown
vous permet de spécifier différents paramètres, comme un
délai avant d'appeler init
, la génération d'un message à
l'attention des fléaux d'utilisateurs encore loggés (formulé dans ce style
melliflue qu'affectionnent les dictateurs...). Bref shutdown
habille l'invocation d'init
.
Comme pour toute commande, vous pouvez permettre à d'autres que root de les utiliser. Souvenez-vous quand-même qu'une bonne action ne reste jamais très longtemps impunie, et qu'un dictateur qui fait confiance est un dictateur perdu. Et le monde serait invivable si tout le monde se permettait de faire ce que l'on s'autorise !
Donc ce qui suit ne correspond pas à des conseils, mais juste à des possibilités. Qui sont au nombre de trois :
Seul le dernier choix est, un peu, sensé.
Mais si vous vous obstinez à adopter la première solution, n'oubliez pas qu'il
FAUT qu'init
soit ou paraisse être invoqué par root. Si vous
créez donc un nouveau groupe, disons « shutdown », et que vous lui autorisez
l'exécution de la commande /sbin/shutdown, cela ne fonctionnera que si vous
avez aussi SET-UID la commande :
rwsr-x--- root shutdown
Évidemment, pour éviter d'avoir à remettre ce SUID à chaque mise à jour, on peut utiliser le fichier /etc/suid.conf.
Il existe la possibilité de provoquer un arrêt, un redémarrage ou autre en affectant certaines fonctions à certaines associations de touches du clavier.
En effet, la seule chose fixe se produisant lorsque vous tapez sur votre clavier, c'est l'envoi d'identifiants (en gros les scan-codes) disant quelles sont les touches ou combinaisons de touches frappées. ET C'EST TOUT !
Il est de la responsabilité de l'administrateur de dire au noyau ce qu'il doit déduire de la frappe de ces touches. L'association des touches à des codes est réalisée POUR LA CONSOLE par un fichier image du clavier (keymap) chargé par loadkeys(1). Si quelque chose ne fonctionne pas correctement, un fichier image par défaut est chargé, qui correspond à un clavier qwerty qui vous autorise, en gros, l'ASCII (7 bits). Si quand vous appuyez sur la touche traditionnellement repérée par un 'a' sur votre clavier azerty, la bestiole vous répond 'q', c'est sans doute ce qui se produit.
À noter que X charge un autre fichier, ce qui explique que les indications suivantes ne sont valables que pour la console (et non pas dans un xterm).
Une association courante est celle de ctrl+alt+suppr, ou ctrl+altGr+suppr avec le redémarrage (mais, répétons-le, cela dépend du fichier image du clavier chargé).
La frappe de cette association invoque INIT, qui trouve le programme à appeler
en consultant /etc/inittab
, en l'occurrence la ligne suivante :
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
INIT invoque donc /sbin/shutdown
(qui va l'appeler d'ailleurs)
pour un redémarrage (« -r »), avec appel immédiat de shutdown (« now »), en
demandant à INIT d'attendre 1 seconde (« t1 ») avant de génocider.
Et l'option « -a » ? Bonne question.
L'appui sur les touches du clavier peut être effectué par n'importe qui. Le signal sera lancé à INIT, qui n'a pas les moyens de dépister l'origine du signal (le signal n'est pas généré dans un shell, il vient directement du clavier). Conclusion : par une telle configuration du clavier N'IMPORTE QUI PEUT FAIRE REDÉMARRER L'ORDINATEUR. Bref, c'est le génocide démocratisé...
L'option « -a » permet de limiter la casse, en spécifiant dans quelles circonstances --- c'est-à-dire en présence de qui loggé sur une console virtuelle --- il faut autoriser le redémarrage.
Pour que ce filtre fonctionne, il FAUT que soit créé le fichier
/etc/shutdown.allow
. En l'absence d'un tel fichier, l'option n'a
aucun effet et vous en restez à votre passoire (c'est le cas par défaut sur
slink, et c'est un bogue).
Dans ce fichier, vous listerez, à raison d'un par ligne, les utilisateurs en
présence desquels le redémarrage peut être effectué. Inutile de spécifier root
: le dictateur a tous les droits par défaut. Ce qui explique qu'en présence
d'un fichier /etc/shutdown.allow
vide, il faut que root soit loggé
sur une console virtuelle pour que le redémarrage ait lieu.
Attention : quand nous parlons de « présence » d'un utilisateur, il ne s'agit pas d'une constatation faite de visu par le noyau qui se serait servi en l'occurrence de ses grands yeux bleus. Un utilisateur présent, c'est un utilisateur loggé sur une console virtuelle.
Donc, si root est le seul à posséder le droit de faire redémarrer par le raccourci clavier (/etc/shutdown.allow EXISTE && (est vide || contient juste root) && l'option -a est spécifiée dans /etc/inittab à l'invocation de shutdown), et qu'il est loggé sur tty1, tartempion logé sur tty2 peut faire redémarrer par le raccourci clavier. Si root n'est pas loggé : nenni !
Enfin, notez que l'option « -a » n'a de sens que dans le cadre d'INIT ou d'un (autre) démon.
En effet, comment un utilisateur non autorisé pourrait-il invoquer shutdown -a alors qu'il n'est pas autorisé à lancer le programme ?
Et pourquoi un utilisateur autorisé le lancerait-il avec cette option : pour vérifier après l'avoir lancé qu'il avait le droit de le faire ?
On peut rebooter facilement depuis cet endroit.
Trois remarques s'imposent :
FIXME: Peut être que ça marche en créant un /etc/shutdown.allow, voir méthode Un raccourci clavier pour le mode console, Section 6.6.3.
Il suffit d'appliquer une méthode marchant sous console, puis de rajouter une entrée de menu. On pourra par exemple créer le fichier /etc/menu/shutdown comme il suit (on peut changer la section, parce que là, on crée une nouvelle entrée, ce qui n'est pas propre. Mais chacun est libre) :
?package(sysvinit):needs=x11 \ section="System" title="Eteindre l'ordinateur" command="/sbin/halt"
Évidemment, ensuite, il faut lancer update-menus pour que la modification soit prise en compte.
NOTE : Le paquet wmaker, c'est-à-dire le gestionnaire de fenêtre a déjà ce genre de réglage. Mais ça ne marche pas QUE pour lui :)
Maintenant, si vous voulez appliquer cette méthode peu reluisante (mais qui peut être justifiée dans certains cas) au reboot, ça va être plus dur. Thierry Laronde nous explique : En fait, comme reboot est un lien vers halt, lorsqu'on change le shell de l'ectoplasme utilisateur halt en /sbin/reboot, c'est finalement /sbin/halt qui est invoqué. Comme, de plus, le renvoi de argv[0], le nom de la commande, est de la responsabilité d'un shell, halt n'a aucun moyen de savoir qu'il a été invoqué en tant que reboot, et donc de passer les paramètres idoines à shutdown. Donc on obtient un halt.
Une option à la ligne de commande de shutdown ou de reboot pour le shell ne fonctionne pas, puisqu'il faut un shell pour effectuer l'analyse syntaxique de la commande...
Bref, le plus simple est de prendre une solution un peu plus propre...
Voir X est mort !, Section 4.2.
Avec le système DOS, on peut lors du démarrage, appuyer sur F8 ou F5 pour empêcher le chargement de config.sys et de autoexec.bat, de façon à réparer les erreurs de configuration graves. Comment faire de même sous linux ?
Avant toute chose, il faut préciser que cette opération s'appelle démarrer en mono-utilisateur dans le jargon Linux.
Avec LILO, il y a plusieurs possibilités. Il faut commencer par maintenir la touche <shift> appuyée pendant le démarrage de la machine. À l'invite « LILO boot : » on peut choisir :
Plus généralement, il est ainsi possible de passer tous les paramètres possibles et imaginables au noyau.
Tous les CD de Debian sont bootables. Cette procédure est utilisée pour le processus d'installation, mais on peut aussi s'en servir pour sauver une installation très endommagée. Quand on démarre sur le CD, on a une invite lilo, et on peut donc passer les options dont on vient de parler juste au-dessus. C'est pratique si le noyau présent sur le disque dur est bon à rien, on prend celui du CD. L'étape suivante, c'est quand la plupart des programmes sont cassés sur le disque dur. Il est alors possible de lancer le CD en mode rescue, et d'utiliser les programmes présents sur le CD (juste les programmes de base, hein, un éditeur, un shell, et pas grand chose de plus). Pour en savoir plus, il suffit de bien lire le message qui apparaît juste avant l'invite lilo.
La FAQ de la liste debian-user-french@lists.debian.org
15 avril 2002debian-user-french@lists.debian.org
mquinson@ens-lyon.fr
thierry.laronde@polynum.com
C.Martin@ipnl.in2p3.fr
Frederic.Petit@univ-mlv.fr