L'histoire de NetBSD n'a plus aucun secret pour vous. Ce mois-ci, amis lecteurs, nous allons nous pencher sur l'installation, la configuration initiale et le tuning de ce système. Dans les pages qui vont suivre, vous allez naviguer dans les méandres de sysinst, découvrir rc.conf, et quelques fichiers de base du système NetBSD.
1. Quelle cuisine ?
Au moment où je commence à écrire ces lignes sort la première mise à jour de la branche 5 de NetBSD, la bien nommée 5.0.1. C'est donc cette version que nous allons installer. Nous nous attacherons à une installation des plus classiques même si d'autres, plus exotiques, sont tout à fait possibles (via NFS, FTP,…).
2. Le choix du restaurant
L'objectif de cet article est d'installer le système NetBSD 5 sur un disque dur (virtuel ou non) avec un serveur X, en détaillant toutes les phases de l'installation pour vous mettre le pied à l'étrier. Je vous encourage à ne pas en rester là et d'aller très vite plus loin. L'aventure est passionnante. Elle a commencé il y a plus de deux ans pour ma part et je suis loin de m'en lasser :).
Au niveau virtualisation, NetBSD est assez récalcitrant ; à l'heure actuelle, Virtualbox 3 ne permet pas son installation. Il faudra donc se tourner vers KVM [1] ou Xen [2]. Pour Xen, la paravirtualisation (kernel modifié) délivre de bien meilleurs résultats.
Un petit wget devrait vous permettre de télécharger l'ISO pour l'architecture adéquate, amd64 ou i386 pour les plus communes, sur le site officiel ou sur un miroir [3] près de chez vous.
2.0.1 Installation via CD-ROM
On insère la galette dans le lecteur après l'avoir gravée et on démarre la machine en bootant sur le CD.
2.0.2 Installation via clé USB
Cette méthode est toute fraîche au moment d'écrire ces lignes. Jared Mc Neill vient de sortir un petit script [4] de son chapeau afin de générer un fichier image prêt à être copié sur une clé. Une simple clé USB de 512 mégas suffira. Donc, pas d'excuses pour ne pas tenter l'expérience ! Ce script nécessitera peut-être quelques modifications afin de fonctionner correctement depuis un système ne possédant pas les outils BSD de gestion des disques.
Un installateur graphique « officiel » n'est pour le moment pas au programme. L'avis des développeurs étant que sysinst, le programme d'installation actuel, est suffisamment simple et rapide.
2.0.3 Le live CD
Il existe la solution du live CD, une autre possibilité pour tester NetBSD. A l'heure où j'écris cet article, la toute dernière version du jibbed live CD [5] (créé par Zafer Aydoğan [6]) est sortie en version 5.0.1 basée sur la version actuelle de NetBSD. Zafer a tout récemment été intronisé développeur NetBSD et son live CD est désormais officiellement supporté.
3. On entre dans le restaurant
sysinst vous souhaite alors la bienvenue, quel que soit le mode d'installation :
Après avoir choisi et validé la langue de l'installeur, il vous sera demandé le choix de la configuration du clavier et, enfin, le lancement du programme d'installation en lui-même débutera. Nous avons le choix entre :
- une installation sur disque dur et d'autres choix. Même si c'est ce premier choix qui nous intéresse, nous allons très succinctement parler des autres.
- Mise à jour de NetBSD sur disque dur : cette option permet de mettre à jour les sets binaires (composants du système), une autre méthode [7] en ligne de commande permet les mêmes résultats.
- comp.tgz par exemple) : Réinstaller ou installer des nouveaux composants : comme pour le choix b, cette option est présente afin de faciliter cette opération, mais on pourrait très bien le faire en ligne de commande ((ré)installation du set
# tar xvfzp comp.tgz -C /
- Redémarrer l'ordinateur :)
- Utilitaires : quelques commandes accessibles en ligne de commandes comme la configuration du réseau…
- Quitter le programme d'installation : simplement, on se retrouve en ligne de commande.
Revenons au choix initial. sysinst nous met gentiment en garde sur le fait de sauvegarder ses données, car des modifications sur le disque dur vont être effectuées. Ne rigolez pas : qui n'a jamais effacé accidentellement une partition, voire un disque entier lors d'une install ? Vous êtes prévenu :)
Un petit choix très sympa vous est donné : pouvoir confirmer toutes les opérations devant effectuer un changement sur le disque dur. On n'est jamais trop prudent, nous choisirons donc
.4. Choix du numéro de table
sysinst scanne votre ordinateur et liste tous les disques durs disponibles :
(dans mon cas, un seul est disponible donc pas de choix possible ;)).
5. On passe la commande
L'installeur nous laisse alors décider de quelle façon nous souhaitons installer notre système : minimale, complète ou personnalisée :
Personnellement, je préfère toujours l'option
, car on peut ainsi choisir les sets manuellement. L'option complète installera la totalité des sets et la minimale les sets permettant au système de fonctionner (mais, il manquera par exemple les outils de compilation, de manipulation de texte…) :Un set est un ensemble d'outils réunis en catégories que l'on décide d'installer ou non. Par exemple, le set comp.tgz est l'ensemble des outils nécessaires à la compilation de logiciels.
Pour choisir d'installer un set, on se positionne dessus et on valide par la touche [Entrée] afin qu’à la question « Installer ? », la valeur soit passée à
. Pour les sets X11, l'activation nous ouvre un sous-menu nous permettant de définir ce que l'on souhaite :L'option
permet de sélectionner toutes les sous-options simultanément (personnellement, je choisis toujours toutes les options). On valide en choisissant l'option ce qui nous ramène au menu précèdent :En résumé, nous allons installer les sets suivants :
- Kernel (générique) : kernel ayant la plupart des options ;
- Base (base.tgz) : fichiers de base nécessaires au fonctionnement du système ;
- Système (/etc) (etc.tgz) : contenant les fichiers de configuration ;
- Outils de développement (comp.tgz) : nécessaire pour pouvoir lancer des compilations futures ;
- Pages de manuel (man.tgz) : on ne le répétera jamais assez, toujours commencer par un RTFM ;
- Divers (misc.tgz) : contient des exemples de fichiers de configuration et autres petits fichiers très utiles ;
- Outils de manipulation de texte (text.tgz) : nécessaires notamment pour la mise en page des manuels et d'autres opérations lors de la compilation ;
- X11 (xbase.tgz, xcomp.tgz, xcontrib.tgz, xfont.tgz, xmisc.tgz, xserver.tgz).
6. Buffet à volonté
On revient donc à la configuration du disque dur que l'on a choisi précédemment lors de l'installation :
sysinst nous demande de confirmer que le disque dur possède la bonne géométrie, et, à moins d'une coquille, le choix s'impose naturellement.
Vous pouvez choisir enfin d'installer le système sur l'intégralité du disque ou sur une partie seulement (j'ai choisi la deuxième option). NetBSD vous explique ce qu'impliqueront l'un ou l'autre choix pour la suite des opérations (si vous avez décidé d'installer NetBSD virtualisé, le choix de l'intégralité du disque semblera logique).
On confirmera également l'installation du code d'amorçage de NetBSD afin de pouvoir le lancer au démarrage du PC (ou de la machine virtuelle).
Sysinst passe à l'opération disklabel afin de définir la taille des slices. Une fois de plus, un petit descriptif nous guide dans les choix possibles. Nous optons pour l'option :
Pour arriver à l'écran permettant de définir la taille des différentes partitions :
On peut voir un petit + juste avant le / de la première partition. Cela indique que l'espace restant après partionnement sera automatiquement ajouté à celle-ci. Pour spécifier une taille de partition, on se positionne sur le slice en question et on tape sur la touche [ENTREE]. Une petite fenêtre nous demande de spécifier la taille en MégaOctets. Ici, par exemple 2500 Mo pour la partition /home.
Pour une première installation, on peut se contenter d'avoir une partition swap (déjà pré-paramétrée) et une partition / qui accueillera l'intégralité du système. Pour info, je vous donne un exemple parmi tant d'autres de partitionnement.
Le paramétrage semble ok. On valide en se positionnant sur : /usr. L'écran suivant nous donne donc un résumé de nos slices, de nos points de montage et du type de partition de chacun. On constate que, par défaut, le type FFSv1 est spécifié. Ce type de fichier est à NetBSD ce que ext2fs est à GNU/Linux. Nous allons donc spécifier un autre type qui sera FFSv2 de la manière suivante :
. Comme expliqué précédemment, l'espace libre de 2170 Mo sera ajouté à la partitionOn se positionne sur le slice et on tape sur la touche [ENTREE]. On accède alors à un menu qui nous permet de changer quelques paramètres du slice et notamment le type de système de fichiers en
. On appuie à nouveau sur [ENTREE] et on choisit FFSv2 dans les options proposées. On appuie à nouveau sur [ENTREE] et on se place sur pour à nouveau valider notre choix par un nouvel appui sur la touche [ENTREE]. On réitère cette opération pour toutes nos partitions excepté pour la partition de swap, pour obtenir ceci :À nouveau, on se positionnera sur l'option
et on validera par [ENTREE] pour en finir avec le paramétrage du disque dur. L'étape suivante nous demande de donner un nom à notre partition NetBSD :L'ultime opération avant de procéder effectivement à l'installation proprement dite est la validation de nos opérations en choisissant l'option
. L'installation commence !Elle débute par la création du système de fichiers… Ensuite, sysinst demande où il doit installer le programme de démarrage :
Le partitionnement des disques durs sur les systèmes BSD diffère du monde GNU/Linux. En effet, le système BSD utilise deux utilitaires pour permettre l'installation possible :
- fdisk : il permettra de créer les partitions qui sont vues habituellement à partir de n'importe quel OS (en rouge sur le schéma ci-dessous).
- disklabel : il créera des slices (pseudo sous-partitions) au sein de la partition créée avec fdisk afin que le système BSD puisse les voir et les exploiter (en bleu sur le schéma ci-dessous).
Le schéma ci-dessous illustre ces propos [19] :
Nous voyons donc clairement la partition 0 qui est une partition DOS, la partition 1 une partition NetBSD qui à elles seules constituent la totalité de l'occupation du disque dur. Au sein de la partition NetBSD, nous voyons les différents slices identifiés par des lettres et un exemple de point de montage : e: /usr.
Nous choisirons l'option sysinst va attaquer l'installation des différents sets sélectionnés précédemment, mais on peut demander à voir l'état de progression de l'installation en sélectionnant l'option et en validant par la touche [ENTREE].
, ce qui nous permettra de voir le résultat sur la sortie standard. Vous pouvez également voir qu'on peut rediriger aussi vers un port série. Ces options prennent tout leur sens pour des architectures autres que celles qu'on connaît (i386 ou amd64) comme les Cobalt. Le disque dur est prêt. Un contrôle d'intégrité des partitions a été automatiquement effectué.L'écran suivant demande de spécifier la source pour trouver les différents sets pour pouvoir installer le système. Comme dit au début de cet article, nous choisirons un moyen classique qui est l'installation via CD-ROM/DVD.
Le nom du périphérique cd0a désigne le lecteur CD-ROM/DVD sous NetBSD. Sous FreeBSD, nous le trouverons sous la forme acd0. On valide le tout en se positionnant sur . La décompression/installation des sets commence et on peut suivre la progression :
Une fois les sets installés, un message nous demande de continuer afin de procéder à quelques réglages comme celui du fuseau horaire. Ici, on choisira par exemple
, puis le type de hachage à utiliser pour les mots de passe :Et enfin, la spécification du mot de passe root en choisissant l'option
sur l'écran qui nous dit qu'aucun mot de passe n'a été défini. On choisit ensuite le shell par défaut pour root :Dans notre exemple, on choisira l'option
qui est l'option par défaut. Nous arrivons au terme de l'installation :L'appui sur la touche [ENTREE] nous ramène à l'écran de bienvenue de sysinst. Mission complète ! Nous avons installé NetBSD et nous pouvons enfin dire : Of course, it runs NetBSD !
7. Plat principal
On va enfin pouvoir commencer à explorer ce que cet OS nous a réservé. Tout d'abord, l'écran du bootloader NetBSD :
Le choix 1 est celui par défaut, mais rien ne vous empêche de choisir l'option
pour retrouver un mot de passe perdu ou les options 3 ou 4 pour désactiver l'ACPI ou l'ACPI et le SMP. Si vous avez opté pour une installation KVM, le choix 4 s'imposera par défaut. Après avoir choisi la bonne option de démarrage, on arrive enfin sur l'invite de connexion :On s'authentifie et tin tin :
Un man afterboot(8) qui permettra de fournir une liste de vérification de différents points après le premier reboot complet.
Nous ne céderons pas au syndrome de la page blanche. Il nous reste quelques paramètres non sans importance à régler. On ne le répètera jamais assez : n'hésitez pas à fouiller afin de trouver l'information pertinente. Les sources peuvent être l'illumination, les pages de man, les fichiers default de configuration, les mailing lists, l'IRC #netbsdfr@freenode, les forums…
7.1 Changement de l'option de démarrage par défaut
Je parlais de l'option 4 par défaut pour les utilisateurs de KVM. Pour ne pas avoir à faire ce choix à chaque redémarrage, on va éditer le fichier qui va nous permettre de spécifier l'option 4 du démarrage par défaut :
# vi /boot.cfg
----------------
menu=Boot normally:boot netbsd
menu=Boot single user:boot netbsd -s
menu=Disable ACPI:boot netbsd -2
menu=Disable ACPI and SMP:boot netbsd -12
menu=Drop to boot prompt:prompt
default=4 <--- on change la valeur 1 par la valeur 4
timeout=5
7.2 Ajout d'un « simple » utilisateur
Combien de fois on vous répétera de ne jamais utiliser root en permanence. D'ailleurs, nombre de programmes refusent de se lancer si l'on est root. On crée donc un utilisateur normal que l'on ajoutera au groupe wheel ce qui lui donnera un peu plus de privilèges :
# useradd -m lutin
# usermod -G wheel lutin
7.3 Configuration du fichier rc.conf
S'il y a deux fichiers qui comptent vraiment beaucoup dans les systèmes BSD, ce sont le fichier rc.conf et le fichier mk.conf pour NetBSD (make.conf pour FreeBSD). On trouve un fichier de configuration par défaut de rc.conf dans /etc/defaults/rc.conf. Ce fichier est une mine d'informations sur les nombreuses directives que l'on peut spécifier dans ce fichier. Dans cet article, nous allons en construire un tout simple, mais accompagné de quelques explications. Voici un fichier rc.conf qui constitue une bonne mise en bouche (même si l'on est déjà au plat principal) :
rc_configured=YES
hostname=Anthropy
sshd=YES
clear_tmp=YES
dmesg=YES
savecore=YES
savecore_flags="-z"
savecore_dir="/var/crash"
update_motd=NO
dhclient=yes
dhclient_flags=re0
Ces directives nécessitent quelques explications :
- rc_configured=YES : permet au système de savoir que l'on se trouve en mode multi-utilisateur. Dans le cas contraire, on bootera en mode single user.
- hostname=Anthropy : permet de spécifier le hostname de la machine. On pourra aussi choisir de le spécifier dans le fichier : /etc/myname (personnellement, je préfère le mettre dans ce fichier qui permettra de centraliser de nombreux paramètres).
- sshd=YES : permet de lancer le démon ssh au démarrage de la machine.
- clear_tmp=YES : permet de nettoyer le répertoire /tmp après un reboot.
- dmesg=YES : les informations données par dmesg seront sauvegardées dans ce fichier : /var/run/dmesg.boot
- savecore=YES : permettra de sauvegarder les fichiers .core en les compressant et en les enregistrant dans le répertoire /var/crash.
- update_motd=NO : ne pas mettre à jour le fichier /etc/motd.
- dhclient=yes : spécifier qu'on est en DHCP.
- dhclient_flags=re0 : dire quelle carte réseau doit être utilisée pour le DHCP.
A vous de jouer pour vous en concocter un aux petits oignons. Vous avez la recette, les ingrédients, y’a plus qu'à !
Si vous avez activé le serveur ssh via la directive sshd=yes dans le fichier rc.conf, lors du prochain reboot, NetBSD générera les clés nécessaires pour pouvoir utiliser ssh. Le fichier sshd_config reste, quant à lui, à configurer selon vos soins comme sur GNU/Linux ou un autre BSD.
7.4 Configuration du fichier mk.conf
Ce fichier comme le fichier rc.conf pourrait faire l'objet d'un article à part entière. Nous allons rester très simple. Ce fichier a pour but de donner des directives lors de la compilation/installation de logiciels ou du système. Ce fichier pourrait rester vide sans problème. Voici un simple exemple commenté :
# more /etc/mk.conf
PKG_RCD_SCRIPTS=YES
PYTHON_VERSION_DEFAULT=25
Les directives liées à la compilation ont volontairement été oubliées, car un autre épisode sur NetBSD détaillera toute cette partie. Si vous trépignez d'impatience, faites donc :
# man mk.conf
pour en apprendre plus et contenter votre curiosité :). Voici les explications :
- PKG_RCD_SCRIPTS=YES : lors de l'installation de logiciels nécessitant un lancement automatique de démon, cette directive entraîne l'installation du script de lancement dans le répertoire /etc/rc.d/ (encore lui !!!! On va vraiment devoir vous donner des explications).
- PYTHON_VERSION_DEFAULT=25 : on spécifie clairement qu'on exige Python dans sa version 2.5.
Revenons un peu sur les démons lancés au démarrage. Nous avons parlé plus tôt dans l'article du serveur ssh et plus particulièrement de la directive sshd=yes. Cette directive va avoir pour effet de lancer le script sshd qui se trouve dans /etc/rc.d/ qui contient les scripts de tous les démons qui s'initialiseront au démarrage de la machine. Pour activer leurs initialisations, il suffit d'avoir une directive dans le fichier rc.conf du style nom_du_démon=yes (sous GNU/Linux, ce serait le répertoire /etc/init.d/).
7.5 Configuration du réseau
7.5.1 Carte Ethernet
Pour connaître le bon driver de sa carte réseau, il suffit de lancer la commande ifconfig -a au niveau de son shell pour obtenir :
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
capabilities=3f80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
enabled=0
address: 00:21:85:53:c7:20
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet 192.168.1.21 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::221:85ff:fe53:c720%re0 prefixlen 64 scopeid 0x1
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
Dans la cas où malheureusement votre carte réseau ne serait pas reconnue (notamment, sur du matériel récent), il faudra probablement jongler avec des patchs ou encore installer un noyau de la version current (version en cours de développement qui donnera naissance à la prochaine version de NetBSD). iMil a expérimenté et commenté cela sur son blog [5] pour sa carte wifi non reconnue sur NetBSD 5. Nous resterons ici dans le cadre d'une installation classique et, dans le meilleur des cas, où tout est reconnu ;).
Donc ici, nous pouvons constater que le driver de ma carte est re0. Vous comprendrez un peu mieux le flag cité précédemment dans le fichier rc.conf qui n'était pas sorti de mon chapeau, ni tombé du ciel. La commande dmesg |grep re0 me retourne donc :
re0 at pci1 dev 0 function 0: RealTek 8100E/8101E/8102E/8102EL PCIe 10/100BaseTX (rev. 0x02)
re0: interrupting at ioapic0 pin 16
re0: Ethernet address 00:21:85:53:c7:20
re0: using 256 tx descriptors
La carte lo0 est là pour le loopback local comme sur GNU/Linux ou les autres BSD.
7.5.1.1 Configuration avec une IP statique
Dans ma configuration personnelle, mes machines sont en IP statiques même si un serveur DHCP est activé sur ma box. Pour configurer le réseau avec une IP statique, il suffit d'éditer 3 fichiers :
- /etc/ifconfig.re0 : ici, ma carte utilise le driver re0 comme vu précédemment. Donc, on crée le fichier ifocnfig.re0 et on y ajoute :
192.168.1.40 netmask 255.255.255.0 up
- /etc/mygate : après la création du fichier, on y spécifie la passerelle. On y ajoute uniquement l'IP :
192.168.1.1
- /etc/resolv.conf : la configuration est identique au monde GNU/Linux. On ajoute le mot nameserver suivi de son IP :
nameserver 194.252.19.3
Après avoir exécuté toutes ces opérations, on redémarre la couche réseau par la commande :
/etc/rc.d/network restart
Nous reviendrons un peu plus tard avec quelques explications sur le lancement des démons au démarrage. Patience… Un petit ping devrait vous donner ce résultat :
# ping yahoo.fr
PING yahoo.fr (87.248.121.75): 56 data bytes
64 bytes from 87.248.121.75: icmp_seq=0 ttl=56 time=114.944 ms
64 bytes from 87.248.121.75: icmp_seq=1 ttl=56 time=115.453 ms
64 bytes from 87.248.121.75: icmp_seq=2 ttl=56 time=114.935 ms
7.5.1.2 Configuration Dhcp
Je ne vais pas faire de la paraphrase, pour configurer son réseau en DHCP, il suffit de rajouter 2 directives dans le fichier rc.conf comme commenté dans le paragraphe « Configuration du fichier rc.conf ».
7.5.2 Carte Wifi
Les interfaces Wifi sous NetBSD, mais plus généralement avec la plupart des systèmes BSD, font partie d'un framework cohérent de gestion de pile 802.11. Le support d'une multitude de cartes sans fil est fourni par le noyau générique. Ainsi, si vous êtes le possesseur d'une carte supportée, aucune action particulière n'est nécessaire à son activation et cette dernière devrait apparaître comme une simple interface réseau à l'issue d'un ifconfig -a.
Depuis NetBSD 4, le système de base embarque wpa_supplicant. Ce dernier se configure pratiquement comme sous GNU/Linux et son démarrage automatique s'effectue via rc.d/rc.conf.
On place dans le fichier /etc/wpa_supplicant.conf les informations relatives au SSID auquel vous souhaitez vous connecter :
network={
ssid="MonSSID"
scan_ssid=1
key_mgmt=WPA-PSK
psk="ma_passphrase_super_compliquee"
}
À partir de cet instant, vous pouvez d'ores et déjà vérifier le bon fonctionnement de la connexion en appelant wpa_supplicant « à la main », ici avec une carte de type Atheros (man ath) :
wpa_supplicant -D bsd -i ath0 -c /etc/wpa_supplicant.conf
Si la connexion réussit, il ne vous reste qu'à automatiser cette dernière. On place pour ce faire dans le fichier /etc/ifconfig.ath0 les valeurs suivantes :
up
dhcp
Afin que l'interface monte au démarrage et que son adresse IP soit contrôlée par un client DHCP, on automatise l'exécution de wpa_supplicant en ajoutant dans le fichier /etc/rc.conf les valeurs suivantes :
# on rend le client DHCP non-bloquant
dhcpcd_flags="-q -b"
wpa_supplicant=YES
wpa_supplicant_flags="-B -i ath0 -c /etc/wpa_supplicant.conf"
Bien qu'il soit tout à fait déconseillé d'utiliser WEP en raison de sa grande fragilité, sachez néanmoins que wpa_supplicant sait gérer ce type de réseau en renseignant le fichier wpa_supplicant.conf de cette façon :
network={
ssid="MonReseauFaible"
key_mgmt=NONE
wep_key0="wep_sent_des_pieds"
wep_tx_keyidx=0
}
ou encore plus simplement, à l'aide d'ifconfig :
ifconfig ath0 ssid "MonReseauFaible" nwkey "wep_sent_des_pieds"
7.6 Configuration du matériel
La plupart du temps, votre matériel devrait être reconnu. Cependant, que faire si ce n’est pas le cas ? Nous avons déjà anticipé cette partie auparavant. Cependant, pour connaître un matériel qui poserait problème comme évoqué précédemment, il existe une autre méthode que dmesg. L'équivalent de lspci bien connu sous GNU Linux existe sous NetBSD :
# pcictl pci0 list
000:00:0: Intel 82945GME Host Bridge (host bridge, revision 0x03)
000:02:0: Intel 82945GME Integrated Graphics Device (VGA display, revision 0x03)
000:02:1: Intel 82945GM/PM/GMS Integrated Graphics Device (miscellaneous display, revision 0x03)
000:27:0: Intel 82801GB/GR High Definition Audio Controller (multimedia subclass 0x03, revision 0x02)
000:28:0: Intel 82801GB/GR PCI Express Port #1 (PCI bridge, revision 0x02)
000:28:1: Intel 82801GB/GR PCI Express Port #2 (PCI bridge, revision 0x02)
000:29:0: Intel 82801GB/GR USB UHCI Controller (USB serial bus, revision 0x02)
000:29:1: Intel 82801GB/GR USB UHCI Controller (USB serial bus, revision 0x02)
000:29:2: Intel 82801GB/GR USB UHCI Controller (USB serial bus, revision 0x02)
000:29:3: Intel 82801GB/GR USB UHCI Controller (USB serial bus, revision 0x02)
000:29:7: Intel 82801GB/GR USB EHCI Controller (USB serial bus, interface 0x20, revision 0x02)
000:30:0: Intel 82801BAM Hub-PCI Bridge (PCI bridge, interface 0x01, revision 0xe2)
000:31:0: Intel 82801GBM LPC Interface Bridge (ISA bridge, revision 0x02)
000:31:2: Intel 82801GBM/GHM SATA Controller (IDE mass storage, interface 0x80, revision 0x02)
Vous obtenez ainsi la liste du matériel attaché au bus pci0 (un man pcictl(8) vous donnera plus d'informations sur son utilisation).
8. Fromage et salade
8.1 Configuration de X
Xorg se configure de la même manière sur NetBSD que sur les autres systèmes où il est présent. La commande suivante lancera l'utilitaire de configuration en mode texte :
#xorgconfig --text
Il suffit de répondre aux questions et le fichier xorg.conf prêt à l'emploi sera généré et copié (après votre accord) dans /etc/X11/ et permettra ainsi de lancer X dans son plus simple appareil, c'est-à-dire avec TWM comme Window manager. On verra lors du dessert comment améliorer cela si vous le souhaitez.
Sous NetBSD, le type de souris à choisir est wsmouse, ce qui se traduira au sein du fichier xorg.conf par :
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "wsmouse"
Option "Device" "/dev/wsmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
8.2 Activation de la journalisation
La journalisation du système FFS [9] connu aussi sous son petit nom, WAPBL, a été développé par la société Wasabi Systems, Inc [10] qui a commité le code au sein de NetBSD le 31 juillet 2008. Il a donc pour effet, une fois activé, de journaliser le système de fichiers. En cas de crash, pas de fsck long et pénible (lors de la rédaction de cet article, mon lappy m'a sauvagement coupé le courant après un oubli de ma part de brancher la batterie. Au final, un boot normal sans fsck).
Il parait compliqué, mais son activation est enfantine. Il suffit d'éditer le fichier /etc/fstab et d'ajouter log aux partitions définies précédemment :
/dev/wd0e /usr ffs rw,log 1 2
/dev/wd0g /var ffs rw,log 1 2
/dev/wd0h /home ffs rw,log 1 2
8.3 Bâillonner le vilain bip
Si votre carte son n'est pas reconnue ou que, tout simplement, vous n'en avez pas, le vilain bip du haut-parleur de la carte mère a tendance à stresser. Pour le désactiver, tapez la commande suivante :
# wsconsctl -w bell.pitch=0
8.4 Monter un répertoire ssh via PUFFS
Une autre fonctionnalité intéressante intégrée à NetBSD 5 de manière native est le système PUFFS qui permet de monter un répertoire ssh distant au niveau d'un point de montage :
mount_psshfs utilisateur@monserveur /mnt
et vous retrouverez après authentification dans /mnt le contenu du répertoire distant.
8.5 Mais où est mon fichier ?
Sous GNU/Linux, on tape un simple updatedb pour mettre à jour la base locale contenant le nom des fichiers ainsi que leurs localisations. Si vous souhaitez faire de même sur NetBSD, vous devrez taper :
# /usr/libexec/locate.updatedb
8.6 Ajouter une entrée dans Grub pour un multiboot
Si vous avez opté pour déposer NetBSD le temps d'une prise en main sur une partition au fond d'un de vos disques durs, vous avez la possibilité d'ajouter une entrée dans Grub :
title NetBSD 5
root (hd0,0)
makeactive
chainloader +1
9. Dessert
J'apprécie beaucoup NetBSD, mais il y a un point qui restait relativement peu encourageant à l'installation de ce système dans la hâte, que ce soit en serveur ou en poste de travail : la gestion des paquets binaires (nous ne verrons ici que les bases, car vous pourrez vous délecter d'un autre article concernant la gestion des logiciels sur NetBSD que ce soit à partir de paquetages binaires ou de pkgsrc [11]). Je disais donc que, depuis peu, un certain iMil [12] nous a concocté pkgin [13] qui a comblé ce manque (voir GLMF N°118 – Un pkgin sans glace pour la 6). Cet outil merveilleux permet l'installation de NetBSD 5 + Xfce4 + OpenOffice 3 en moins de 30 minutes (Non, non, pas de pub mensongère, je l'ai testé !!). Il est à préciser que l'outil qui permet d'ajouter des paquets binaires existe (pkg_add), mais ne permettait pas d'ajouter les dépendances tel que le ferait un logiciel des gestion de paquets binaires comme l'est pkgin ou apt.
La gestion des version de paquets binaires suit un cycle d'un trimestre. A l'heure où j'écris cet article, ce sont donc les paquets binaires issus de pkgsrc-2009Q2 qui seront à utiliser pour en obtenir les dernières versions.
Nous allons donc voir comment installer pkgin et ainsi vous mettre le pied à l'étrier pour ne pas rester avec votre OS à la serviette orange dans son plus simple appareil, mais commencer d'ores et déjà à installer quelques paquets binaires sans devoir attendre l'article traitant en détail de la gestion des logiciels sous NetBSD.
9.1 Installation de sqlite
pkgin dépend de sqlite [14] pour stocker toutes les informations relatives aux dépendances, conflits,… des différents logiciels. Installons tout d'abord sqlite :
# PKG_PATH=ftp://ftp.<mirror>.NetBSD.org/pub/pkgsrc/packages/NetBSD/<arch>/<version>/All pkg_add -v sqlite3
- <mirror> : choisir un miroir près de chez soi ;)
- <arch> : définit le type d'architecture de votre machine. Ex : i386 ou AMD64 pour le plus courant.
- <version> : définit la version de NetBSD, ici 5.0.
Donc pour une architecture i386 et un miroir français :
PKG_PATH=ftp://ftp.fr.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/5.0/All pkg_add -v sqlite3
9.2 Installation de pkgin
Je parlais de la sortie des paquets binaires pkgsrc-2009Q2 auparavant. Eh bien, pkgin y est maintenant disponible ! Donc, comme pour sqlite, procédons à son installation :
PKG_PATH=ftp://ftp.fr.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/5.0/All pkg_add -v pkgin
Voilà, pkgin vient de s'installer, mais un message s'affiche :
===========================================================================
$NetBSD: MESSAGE,v 1.1.1.1 2009/06/08 13:58:26 imil Exp $
First steps before using pkgin.
. Modify /usr/pkg/etc/pkgin/repositories.conf to suit your platform
. Initialize the database :
# pkgin update
===========================================================================
Le fichier en question, repositories.conf, permet de configurer la liste des FTP d'où seront téléchargés les paquets binaires : on vérifiera simplement que cette ligne soit décommentée :
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0/All
On pourra optimiser les téléchargements en commentant la ligne ci-dessus et en décommentant la ligne du FTP français.
On lance ensuite la commande :
# pkgin update
pkgin est prêt à être utilisé.
9.3 Utilisation de pkgin
On va tout de suite le mettre en pratique. Nous avions ajouté un utilisateur lutin précédemment au cours du repas. Comme n’importe quel système de type Unix ou GNU/Linux, on ne devrait pas se connecter avec l'utilisateur root pour de nombreuses raisons. Un paquet binaire va nous servir pour cela. A l'avenir, on se connectera avec l'utilisateur lutin et toutes les commandes nécessitant les privilèges root s'exécuteront via sudo (vous me suivez toujours ?). Installons donc sudo :
# pkgin in sudo
calculating dependencies for sudo...
1 packages to be upgraded: sudo-1.7.0
1 packages to be installed: sudo-1.7.1 (139K to download, 475K to install)
proceed ? [y/N] y
downloading packages...
downloading sudo-1.7.1.tgz: 100%
removing packages to be upgraded...
removing sudo-1.7.0...
===========================================================================
The following files are no longer being used by sudo-1.7.0,
and they can be removed if no other packages are using them:
/usr/pkg/etc/sudoers
===========================================================================
installing packages...
installing sudo-1.7.1...
sudo-1.7.1: /usr/pkg/etc/sudoers already exists
sudo-1.7.1: setting permissions on /usr/pkg/bin/sudo (o=root, g=wheel, m=4511)
===========================================================================
$NetBSD: MESSAGE,v 1.6 2004/03/11 23:33:09 reed Exp $
Use the visudo(8) command to edit the sudoers file.
If you are upgrading from a version of sudo prior to 1.6, please read
/usr/pkg/share/doc/sudo/UPGRADE
on how to modify your sudoers file appropriately.
===========================================================================
processing local summary...
updating database: 100%
marking sudo-1.7.1 as non auto-removeable
#
sudo est installé, mais il faut vérifier que la ligne suivante est décommentée dans le fichier /usr/pkg/etc/sudoers :
%wheel ALL=(ALL) ALL
Cette ligne permettra à tous les membres du groupe wheel d'exécuter les commandes root, mais en saisissant le mot de passe root. On n'est jamais trop prudent !
Les commandes de pkgin s'obtiendront via man pkgin ou simplement en lançant le programme sans paramètres. Vous aurez sans doute compris que in est mis pour install.
10. Café et digestif
On touche à la fin de ce délicieux repas. Vous avez maintenant un beau NetBSD tout neuf, connecté au Web. Vous pouvez lui ajouter de nombreuses applications à coup de pkgin.
Et maintenant ? Ben, je ne vous ai servi qu'un repas. A vous d'en faire bien d'autres ! Pour aller plus loin, n'hésitez pas à lorgner par ici, par là (en plus des liens déjà mentionnés) :
- les mailing lists officielles [15] ;
- le wiki officiel [16] ;
- le blog officiel [17] ;
- le site de la communauté NetBSD francophone (news, forum, wiki) [18] ;
- sur IRC : #netbsd@freenode (chan officiel), #netbsdfr@freenode (chan francophone).
En guise de digestif, je vous proposerai uniquement une dernière capture d'écran qui montre le taux d'occupation que peut prendre cet OS sur votre disque dur :
Cela ne vous donne toujours pas envie ?
Références
[1] http://www.netbsdfr.org/wiki/doku.php?id=tips:kvm_nbsd5
[2] http://wiki.xensource.com/xenwiki/HowTos
[3] http://netbsd.org/mirrors/
[4] http://jmcneill.spaces.live.com/blog/cns!F507161C07E89CBE!170.entry
[6] http://wiki.netbsd.se/User:Zafer
[7] http://www.netbsdfr.org/wiki/doku.php?id=tips:updatebinaires
[9] http://www.netbsdfr.org/?p=26
[10] http://www.wasabisystems.com/
[11] http://www.netbsd.org/docs/software/packages.html
[12] http://imil.net/
[15] http://mail-index.netbsd.org/index.html
[16] http://wiki.netbsd.se/Main_Page
[19] http://netbsd.org/docs/guide/en/chap-inst.html#chap-inst-install-partition