[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]

La FAQ de la liste debian-user-french@lists.debian.org
Chapter 6 - Questions en rapport avec le matériel


6.1 J'ai envie d'acheter tel matériel. Est-il compatible Linux ?

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.


6.2 Pourquoi Debian ne veux pas démarrer sur mon bel Athlon ?

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.


6.3 Mon horloge est folle !

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...


6.4 Comment tester la mémoire

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.


6.5 Comment rendre mon modem silencieux ?

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).


6.6 Comment éteindre facilement l'ordinateur ?

É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.


6.6.1 Les commandes

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 :

  1. # halt // pour arrêter
  1. # reboot // pour rebooter
  1. # 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é :

  1. 0 => arrêt
  1. 6 => redémarrage

(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 :

  1. # init 0 // arrêter
  1. # init 6 // redémarrer

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.


6.6.2 Élargir le champ des privilégiés

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 :

  1. Changer les droits d'exécution
  1. Donner votre mot de passe à des utilisateurs de confiance (rien que le nom m'amuse...) pour qu'ils se substituent à vous --- par l'intermédiaire de la commande « su » (substitute user, et non pas super-user ! On peut se substituer à n'importe quel utilisateur dont on connaît le mot de passe : « su tartempion » vous permet de devenir tartempion ! grisant...), et qu'ils puissent alors faire toutes les c... | bêtises que vous vous réserviez.
  1. Autoriser de distingués utilisateurs à n'exécuter que cette commande en se faisant passer pour vous, grâce à la commande « sudo » et au fichier de configuration « /etc/sudoers »

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.


6.6.3 Un raccourci clavier pour le mode console

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 ?


6.6.4 Méthodes pour éteindre graphiquement

  1. Utiliser xdm, gdm, kdm ou Login.app pour accéder directement à X sans passer par la case console.

    On peut rebooter facilement depuis cet endroit.

    Trois remarques s'imposent :

  1. Utiliser le programme gshutdown, du paquet du même nom. (C'est un programme gnome). Problème, pour le lancer depuis les menus, il faut être root. Qui est assez fou pour lancer X sous root ? Il faut donc attendre que ce programme se modifie pour demander le mot de passe root si un simple utilisateur demande à éteindre la machine, ou équivalent... (ou comprendre comment les concepteurs ont prévu leur coup :)

    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.

  1. Faire une entrée menu pour ça

    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 :)


6.6.5 Méthode générale

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...


6.6.6 Méthodes pour éteindre même quand le clavier et la souris sont morts

Voir X est mort !, Section 4.2.


6.7 Lancer linux en cas de coup dur


6.7.1 Avec Lilo

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 :


6.7.2 En bootant sur un CD

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.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]

La FAQ de la liste debian-user-french@lists.debian.org

15 avril 2002
La liste des utilisateurs francophones de Debian (Matière première) debian-user-french@lists.debian.org
Martin Quinson (« Rédacteur en chef ») mquinson@ens-lyon.fr
Thierry Laronde (Partie pour éteindre l'ordinateur) thierry.laronde@polynum.com
Christophe Martin (Partie sur les permissions statiques) C.Martin@ipnl.in2p3.fr
Frédéric Petit (Partie sur la compilation d'un paquet) Frederic.Petit@univ-mlv.fr