FreeBSD (1/3) Install de base
Jusqu’à présent sous Bodhi Linux, je cherchais à mettre à jour mon ancien PC portable Dell Inspiron 6400 (de 2007 !), mais le support 32 bits se fait de plus en plus rare (par exemple ubuntu a arrêté le support 32 bits après la 18.04), aussi je me tourne vers les distributions *BSD…
Il y bien des solutions prêtes à l’emploi pour une utilisation « poste de travail » telles que GhostBSD, helloSystem, MidnightBSD ou nomadBSD, mais j’ai opté pour une installation « recompilé à la main », un « vrai » FreeBSD ;-)
Cet article décrit les étapes pour installer FreeBSD 13.1 sur un PC portable pour une utilisation « poste de travail » (Xfce, multimédia, …) :
Merci à Olivier <https://olivier.cochard.me/bidouill...> pour sa doc…
Installation
Pour rappel le matériel concerné est un Dell Inspiron 6400 :
- Intel Core Duo T2400 (1830 MHz), 2Go de RAM
- Intel Graphics Media Accelerator 950 (128 MB) 14.1"
Les ISO/IMG sont à récupérer sur :
- https://www.freebsd.org/where/
- https://www.freebsd.org/releases/13.1R/announce/ (spécifiquement pour la 13.1)
- https://download.freebsd.org/releases/i386/i386/ISO-IMAGES/13.1/ FreeBSD-13.1-RELEASE-i386-memstick.img (pour i386)
L’installation se fait en mode texte, mais est très simple :
“Boot Multi user” (démarrage en mode multi-utilisateur) lance la suite du processus de démarrage de FreeBSD.
Il suffit ensuite de sélectionner « Install » sur l’écran qui se présente, puis de suivre les conseils :
- Sélection du type de clavier et du “hostname” :
- Concernant les composants à installer :
- Laissez les valeurs par défaut (kernel-debug),
- avec éventuellement les “ports” (le catalogue des logiciels portés pour FreeBSD),
- et “src” (il peut être nécessaire pour compiler des modules du noyau, ou des applications du catalogue des logiciels portés).
- Pour le partitionnement on choisira ici plutôt le mode “Auto (UFS)” (ZFS c’est trop pour mon vieux matériel !) :
- Attention au vocabulaire utilisé par FreeBSD !
- Un « slice » est une partition MBR, elles portent comme nom le nom du disque suivi des lettres s1, s2, s3, …
- Une « partition » est une sous-partition MBR, elles portent comme nom le nom du disque, éventuellement le nom du slice, puis une lettre (a pour l’ensemble, b pour la swap, …)
-
- Choisir le disque d’installation :
- Pour notre « vieux matériel » choisir “Master Boot Record” :
- Valider le partitionnement :
- Choisir le disque d’installation :
- Attendre environ 2 minutes pour terminer l’installation…
- Puis viennent quelques questions triviales :
- Mot de passe de l’utilisateur “root”,
- Configuration du réseau (incluant le Wifi si vous sélectionnez cette interface, mais ça n’a pas marché chez moi, on verra ça plus tard…),
- Et la “timezone”.
- Viennent ensuite les services au démarrage :
- “sshd”, “moused”, “ntpd” et “powerd”
- “sshd”, “moused”, “ntpd” et “powerd”
- Sélectionnez les options de renforcement de la sécurité souhaitées :
- Vous avez maintenant la possibilité de rajouter des utilisateurs :
- À la question “Invite USER into other groups ?”, répondre :
wheel operator dialer video
- “wheel” permet de passer root par la commande su
- “operator” obligatoire pour utiliser la commande su et éteindre le PC
- “video” permet d’accéder à la carte graphique
- Login class : laissez par default (on changera plus tard)
- Shell : sh ou tcsh
- Home directory : par défaut
- Enfin choisissez un mot de passe et confirmez la création :
- À la question “Invite USER into other groups ?”, répondre :
- De retour sur le “Final Configuration”, sélectionner “Exit”, puis “Reboot” :
Configuration du Wifi
La configuration du Wifi n’ayant pas fonctionné pour moi lors de l’installation (bsdinstall netconfig
) je me suis basé sur la doc <https://docs.freebsd.org/en/books/h...>
pour la configurer manuellement :
- On commence par déterminer notre interface Wifi :
# sysctl net.wlan.devices
Ça répond pour moiwpi0
.
- On configure ensuite notre SSID (Service Set Identifier) et la clef PSK (Pre-Shared Key) :
# vi /etc/wpa_supplicant.conf
network={
ssid="SFR_47F0"
psk="************************************"
}
- On configure le réseau au démarrage :
# vi /etc/rc.conf
wlans_wpi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"Et on “reboot”.
Clavier “bépo” et localisation en français
Mon clavier étant bépo, et la disposition AFNOR (bépo 1.1rc2) n’étant incluse par défaut qu’à partir de FreeBSD 14.0, en attendant il faut télécharger le fichier “kbd” :
$ fetch https://cgit.freebsd.org/src/plain/share/vt/keymaps/fr.bepo.kbd
Puis l’installer et l’activer au démarrage (dans le /etc/rc.conf
) :
# cp fr.bepo.kbd /usr/share/vt/keymaps/
# sysrc keymap=fr.bepo.kbd
P.I. pour le changer « graphiquement » dans le terminal utilisez la commande : kdbmap
.
La disposition utilisant des codages non-ASCII sur 8 bits ou plus il est nécessaire d’utiliser l’encodage de caractère utf-8
:
# vi /etc/login.conf
french|French Users Accounts:\
:charset=UTF-8:\
:lang=fr_FR.UTF-8:\
:tc=default:
Et exécuter la commande suivante : cap_mkdb /etc/login.conf
Puis éditer le fichier de mot de passe par la commande vipw
, et rechercher votre login pour ajouter “french” entre les ::
:
mickey:$6$IYY…:1001:1001:french:0:0:MiKey983:/home/mickey:/bin/tcsh
Plus d’information cf. http://www.bepo.fr/wiki/Console_FreeBSD_et_DragonFly_BSD
Shell Tcsh
Y-en a marre des « beep » ! Pour le désactiver et au passage activer la couleur dans la console :
# vi /etc/csh.cshrc
set nobeep
setenv CLICOLOR true
setenv COLORTERM true
Désactiver ensuite le buzzer (en mode vt(4)) :
# vi /etc/sysctl.conf
kern.vt.enable_bell=0
Mise à l’heure automatique
Pour les postes de travail / laptop, on ne synchronise l’heure qu’au démarrage :
# service ntpddate enable
# sysrc ntpdate_enable=yes
Périphériques USB, graveur CD/DVD
La première chose à faire est d’autoriser les utilisateurs à monter des périphériques :
# echo vfs.usermount=1 >> /etc/sysctl.conf
# sysctl vfs.usermount=1
Attn. ça ne fonctionne pas chez moi pour mon utilisateur dans le groupe “operator” !? À suivre…
Et si vous n’avez pas mis votre utilisateur dans le groupe “operator” et “dialer” (accès aux ports séries) c’est le moment de le faire :
# pw group mod operator -m $USERNAME
# pw group mod dialer -m $USERNAME
Maintenant, il faut donner les droits en écriture pour les périphériques au groupe “operator” en créant le fichier /etc/devfs.rules
:
[localrules=5]
add path 'da*' mode 0660 group operator
add path 'cd*' mode 0660 group operator
add path 'uscanner*' mode 0660 group operator
add path 'xpt*' mode 660 group operator
add path 'pass*' mode 660 group operator
add path 'md*' mode 0660 group operator
add path 'msdosfs/*' mode 0660 group operator
add path 'ext2fs/*' mode 0660 group operator
add path 'ntfs/*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
Déclarer ces nouvelles règles :
# sysrc devfs_system_ruleset=localrules
Activer les nouvelles règles :
# service devfs restart
Et vérifier leur applications : devfs rule show
DMA à la place de sendmail
DragonFly Mail-Agent (inclus à partir de FreeBSD 11) permet de remplacer sendmail si votre besoin est uniquement pour envoyer des emails :
# sysrc sendmail_enable=NO
# service sendmail onestop
Paramétrer le mailer /etc/mail/mailer.conf
:
# Execute dma instead of sendmail
sendmail /usr/libexec/dma
mailq /usr/libexec/dma
newaliases /usr/libexec/dma
rmail /usr/libexec/dma
Et désactiver les tâches spécifiques à sendmail dans /etc/periodic.conf
:
#Disable some sendmail specific daily maintenance routines
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
Reste la configuration de DMA /etc/dma/dma.conf
, ici un exemple pour un compte gmail :
SMARTHOST smtp.gmail.com
PORT 587
SECURETRANSFER
STARTTLS
AUTHPATH /etc/dma/auth.conf
MASQUERADE votre-login@gmail.com
Puis : echo 'votre-login|smtp.gmail.com:votre-mot-de-passe' > /etc/dma/auth.conf
Mises à jour de FreeBSD
Cela ce fait simplement par la commande suivante : freebsd-update fetch install
Vous devez utiliser le noyaux GENERIC pour que cet outil mette aussi les binaires du noyau à jour !
Collecte d’information
- La liste des équipements PCI détectés s’affiche par la commande :
pciconf -lv
- Celle des équipements USB par :
usbconfig
- Liste des équipements détectés par HAL :
lshal
- Charge système par des graphiques :
systat
- Aperçu de la charge système par la commande :
systat -vm
- Cette commande permet aussi de connaitre la charge réseau actuelle avec la commande :
systat -ip
- Charge système en mode compact :
vmstat
. Pratique pour connaitre ou le goulot d’étranglement :procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr ad0 cd0 in sy cs us sy id
0 0 4 4.5G 66M 273 8 2 2 274 527 0 0 597 20K 19K 19 8 74 - Et pour connaitre qui consomme les interruptions matérielles (la colonne rate est importante) :
vmstat -i
interrupt total rate
irq1: atkbd0 44903 5
irq9: acpi0 1 0
irq12: psm0 1224 0
irq14: ata0 120236 13
irq15: ata1 6456 1
irq16: vgapci0 77275 8
irq20: hpet0 uhci0+ 4751848 495
irq21: uhci1 79298 8
irq24: hdac0 40 0
irq26: wpi0 656161 68
Total 5737442 597 - Charge des disques :
gstat
Gestionnaire de “packages”
Il suffit de lancer la commande pkg
pour qu’il s’auto-installe.
Puis pour mettre à jour la liste des paquets présents sur le dépôt officiel : pkg update
Pour installer de nouveaux packages : pkg install truc bidule machin chouette
Et pour les mettre à jour : pkg upgrade
Retour sur les disques amovibles
Pour monter automatiquement les disques amovibles on va utiliser automount.
Mais d’abord pour ajouter le support d’autre systèmes de fichiers :
# pkg install automount fusefs-ntfs fusefs-simple-mtpfs
Commencer par le chargement de fuse et créer un fichier de configuration (a éditer pour faire correspondre à votre environnement) :
# sysrc kld_list+=fusefs
# sysrc kld_list+=ext2fs
# kldload fusefs
# kldload ext2fs
# cp /usr/local/etc/automount.conf.sample /usr/local/etc/automount.conf
Puis on relance le service devd pour qu’il charge la configuration d’automount :
# service devd restart
Désormais, dans le dossier /media
vous devriez retrouver le nom des disques USB connectés. Et là ça marche !
Usage de ntfs-3g dans le fstab
Voici un exemple de ligne du /etc/fstab
pour le montage d’un disque NTFS une fois installé “fuse ntfs-3g” :
/dev/ntfs/System /media/windows ntfs rw,mountprog=/usr/local/bin/ntfs-3g,late 0 0
Optimisations
Configurer le scheduler pour un usage « desktop » :
# sysrc -f /etc/sysctl.conf kern.sched.preempt_thresh=224
Pour activer la réponse « yes » aux questions de fsck automatique au démarrage :
# sysrc fsck_y_enable=YES
Par défaut, l’heure d’accès aux fichiers est noté, ce qui peux consommer du temps (et ca ne sert pas à grand-chose).
Éditer le fichier /etc/fstab
est ajouter l’option “noatime” :
# Device Mountpoint FSType Options Dump Pass
/dev/ada0s1a / ufs rw,noatime 1 1
Pour corriger les grosses failles des microcodes CPU en attendant la màj de votre BIOS/EFI :
# pkg install devcpu-data
# service microcode_update enable
# service microcode_update start
Une version plus évoluée (gère mieux les multi-core) de powerd existe sous le nom de powerd++ :
# pkg inst powerdxx
# service powerd disable
# service powerd onestop
# service powerdxx enable
# service powerdxx start
Voilà ! À partir de là on a un système FreeBSD opérationnel (en mode console) sur notre laptop ;)