URL: https://linuxfr.org/news/freebsd-12-1 Title: FreeBSD 12.1 Authors: David Marec Davy Defaud, Kwiknclean, Arkem, tankey, palm123 et tisaac Date: 2019-11-06T23:49:20+01:00 License: CC by-sa Tags: freebsd et sortie_version Score: 4 La première mise à jour de FreeBSD 12 est [disponible depuis le 5 novembre 2019](https://www.freebsd.org/releases/12.1R/announce.asc). Elle est dédiée à [Kurt Lidl](https://people.freebsd.org/~lidl/). C’est une mise à jour dite *mineure*, qui suit le principe POLA (_Principle Of Least Astonishment_), ce qui ne devrait pas vous exposer à des changements trop gênants. Pour rappel, la publication d’une version de FreeBSD est un instantané de la branche *Stable*, elle intègre donc les correctifs et ajouts introduits depuis la première publication de la version 12. ---- [Notes de version](https://www.freebsd.org/releases/12.1R/relnotes.html) [Errata](https://www.freebsd.org/releases/12.1R/errata.html) [À la rencontre de FreeBSD](https://hub.pfind.com/meet-freebsd-project/) ---- # En bref La *base* apporte [BearSSL](https://bearssl.org/), et [OpenSSL](https://www.openssl.org/) est désormais livré en version 1.1.1d. La version 8.0.1 de [LLVM et C^(ie)](http://llvm.org/) devient la suite de compilation par défaut et embarque la bibliothèque [openMP](https://www.openmp.org/), [libomp](https://openmp.llvm.org/). Du côté des plates‐formes, [RISC‑V](https://wiki.freebsd.org/riscv) est activement développé (Tier‑3) alors que [PC‑98](https://www.freebsd.org/platforms/pc98.html) n’est plus maintenu. À noter l’implémentation de contrôleurs Xilinx *trouvés* sur des « _Government Furnished Equipment (GFE) 64‑bit RISC‑V cores_ »… # Installation Avant toute chose, je vous invite à consulter les _errata_. ## Mise à jour depuis une version antérieure ```sh # freebsd-update upgrade -r 12.1-RELEASE ``` N’oubliez pas de mettre aussi à jour vos poudrières : ```sh # poudriere jails -j 12R -u -t 12.1-RELEASE ``` La mise à jour compte 9 577 correctifs depuis la 12.0. ## Images Des images sont disponibles sous [divers formats](https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.1/) pour les architectures suivantes : * x64-64 ; * i386 ; * PowerPC, PowerPC64 et PowerPCSPE ; * SPARC64 ; * ARMv6, ARMv7 et AArch64. Suivez les procédures habituelles pour la mise à jour et l’installation. Attention, le chargeur d’amorçage — en particulier le `loader.efi` — a quelque peu bougé, faites gaffe quand même. Notez que _[freebsd-update(8)](https://www.freebsd.org/cgi/man.cgi?query=freebsd-update&sektion=8&manpath=freebsd-release-ports)_ comprends deux nouvelles commandes : * `updatesready`, indique si des mises à jour sont prêtes à être installées, suite à un `fetch` ; * `showconfig`, précise la configuration de votre système de mise à jour. ## Instances Vous trouverez des instances hébergées par : * Amazon® EC2™ ; * Google® Compute Engine™ ; * Hashicorp/Atlas® Vagrant™. ## Machine [Gandi](https://www.gandi.net/fr) vous propose de créer des machines virtuelles et [Hetzner](https://wiki.hetzner.de/index.php/FreeBSD_Rescue-System/en) propose un [installeur FreeBSD](https://mfsbsd.vx.sk/) pour certaines de ses machines. # Amorce, loader Le nouvel [installateur](https://www.freebsd.org/cgi/man.cgi?query=menu.lua&sektion=8&manpath=freebsd-release-ports) écrit en Lua est désormais utilisé par défaut. La version écrite en [Forth](https://www.freebsd.org/cgi/man.cgi?query=loader.4th&sektion=8&manpath=freebsd-release-ports) devrait disparaître de la version 13. L’implémentation [EFI](https://www.freebsd.org/cgi/man.cgi?query=efi&sektion=8&manpath=freebsd-release-ports) a subi beaucoup de mises au point. Par exemple, l’interface HTTP dans UEFI, HTTP Service Binding Protocol (HTTPSB) et HTTP Protocol (HTTP) a été intégrée. Attention, c’est tout chaud. La taille définie pour `EFI_STAGING_SIZE` a été augmentée sur x86-64 pour éviter des plantages en cas de chargement du — trop gros — module `nvidia.ko`. Le [gestionnaire d’amorçage pour ZFS](https://www.freebsd.org/cgi/man.cgi?query=gptzfsboot&sektion=8&manpath=freebsd-release-ports) peut amorcer sur un *dataset* dont l’option `large_dnode` est activée (cette option est enfin [documentée](https://www.freebsd.org/cgi/man.cgi?query=zpool-features&sektion=7&manpath=freebsd-release-ports)). # Noyau Mis à part les correctifs et les optimisations, vous ne devriez pas observer de grand changements, si ce n’est la fusion des périphériques réseau virtuels _[tap(4)](https://www.freebsd.org/cgi/man.cgi?query=tap&sektion=4&manpath=freebsd-release-ports)_ et _[tun(4)](https://www.freebsd.org/cgi/man.cgi?query=tun&sektion=4&manpath=freebsd-release-ports)_ dans un même module « tuntap ». Vérifiez la configuration de votre noyau et des [directives de démarrage](https://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5&manpath=freebsd-release-ports), si vous utilisez ceux‑ci. Le numéro de _[jail(8)](https://www.freebsd.org/cgi/man.cgi?query=jail&sektion=8&manpath=freebsd-release-ports)_ est précisé dans le journal lorsqu’un processus se termine. Ajout d’une limite réglable [lors du démarrage](https://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5&manpath=freebsd-release-ports) pour les interruptions MSI : `machdep.num_msi_irq`. # Périphérique, modules Le nouvel outil _[spi(8)](https://www.freebsd.org/cgi/man.cgi?query=spi&sektion=8&manpath=freebsd-release-ports)_ va vous permettre de communiquer avec les périphériques présents sur un [bus SPI](https://fr.wikipedia.org/wiki/Serial_Peripheral_Interface "Serial Peripheral Interface"). Les périphériques présents sur ce bus SPI sont par ailleurs nommés d’après le bus père, comme sous Linux : `/dev/spigenX.Y`, où `X` définit le numéro du bus et `Y` le périphérique fils. Précisez `SPIGEN_LEGACY_CDEVNAME` dans le noyau pour retrouver l’ancienne numérotation. ## Disques/GEOM Vous pouvez régler les « _quirks_ » des périphériques attachés par le module _[da](https://www.freebsd.org/cgi/man.cgi?query=da&sektion=4&manpath=freebsd-release-ports)_ via la [clef](https://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&manpath=freebsd-release-ports) `kern.cam.da.X.quirks`, de la même manière que ceux de _[ada(4)](https://www.freebsd.org/cgi/man.cgi?query=ada&sektion=4&manpath=freebsd-release-ports)_. La gestion via _[camcontrol(8)](https://www.freebsd.org/cgi/man.cgi?query=camcontrol&sektion=8&manpath=freebsd-release-ports)_ permet l’affichage des descripteurs de blocs (`D` et `L` pour LBA) sur la commande `modepage`. Il comprend de plus la commande `powermode` sur ATA ainsi que `devtype`. Vous pouvez, via la [clef de réglage](https://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&manpath=freebsd-release-ports) `kern.cam.da.disable_wp_detection`, désactiver la détection de la protection en écriture. La prise en charge des [normes NVMe](https://fr.wikipedia.org/wiki/NVM_Express) est activement suivie. Parmi les nouveautés, notez : * _[nvme(4)](https://www.freebsd.org/cgi/man.cgi?query=nvme&sektion=4&manpath=freebsd-release-ports)_ permet l’hibernation et le réveil par le bus PCI ; * l’outil de gestion du [sous‑système NVMe](http://www.nvmexpress.org/), _[nvmecontrol(8)](https://www.freebsd.org/cgi/man.cgi?query=nvmecontrol&sektion=8&manpath=freebsd-release-ports)_, comprend la commande `resv`, qui permet de manipuler des *réservations* NVMe (partage d’espace entre plusieurs hôtes et contrôleurs). _[fusefs(5)](https://www.freebsd.org/cgi/man.cgi?query=fusefs&sektion=5&manpath=freebsd-release-ports)_ intègre de nombreuses améliorations et fonctionnalités, dont la documentation. Attention, le pilote a été renommé de *fuse* en *fusefs*. Les contrôleurs _[mpr(4)](https://www.freebsd.org/cgi/man.cgi?query=mpr&sektion=4&manpath=freebsd-release-ports)_ et _[mps(4)](https://www.freebsd.org/cgi/man.cgi?query=mps&sektion=4&manpath=freebsd-release-ports)_ ont été corrigés. Attention, le dernier n’est plus compatible avec les plates‐formes 32 bits MIPS et PPC. ## Intel Prise en charge et découverte sur le [bus SMB](https://en.wikipedia.org/wiki/System_Management_Bus) des *moniteurs de tâches*, `watchdogs TCO`, par le pilote _[ichwd(4)](https://www.freebsd.org/cgi/man.cgi?query=ichwd&sektion=4&manpath=freebsd-release-ports)_, présents sur les cartes mères Lewisburg PCH (C620). Le mécanisme de protection des pages utilisateur par clef, _[pkru(3)](https://www.freebsd.org/cgi/man.cgi?query=pkru&sektion=3&manpath=freebsd-release-ports)_, est implémenté et disponible pour les Xeon _SkyLake_. ## AMD Les pilotes _[amdsmn(4)](https://www.freebsd.org/cgi/man.cgi?query=amdsmn&sektion=4&manpath=freebsd-release-ports)_ et _[amdtemp(4)](https://www.freebsd.org/cgi/man.cgi?query=amdtemp&sektion=4&manpath=freebsd-release-ports)_ peuvent s’attacher sur les microarchitectures Ryzen™ 2 (famille Zen+ / Zen 2). L’infrastructure _Non‑Transparent Bridge_ pour bus PCIe est prise en charge par le nouveau pilote _[ntb_hw_amd(4)](https://www.freebsd.org/cgi/man.cgi?query=rtwn_pci&sektion=4&manpath=freebsd-release-ports)_. Il est construit au dessus de _[ntb_transport(4)](https://www.freebsd.org/cgi/man.cgi?query=ntb_transport&sektion=4&manpath=freebsd-release-ports)_ et _[if_ntb(4)](https://www.freebsd.org/cgi/man.cgi?query=if_ntb&sektion=4&manpath=freebsd-release-ports)_. Ceci permet, entre autres, de faire communiquer deux processeurs sur un même système monopuce au travers de zones mémoire ouvertes (_memory window_) et de registres ( `doorbell` et `scrachpad`). ## ARM Cette plate‐forme, [maintenue en Tier‑2](https://wiki.freebsd.org/ARMTier1), suit DTC et nombre de descriptions de *device-tree*, *dts* depuis les dépôts Linux. Aussi, la détection des fonctionnalités du processeur bénéficie désormais, comme sous Linux, du mécanisme dit `HWCAP`. ## crypto Le pilote _[crypto(4)](https://www.freebsd.org/cgi/man.cgi?query=crypto&sektion=4&manpath=freebsd-release-ports)_ vous prévient si vous utilisez encore des algorithmes obsolètes, de même que _[geli(8)](https://www.freebsd.org/cgi/man.cgi?query=geli&sektion=8&manpath=freebsd-release-ports)_. L’accélérateur _[ccr(4)](https://www.freebsd.org/cgi/man.cgi?query=ccr&sektion=4&manpath=freebsd-release-ports)_ a ajouté le chiffrement `AES-CCM` à sa liste. # ZFS Importation et mise au point de fonctionnalités et correctifs issus, soit de [ZFS on Linux](https://github.com/zfsonlinux), soit d’[openZFS](http://www.open-zfs.org/wiki/Main_Page). Nombre de clefs de configuration ont été ajoutées, et certaines clefs existantes sont désormais accessibles en écriture. Le montage de *dataset* [en parallèle](https://github.com/openzfs/openzfs/commit/a3f0e2b569) est implémenté. _[zfs(8)](https://www.freebsd.org/cgi/man.cgi?query=zfs&sektion=8&manpath=freebsd-release-ports)_ amène les drapeaux `-v`, `-n` et `-P` pour permettre un affichage plus complet lors de l’envoi de *bookmarks* ; *bookmarks* qu’il est désormais possible de renommer. Lors de l’exécution d’un `zfs send`, utilisez l’option `-V` pour afficher une barre de progression dans la barre de titre du terminal. # Réseau Diverses modifications et implémentations ont été intégrées, ainsi que la prise en charge de nouveaux matériels, notamment [Chelsio](https://www.freebsd.org/cgi/man.cgi?query=cxgbe&sektion=4&manpath=freebsd-release-ports) et [Mellanox](https://www.freebsd.org/cgi/man.cgi?query=mlx5en&sektion=4&manpath=freebsd-release-ports). Pour en savoir plus, consultez les pages de manuel des pilotes de périphérique. Arrivée de _[cdceem(4)](https://www.freebsd.org/cgi/man.cgi?query=cdceem&sektion=4&manpath=freebsd-release-ports)_ qui prend en charge les réseaux virtuels des cartes USB iLO 5, découvertes dans les nouveaux HPE® Proliant™. Le démon SNMP, [bsnmpd(1)](https://www.freebsd.org/cgi/man.cgi?query=bsnmpd&sektion=1&manpath=freebsd-release-ports), prend en charge l’IPv6. Implémentation de `NAT64 CLAT` (RFC6877) et de l’encapsulation `GRE‑in‑UDP` (RFC 8086). Ajout de la [clef de configuration](https://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&manpath=freebsd-release-ports), `net.inet.tcp.rexmit_initial`, pour le réglage de la minuterie de retransmission [TCP](https://www.freebsd.org/cgi/man.cgi?query=tcp&sektion=4&manpath=freebsd-release-ports) (`RTO.Initial`). Amélioration des performances de _[pfsync(4)](https://www.freebsd.org/cgi/man.cgi?query=pfsync&sektion=4&manpath=freebsd-release-ports)_ en jouant sur la clef `net.pfsync.pfsync_buckets`. Beaucoup de travail sur l’infrastructure _[netmap(4)](https://www.freebsd.org/cgi/man.cgi?query=netmap&sektion=4&manpath=freebsd-release-ports)_ et son pilote _[ptnet(4)](https://www.freebsd.org/cgi/man.cgi?query=ptnet&sektion=4&manpath=freebsd-release-ports)_. # Base _[swapon](https://www.freebsd.org/cgi/man.cgi?query=swapon&sektion=8&manpath=freebsd-release-ports)_ permet de marquer les blocs comme étant inutilisés ([BIO_DELETE](https://www.freebsd.org/cgi/man.cgi?query=g_bio&sektion=9&manpath=freebsd-release-ports)) et ainsi de *nettoyer* les blocs du fichier d’échange avant usage. Pour le déclarer dans le _[fstab(5)](https://www.freebsd.org/cgi/man.cgi?query=fstab&sektion=5&manpath=freebsd-release-ports)_, précisez `trimonce` en option. Ceci en lien avec l’apparition de l’outil _[trim(8)](https://www.freebsd.org/cgi/man.cgi?query=trim&sektion=8&manpath=freebsd-release-ports)_ qui efface les blocs sans contenu. La nouvelle syntaxe `@XX` pour _[cron](https://www.freebsd.org/cgi/man.cgi?query=cron&sektion=8&manpath=freebsd-release-ports)_, produit un délai de XX secondes entre la fin de l’instruction et son démarrage. La variable `MAILFROM` est ajoutée à l’environnement et les options `-q` et `-n` permettent respectivement de ne rien enregistrer dans le journal et d’éviter d’envoyer un courriel en cas de succès de la commande. # Développement Intégration des _[capsicum_helpers(3)](https://www.freebsd.org/cgi/man.cgi?query=capsicum_helpers&sektion=3&manpath=freebsd-release-ports)_. Ajout du drapeau `MSG_DONTWAIT` à _[send](https://www.freebsd.org/cgi/man.cgi?query=send&sektion=2&manpath=freebsd-release-ports)_, pour rendre les _sockets_ non bloquants à l’envoi. Modification du retour de _[mincore(2)](https://www.freebsd.org/cgi/man.cgi?query=mincore&sektion=2&manpath=freebsd-release-ports)_ en fonction de la clef `vm.mincore_mapped`. `fstat -s` vous donnera des informations sur les sockets. Développeurs, on a toujours [besoin de vous](https://wiki.freebsd.org/IdeasPage)… ## Outils L’outil _[posixshmcontrol(1)](https://www.freebsd.org/cgi/man.cgi?query=posixshmcontrol&apropos=0&sektion=1&manpath=FreeBSD+12.1-RELEASE&arch=default&format=html)_ vous permet de jouer avec la mémoire partagée (_shared‑memory_). Désactivez _[capsicum(4)](https://www.freebsd.org/cgi/man.cgi?query=capsicum&sektion=4&manpath=freebsd-release-ports)_ avec le drapeau `-E` de _[tcpdump(1)](https://www.freebsd.org/cgi/man.cgi?query=tcpdump&sektion=1&manpath=freebsd-release-ports)_ pour retrouver un fonctionnement normal avec IPSec. # Vintage Ajout d’une entrée _[termcap](https://www.freebsd.org/cgi/man.cgi?query=termcap&sektion=5&manpath=freebsd-release-ports)_ pour les [TI Silent 703 et 707](http://bitsavers.informatik.uni-stuttgart.de/pdf/ti/terminal/silent_700/2310453-0001_Model_703_707_Data_Terminals_Maintenance_Manual_Feb84.pdf). # Abandons * _[ctm(1)](https://www.freebsd.org/cgi/man.cgi?query=ctm&sektion=1&manpath=freebsd-release-ports)_ ; * _[timed(8)](https://www.freebsd.org/cgi/man.cgi?query=timed&sektion=8&manpath=freebsd-release-ports)_ ; * *user‑space mode‑setting* pour les Radeon ; * ipsd (IP Scan Detetor, ipfilter) ; * [lazy FPU](https://linuxfr.org/news/faille-lazy-fpu-state-restore) sur x86-64. # À venir FreeBSD va‑t‑il [brancher ZFS sur Z‑O‑L plutôt qu’OpenZFS](https://lists.freebsd.org/pipermail/freebsd-fs/2018-December/027085.html) ?