FreeBSD 12.1

Posté par  (site web personnel) . Édité par Davy Defaud, Kwiknclean, Arkem, bubar🦥, palm123 et tisaac. Modéré par Pierre Jarillon. Licence CC By‑SA.
35
11
nov.
2019
FreeBSD

La première mise à jour de FreeBSD 12 est disponible depuis le 5 novembre 2019. Elle est dédiée à Kurt 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.

Sommaire

En bref

La base apporte BearSSL, et OpenSSL est désormais livré en version 1.1.1d.
La version 8.0.1 de LLVM et Cie devient la suite de compilation par défaut et embarque la bibliothèque openMP, libomp.

Du côté des plates‐formes, RISC‑V est activement développé (Tier‑3) alors que PC‑98 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

# freebsd-update upgrade -r 12.1-RELEASE

N’oubliez pas de mettre aussi à jour vos poudrières :

# 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 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) 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 vous propose de créer des machines virtuelles et Hetzner propose un installeur FreeBSD pour certaines de ses machines.

Amorce, loader

Le nouvel installateur écrit en Lua est désormais utilisé par défaut. La version écrite en Forth devrait disparaître de la version 13.

L’implémentation EFI 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 peut amorcer sur un dataset dont l’option large_dnode est activée (cette option est enfin documentée).

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) et tun(4) dans un même module « tuntap ». Vérifiez la configuration de votre noyau et des directives de démarrage, si vous utilisez ceux‑ci.

Le numéro de jail(8) est précisé dans le journal lorsqu’un processus se termine.

Ajout d’une limite réglable lors du démarrage pour les interruptions MSI : machdep.num_msi_irq.

Périphérique, modules

Le nouvel outil spi(8) va vous permettre de communiquer avec les périphériques présents sur un bus SPI. 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 via la clef kern.cam.da.X.quirks, de la même manière que ceux de ada(4).

La gestion via camcontrol(8) 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 kern.cam.da.disable_wp_detection, désactiver la détection de la protection en écriture.

La prise en charge des normes NVMe est activement suivie. Parmi les nouveautés, notez :

  • nvme(4) permet l’hibernation et le réveil par le bus PCI ;
  • l’outil de gestion du sous‑système NVMe, nvmecontrol(8), comprend la commande resv, qui permet de manipuler des réservations NVMe (partage d’espace entre plusieurs hôtes et contrôleurs).

fusefs(5) 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) et mps(4) 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 des moniteurs de tâches, watchdogs TCO, par le pilote ichwd(4), présents sur les cartes mères Lewisburg PCH (C620).

Le mécanisme de protection des pages utilisateur par clef, pkru(3), est implémenté et disponible pour les Xeon SkyLake.

AMD

Les pilotes amdsmn(4) et amdtemp(4) 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). Il est construit au dessus de ntb_transport(4) et if_ntb(4). 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, 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) vous prévient si vous utilisez encore des algorithmes obsolètes, de même que geli(8).
L’accélérateur ccr(4) 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, soit d’openZFS.

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 est implémenté.
zfs(8) 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 et Mellanox. Pour en savoir plus, consultez les pages de manuel des pilotes de périphérique.

Arrivée de cdceem(4) 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), 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, net.inet.tcp.rexmit_initial, pour le réglage de la minuterie de retransmission TCP (RTO.Initial).

Amélioration des performances de pfsync(4) en jouant sur la clef net.pfsync.pfsync_buckets.

Beaucoup de travail sur l’infrastructure netmap(4) et son pilote ptnet(4).

Base

swapon permet de marquer les blocs comme étant inutilisés (BIO_DELETE) et ainsi de nettoyer les blocs du fichier d’échange avant usage. Pour le déclarer dans le fstab(5), précisez trimonce en option. Ceci en lien avec l’apparition de l’outil trim(8) qui efface les blocs sans contenu.

La nouvelle syntaxe @XX pour cron, 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).
Ajout du drapeau MSG_DONTWAIT à send, pour rendre les sockets non bloquants à l’envoi.
Modification du retour de mincore(2) 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

Outils

L’outil posixshmcontrol(1) vous permet de jouer avec la mémoire partagée (shared‑memory).
Désactivez capsicum(4) avec le drapeau -E de tcpdump(1) pour retrouver un fonctionnement normal avec IPSec.

Vintage

Ajout d’une entrée termcap pour les TI Silent 703 et 707.

Abandons

  • ctm(1) ;
  • timed(8) ;
  • user‑space mode‑setting pour les Radeon ;
  • ipsd (IP Scan Detetor, ipfilter) ;
  • lazy FPU sur x86-64.

À venir

FreeBSD va‑t‑il brancher ZFS sur Z‑O‑L plutôt qu’OpenZFS ?

Aller plus loin

  • # Premier release-patch

    Posté par  (site web personnel) . Évalué à 5.

    Attention, le chargeur d’amorçage — en particulier le loader.efi — a quelque peu bougé, faites gaffe quand même.

    Un petit correctif à ce sujet vient de sortir, suivi d'une mise à jour du micro-code intel et de son Machine Check Exception on Page Size Change.

    Bref, voici la 12.1p1.

  • # 12.1

    Posté par  . Évalué à 2.

    Pas grand chose à dire, montée de version encore une fois sans encombre, distro qui continue de tourner comme une horloge atomique en mode server. Sans fioritures.

    J'apprécie les optimisations ZFS qui ne sont pas du flanc, et qui vraisemblablement allègent encore l'usage mémoire 1.13Go de RAM utilisé au total avec ZFS et un SSD 64Go, vraiment cool (Bon il va continuer à s'épandre petit à petit certes).

    Merci pour cette dépêche très complète.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.