BSD

Tous les articles relatifs aux systèmes d'exploitation de la famille BSD.

Fil des billets

Rétrospective 2016

Dans ce billet, je vais détailler mes activités « visibles » concernant FreeBSD au cours de l'année écoulée.

Lire la suite...

OpenBSD 5.9 est sorti

Poster OpenBSD 5.9

Le 29 mars 2016, la dernière version, 5.9 du système d'exploitation OpenBSD [1] a été publié.

Au menu des réjouissances :

  • Virtualisation
    • Amélioration du protocole Virtio [2], notamment avec la création d'un nouveau driver, viocon(4).
    • Écriture d'un driver natif PVHVM [3] pour l'hyperviseur Xen.
  • Wifi, support de la norme IEEE 802.11n pour certains drivers
  • Prise en compte du nouveau firmware UEFI
  • L'installateur est capable de formater un disque dur avec une table de partitions en GPT
  • UTF-8 est désormais le jeu de caractères par défaut. D'ailleurs le support de l'internationalisation (NLS) a été retiré dans la libc de OpenBSD.
  • Le module noyau pour l'accélération vidéo, DRI [4] a été mise à jour, il est maintenant basé sur le noyau Linux 3.14.52.
  • pledge(2), permet de confiner certains processus, en limitant les appels systèmes au strict nécessaire. En particulier lors d'opérations d'écriture, lecture, pendant l'ouverture de fichiers, ou de file descriptors, la gestion de la mémoire. 453 sur les 707 utilitaires du système de base ont été modifiés, ainsi que 14 ports dont Chromium.

Bien évidemment OpenSMTPD, LibreSSL, OpenSSH ont également été mis à jour.

Parmi les ports on peut citer :

  • GNOME 3.18.2
  • Xfce 4.12
  • Mozilla Firefox 44.0.2
  • Node.js 4.3.0
  • KDE 4.14.3
  • LLVM/Clang 3.5
  • LibreOffice 5.0.4.2

Retrouvez l'ensemble des nouveautés sur cette page et n'oubliez également de jeter un coup d'œil sur la page errata.

Notes

[1] Cela fait plus de 20 ans que le projet existe, et continue d'ajouter des fonctionnalités au fils des années.

[2] Il présente une interface pour les différentes techniques de virtualisations telles que bhyve, KVM, QEMU, et VirtualBox.

[3] Il s'agit d'un type de virtualisation.

[4] Utilisé notamment pour les cartes graphiques Intel HD et ATI Radeon.

Go For It! sous FreeBSD

Sur le Planet Libre je suis tombé sur un post de la communauté elementary OS fr présentant un nouveau logiciel. Il s'agit d'un utilitaire pour gérer une liste de tâches à faire (to-do list). J'en ai fait un « port » pour l'essayer, et voici le résultat (Cliquez sur l'image pour voir la copie d'écran en taille réelle) :

go-for-it.png

OpenBSD 5.6 est sorti

Affiche OpenBSD 5.6

Comme tous les six mois, une nouvelle version est publiée. Voici le changelog.

Dans un précédent billet j'expliquais ma démarche pour installer OpenBSD sur un iBookG4. Cette fois-ci, je vais vous présenter une méthode pour mettre à jour son système, vous allez voir, c'est relativement simple.

Lire la suite...

FreeBSD fête ses 21 ans

Le 1er novembre 1993, la première version stable, 1.0 était annoncée sur comp.os.386bsd.announce. Depuis 21 ans le projet est toujours aussi vivant.

Se tenir informé des développements qui ont lieu sous FreeBSD

Régulièrement, chaque développeur (si il le souhaite) est encouragé à présenter son travail à la communauté. Le dernier vient d'être publié, il couvre les mois de juin à septembre.

Voici les principaux thèmes abordés :

  • Les amélioration au niveau du noyau
  • Le supports de nouvelles architectures
  • Les ports
  • La documentation

En ce qui me concerne, mon principal travail (en autre) consiste à maintenir Xfce à jour, donc vous pouvez lire mon status report.

J'ai également réalisé une vidéo pour montrer les nouveautés que l'on retrouvera dans la prochaine version stable (4.12) du bureau Xfce.

Cela fait toujours plaisir ...

C'est vrai, cela fait toujours plaisir de voir son travail être reconnu « uGet for BSD is Now Available ».

Comme Steadyflow n'est plus maintenu, je suis parti à la recherche d'une alternative, et j'ai trouvé uGet.

Je travaille (dans mon coin) sur l'intégration du support des applets Indicators.

OpenBSD 5.5 sur un iBook G4

openbsd-55.png

Mise à jour d'un précédent billet sur l'installation de OpenBSD sur un iBook G4.

Lire la suite...

Two WebKittens dans le « ports tree »

« Two WebKittens » (Midori 0.5.6) est désormais dans l'arbre des ports de FreeBSD. Je viens de committer la mise à jour.

Cette nouvelle version a été retardée notamment à cause de la ré-écriture du gestionnaire de session (il s'appelle désormais tabby), Libunique a été remplacée par GApplication.

Concernant l'intégration dans FreeBSD, j'ai rajouté la possibilité de pouvoir l'installer avec le support de Gtk+3 (Gtk+2 est toujours le choix par défaut).

Le support de WebKit2 est également activé (pour l'instant c'est désactivé, mais quand www/webkit-gtk3 sera mis à jour, on pourra compiler avec ce support).

Je n'ai pas mis le support pour granite, j'ai noté un bug ennuyeux.

Pour connaître toutes les modifications apportées depuis la précédente version, vous pouvez parcourir le ChangeLog.

Thunar 1.6.0 sous FreeBSD

Vous souhaitez installer la dernière version de Thunar [1] (1.6.0) sous FreeBSD, et bien réjouissez-vous c'est possible.

Note

[1] Il s'agit du gestionnaire de fichiers sous Xfce.

Lire la suite...

OpenBSD sur un iBook G4

OpenBSD logo

Ce billet est un bref récapitulatif pour installer OpenBSD sur une machine disposant d'un processeur PowerPC.

Lire la suite...

Installation pas à pas, du système d'exploitation NetBSD

Logo du système d'exploitation, NetBSD

Ce billet est consacré à la procédure d'installation de NetBSD.

Lire la suite...

Installer FreeBSD, avec mfsBSD [part. 2]

logo FreeBSD

Ce billet est la suite du précédent.

Cette fois-ci, nous allons utilisé une table de partitionnement de type GPT.

Lire la suite...

Installer FreeBSD, avec mfsBSD

logo FreeBSD

Dans ce billet, nous allons voir comment installer FreeBSD avec le live CD mfsBSD.

J'ai choisit la version 8.3.

Lire la suite...

Migration vers FreeBSD 9 enfin terminée

logo FreeBSD

Ce week-end, j'ai décidé de migrer sous la branche releng/9.0 [1] mon laptop. Il fonctionnait auparavant sur la branche releng/8.2 [2].

Il faut dire, que ça me titiller depuis un moment, car je n'étais pas satisfait du partitionnement actuel (absence de répertoire /tmp en RAM), locales toutes en latin9 (je migre de plus en plus vers l'UTF-8). J'en ai profité pour repartir complètement de zéro.

Le partitionnement a bien changé depuis ma dernière installation (à partir d'un CD), qui remonte à la version 6.0. Résultat, au redémarrage l'ordinateur est dans les choux. Je reboote avec le disque d'installation, et recommence l'installation, là l'installateur me sort une erreur, m'indiquant que la partition /dev/ada0p2 est introuvable !!! C'est ma partition racine.

Le lendemain, je recommence, avec cette fois-ci la dernière version de la branche RELENG_7 (7.4). Aucun soucis, car il s'agit de l'ancien installeur (sysinstall). Je migre ensuite vers releng/8.3, je redémarre, l'ordinateur est « planté », j'ai un prompt pour m'aider à booter sur la bonne partition. C'est encore une fois un nouvel échec.

Aujourd'hui, j'ai décidé de prendre le taureau par les cornes, et de tenter une nouvelle installation, et apprivoiser bsdinstall, le nouvel assistant du CD d'installation.

Après avoir sélectionné la bonne disposition du clavier, je suis ensuite passé par le shell, afin de voir l'état du disque dur, avec la commande gpart show (j'ai qu'un seul disque, donc ce n'est pas nécessaire de le mentionner).

En voulant supprimer les précédentes partitions, j'ai obtenu le message d'erreur suivant :

# gpart delete -i 4 ada0
gpart: table 'ada0' is corrupt: Operation not permitted

Après quelques recherches, il faut exécuter le mode recover.

# gpart recover ada0
ada0 recovered

Maintenant la suppression des partitions ne pose plus de problème

[...]
# gpart delete -i 3 ada0
ada0p3 deleted
[...]

J'ai également supprimé la table des partitions MBR. J'ai décidé de migrer sous GPT.

# gpart destroy ada0
ada0 destroyed

# gpart create -s GPT ada0

Une vérification que tout s'est bien passé.

# gpart show
=>       34  195371501  ada0  GPT  (93G)
    	 34  195371501        - free -  (93G)

Création de la partition de boot pour l'entête GPT.

# gpart add -t freebsd-boot -l gpboot -s 512K ada0
ada0p1 added

On installe le bootcode.

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
bootcode written to ada0

Ensuite on passe à la création des partitions.

# gpart add -t freebsd-ufs -l root -s 5G ada0
ada0p2 added
# gpart add -t freebsd-swap -l swap -s 1G ada0
ada0p3 added
# gpart add -t freebsd-ufs -l var -s 3G ada0
ada0p4 added
# gpart add -t freebsd-ufs -l usr -s 62G ada0
ada0p5 added
# gpart add -t freebsd-ufs -l home ada0
ada0p6 added

Au final cela donne ça :

# gpart show
=>       34  195371501  ada0  GPT  (93G)
         34       1024     1  freebsd-boot  (512k)
       1058   10485760     2  freebsd-ufs  (5.0G)
   10486818    2097152     3  freebsd-swap  (1.0G)
   12583970    6291456     4  freebsd-ufs  (3.0G)
   18875426  130023424     5  freebsd-ufs  (62G)
  148898850   46472685     6  freebsd-ufs  (22G)

En quittant le shell on retrouve l'assistant pour continuer l'installation.

À la fin, je suis retourné sous le shell (on est directement dans le chroot de notre nouveau système) pour modifier le fichier /etc/fstab et /etc/rc.conf.

Notes

[1] Afin de pouvoir utiliser la dernière version Xorg.

[2] La fin du support des mises à jour de sécurité approchant à grand pas.

ACPI et FreeBSD

logo du système d'exploitation, FreeBSD

En ce moment, je travaille sur l'intégration de la prochaine version stable (4.10) de Xfce sous FreeBSD.

Un des composants, xfce4-session gère l'hibernation et le suspend to RAM (mise en veille). J'ai donc voulu voir, comment cela été pris en charge par FreeBSD.

L'essais a été effectué sur :

olivier@bornem:~ $ uname -rsp                                   
FreeBSD 8.2-RELEASE-p3 i386
olivier@bornem:~ $ 

État des lieux

Il faut savoir, que par défaut l'ACPI est déjà activé [1]. Cependant on doit rechercher les informations concernant les différentes méthodes de mise en veille.

olivier@bornem:~ $ sysctl -a | grep acpi.supported                  
hw.acpi.supported_sleep_state: S3 S4 S5
olivier@bornem:~ $ 

Sur cet ordinateur, on peut voir que trois états (sleep states) sont « pris en charge » par le système.

On peut également voir, si le BIOS est capable de le gérer.

olivier@bornem:~ $ sysctl -a | grep acpi.s4bios                     
hw.acpi.s4bios: 0
olivier@bornem:~ $ 

Dans mon cas, la valeur est à zéro, donc mon BIOS n'a pas ce support.

On peut tester les différents états (il faut être root) avec l'utilitaire acpiconf.

root@bornem:~ # acpiconf -s 3 

L'état S4 (correspondant à l'hibernation) est équivalent à S5, j'en déduis donc que je ne pourrais pas utiliser cette fonctionnalité.

L'état S3 (suspend to RAM) est pleinement fonctionnel.

Intégration avec le gestionnaire de bureau

xfce4-session possède une dépendance, UPower [2], responsable de la gestion de la consommation (en autre).

Pour pouvoir l'employer, il faut autoriser certaines opérations, grâce notamment à polkit.

On va tout d'abord rechercher les actions possibles concernant UPower.

olivier@bornem:~ $ pkaction | grep upower                           
org.freedesktop.upower.hibernate
org.freedesktop.upower.qos.cancel-request
org.freedesktop.upower.qos.request-latency
org.freedesktop.upower.qos.request-latency-persistent
org.freedesktop.upower.qos.set-minimum-latency
org.freedesktop.upower.suspend
olivier@bornem:~ $ 

J'ai uniquement besoin du support de suspend, j'en profite donc pour créer un fichier .pkla (l'extension est primordiale) situé dans /usr/local/etc/polkit-1/localauthority/50-local.d/.

Voici son contenu :

root@bornem:~ # cat /usr/local/etc/polkit-1/localauthority/50-local.d/org.freedesktop.upower.pkla 
[Suspend]
Identity=unix-group:users
Action=org.freedesktop.upower.suspend
ResultAny=yes
ResultInactive=yes
ResultActive=yes
root@bornem:~ # 

Tous les utilisateurs appartenant au groupe users sont autorisés à mettre en veille (en RAM) le système.

Notes

[1] Si l'on démarre avec les paramètres prédéfinis.

[2] Cette bibliothèque n'est pas fonctionnelle sous tous les BSD

FreeBSD 9.0 est là

logo du système d'exploitation, FreeBSD

Depuis le 12 janvier 2012, la branche 9 est considérée comme stable. D'où l'annonce d'une nouvelle version, il s'agit de la 9.0, (elle débute le cycle de la branche 9-STABLE).

Mise à jour

Si vous possédez une architecture dite, Tier 1 (i386, et amd64), vous pouvez effectuer la mise à jour avec l'utilitaire freebsd-update(8) (pensez à modifier le fichier de configuration /etc/freebsd-update.conf).

Si vous ne l'avez jamais utilisé, c'est le moment, profitez-en !

Cependant si vous ne suivez pas régulièrement les correctifs, vous devez effectuer une manipulation au préalable.

En root copiez ce bout de code :

sed -i '' -e 's/=_/=%@_/' /usr/sbin/freebsd-update

Ou bien, utilisez freebsd-update :

root@bornem:~ # freebsd-update fetch
[...]
root@bornem:~ # freebsd-update install

La mise à jour se fait de la manière suivante (suivez les indications mentionnées) :

root@bornem:~ # freebsd-update upgrade -r 9.0-RELEASE

Maintenant, vous pouvez ré-installer les logiciels supplémentaires que vous avez installé sur votre machine.

Il n'est pas obligatoire de passer à cette version, si vous suivez la branche 8-STABLE, comme moi, une nouvelle version est prévue courant mars 2012. Cependant pour savoir si vous avez besoin de faire une mise à jour, vous pouvez toujours consulter la Release note.

Installation pas à pas, du système d'exploitation FreeBSD

logo FreeBSD

Dans ce billet nous allons voir les principales étapes pour installer un système d'exploitation de type Unix, à savoir FreeBSD.

L'architecture est un système 32 bits, i386.

Le seul prérequis, c'est d'avoir le handbook [1] à porter de main.

Note

[1] Tout y ai expliqué.

Lire la suite...

[FreeBSD] checking for ZLIB... no

logo FreeBSD

Sous FreeBSD, quelques fois on est un peu « à la ramasse » niveau fraîcheur des paquets. C'est pourquoi, j'utilise le système de ports.

Ce matin j'ai décidé de mettre à jour WebKitGTK+, je maintiens ma propre branche, car j'ai toujours une erreur avec GObject-Introspection (c'est activé dans le port officiel) [1], je modifie donc légèrement le Makefile et je lance la commande suivante pour générer le fichier distinfo (il contient la somme des contrôles, permettant de vérifier que le fichier téléchargé est complet) :

root@bornem:/usr/ports/www/webkit-gtk2 # make makesum

Ensuite je lance la compilation, et je précise le dossier dans lequel, je souhaite installer cette bibliothèque. Je fais toujours ça, car cela me permet de corriger le fichier pkg-plist, et de relancer la compilation autant de fois que nécessaire afin de ne plus obtenir d'erreurs.

Pour cela je rajoute une variable dans le Makefile

[...]
NO_MTREE=       yes

.include <bsd.port.pre.mk>

[...]
root@bornem:/usr/ports/www/webkit-gtk2 # mkdir /tmp/webkit-gtk2
root@bornem:/usr/ports/www/webkit-gtk2 # make install PREFIX=/tmp/webkit-gtk2

L'étape de configuration, celle qui permet de vérifier que toutes les dépendances sont installées, s'est arrêtée de manière prématurée.

[...]
checking for icu-config... /usr/local/bin/icu-config
checking for ZLIB... no
configure: error: Package requirements (zlib) were not met:

gnome-config: not found
No package 'zlib' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ZLIB_CFLAGS
and ZLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
===>  Script "configure" failed unexpectedly.
Please run the gnomelogalyzer, available from
"http://www.freebsd.org/gnome/gnomelogalyzer.sh", which will diagnose the
problem and suggest a solution. If - and only if - the gnomelogalyzer cannot
solve the problem, report the build failure to the FreeBSD GNOME team at
gnome@FreeBSD.org, and attach (a)
"/usr/ports/www/webkit-gtk2/work/webkit-1.6.1/config.log", (b) the output of
the failed make command, and (c) the gnomelogalyzer output. Also, it might
be a good idea to provide an overview of all packages installed on your system
(i.e. an `ls /var/db/pkg`). Put your attachment up on any website,
copy-and-paste into http://freebsd-gnome.pastebin.com, or use send-pr(1) with
the attachment. Try to avoid sending any attachments to the mailing list
(gnome@FreeBSD.org), because attachments sent to FreeBSD mailing lists are
usually discarded by the mailing list software.
*** Error code 1

Stop in /usr/ports/www/webkit-gtk2.
*** Error code 1

Stop in /usr/ports/www/webkit-gtk2.

Ce message indique, qu'il ne trouve pas la bibliothèque zlib pour la compression des données.

Je suis resté perplexe, car zlib est présent dans le base system de FreeBSD.

En effet, le script configure recherche le fichier pkgconfig/zlib.pc, or ce dernier est absent. Heureusement que l'on peut surcharger certaines variables d'environnement, notamment ZLIB_CFLAGS et ZLIB_LIBS, évitant ainsi d'avoir recours à l'utilitaire, pkg-config, et de rechercher dans /usr/local/lib.

  ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
  ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config

Je modifie donc le Makefile

[...]
CONFIGURE_ENV=  ac_cv_path_FLEX="${LOCALBASE}/bin/flex" \
                ac_cv_path_DOLT_BASH="" \
               ZLIB_CFLAGS="-I/usr/include" \
               ZLIB_LIBS="-L/usr/lib -lz"

J'ai pu enfin mettre à jour www/webkit-gtk2.

WebKitGTK étant maintenu par gnome@, je suis allé vérifier, si, sur le dépôt MarcusCom, kwm@, ou mezz@ avaient rencontré ce problème. La révision n° 1.81 est quasiment identique à la mienne.

Notes

[1] Actuellement la version présente dans les ports est la 1.4.3.

Astuces concernant KDE4 sous FreeBSD

Certains le savent peut-être, je suis un inconditionnel du gestionnaire de bureaux Xfce, mais il m'arrive, parfois de voir ailleurs ...

Dans cet article, je vais donc m'intéresser à KDE, et donner quelques astuces pour l'utiliser sous FreeBSD.

Lire la suite...

- page 1 de 2