[Journal d'Ophelia]
[Blog Larnac]
[Traitement texte en ligne]
[Kim Khal]

[Rue 89]
[Tele libre]

DNS etc
Votre ID: 111
Login utilisateur
Mot de passe éditeur


FreeBSD?, OpenBSD?, etc. Installations, tricks & tips

2019-01-25 15:16:57 Creating a jail with VNAT and ZFS
Power management [lots of usefull commands] article
A script to administer a jail
OpenBSD? Journal [with archives]
FreeBSD? Architecture handbook
A redundant load-balancing firewall system, using FreeBSD?
All FreeBSD? sources [from BSD 4 to FreeBSD? 11.x]
Crer une jail avec iocage
Disk setup on FreeBSD? [BPT, MBR, UEFI boot]
FreeBSD? UEFI root ZFS ans Windows install with
FreeBSD? introduction to jails
Install FreeBSD? Jails the hard way
Creating a Wifi Access Point (WAP) witg FreeBSD?
A FreeBSD? 11 Desktop How-to, a complete article
L'auto-hébergement facile et sécurisé avec OpenBSD?
many articles [writing rc, etc]
Soft update article [and ref to PDF paper]
Cloning a live FreeBSD? ZFS system [and other ZFS admin tasks]
cflags to make files undeletables [linux chattr] man chflags(1)
Installation, gestion, trucs et astuces sur OpenBSD?
installation FreeBSD?
FreeBSD? et WIFI
DragonFly BSD Handbook
Unicode and FreeBSD
Docs BSD chez
Benzedrine OpenBSD PacketFilter?
OpenBSD? errata (security patches)
+Upgrading to FreeBSD? 11-release

  • From 9.2 to 9.3
 #freebsd-update fetch install
  • The patch to /usr/sbin/freebsd-update (2 lines to patch in function fetch_metadata_sanity():
  • Then upgrade to FreeBSD? 11-RELEASE

 # : > /usr/bin/bspatch
 # freebsd-update upgrade -r 11.0-RELEASE
 # freebsd-update install
 <reboot the system>
 # freebsd-update install
 <rebuild third-party software> --> see Upgrading ports & packages
+Upgrading ports & packages
After upgrading FreeBSD?, you have to update and upgrade packages and ports because the ABI has changed with the releaase change) See

    • To upgrade packages:
 #pkg-static upgrade -f
Ex: Emacs24 doesn't exists so emacs25 is proposed.
 Fetching libksba-1.3.4.txz: 100%  156 KiB? 160.0kB/s    00:01
 Fetching libidn-1.33_1.txz: 100%  202 KiB? 207.2kB/s    00:01
 Fetching libid3tag-0.15.1b_1.txz: 100%   57 KiB?  58.7kB/s    00:01

    • If the ports are not yet installed (first install of FreeBSD?), update the "port collection" with this portsnap command:
 #portsnap fetch update
 #portsnap extract

    • If Ports are already installed, update ports:
 #portsnap fetch update 

    • To upgrade all (-a) force (-f) and no cleaning distfiles (-D) (or -d to clean distfiles):
 #portmaster -af

Note: portmaster is a shell script, portupgrade is a Ruby script which needs Ruby to be installed)

All ports are browsed and actions on options are asked

    • to upgade one port (this will upgrade and compile all dependancies)
 #portmaster emacs

    • After a portmaster command, you can delete distfiles which are not useful anymore
 #portmaster --clean-distfiles

    • After upgrading ports, do a freebsd-update to tie up all the loose ends in the upgrade process:

 #freebsd-update install

Pour comparer les programmes installés aux versions dans les ports :

 #portmaster -L --index-only  | egrep '(ew|ort) version|total install'
         ===>>> New version available: bash-4.1.10
 ===>>> 674 total installed ports

    • Ex: Mise a jour de perl5.10 vers perl5.12:
 #portmaster -o lang/perl5.12 lang/perl5.10

    • Autre méthode de mise a jour avec portupgrade:
 #/usr/local/sbin/pkgdb -Ff
 #cd /usr/ports
 #portupgrade -o lang/perl5.12 -f perl5.10.\*

When the port database index is corrupted :

NB: durant la manip j'ai une erreur "Updating the portsdb ..... 22713 port entries found error] remove and try again. Ce qui signifie que la bd index des ports est corrompue. La reconstruire :

 #cd /usr/ports
 #rm -rf INDEX*
 #make index
 #portsdb -Uu

NB: /usr/sbin/sysinstall has been removed since 10.0. Replaced by bsdconfig and bsdinstall.

 -- Cmic maj 2016-11-08 11:29:06
+Upgrading FreeBSD?
The freebsd-update(8) utility supports binary upgrades of i386 and amd64 systems running earlier FreeBSD? releases. Systems running 7.[012]-RELEASE, 8.0-BETA[1234], or 8.0-RC[123] can upgrade as follows:

 # freebsd-update upgrade -r 8.0-RELEASE

During this process, FreeBSD? Update may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

 # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

 # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

 # freebsd-update install

At this point, users of systems being upgraded from FreeBSD? 8.0-BETA2 or earlier will be prompted by freebsd-update to rebuild all third-party applications (e.g., ports installed from the ports tree) due to updates in system libraries. See:


for more details. After updating installed third-party applications (and again, only if freebsd-update printed a message indicating that this was necessary), run freebsd-update again so that it can delete the old (no longer used) system libraries:

 # freebsd-update install

Finally, reboot into 8.0-RELEASE:

 # shutdown -r now

+Mounting an ISO image
1.Create a loop-back device with mdconfig

 #mdconfig -a -t vnode -f PATH_TO_YOUR_ISO/ISOFILE.iso

2.Mount the created vnode to a folder (Replace /dev/mdX with your device node!).

 #mount -t cd9660 /dev/mdX /cdrom

NB: See another example in mdconfig(8)

+FreeBSD? 11 and X11, Xorg, KMS, etc.
Install normale...

    • pkgNG FIXME

pkg_add -r emacs # -r so pkg_add searches for the right version)
pkg_add -r xorg
pour Gnome : # pkg_install -r gnome puis : echo /usr/local/bin/gnome-session > ~/.xinitrc
pour Xfce4 : # pkg_add -r xfce4, puis echo startxfce4 > ~/.xinitrc

setenv PAKAGEROOT pour faire les package_add a partir de ce site

pkg_info -L < pkg_name

Pas de xorg.conf ? Le creer sous root :
 # Xorg -configure. Placer ensuite le fichier ~root/xorg.conf dans /etc/X11. 
Config du touchpad sur zazou (DELL latitude D600); et suivre les instructions.
Installer aussi : xrootconsole xscreensaver Eterm
/etc/rc.conf overrides /etc/defaults/rc.conf. Faire les modifs dans ce dernier.

  • Ne pas lancer sendmail : #echo sendmail_enable="NO" > /etc/rc.conf
    • Ne pas lancer sendmail ni son listener : #echo sendmail_enable="NONE" > /etc/rc.conf

  • X11, souris et clavier. Avec Xorg et les version 7, on peut utiliser une de 2 solutions suivantes
    • sans hal : dans /etc/X11/xorg.conf :
 Section "serverLayout"
  Option "AutoAddDevices?" "off"
 Section "InputDevice?"
  Identifier "mouse0"
  Option "protocol' "auto"
  option "device" "/dev/sysmouse"
 Section "InputDevice?"
  Identifier "Keyboard0"
  Option "KbModel?" "PC105"
  Option "xkbVariant" "latin9"
  Option "Xkblayout" "fr"

    • avec hal :

dans xorg.conf, modifier la section ServerLayout?

 Section "serverLayout"
   Option "AutoAddDevices?" "on"

dans /etc/rc.conf, ajouter les 2 lignes suivantes :


puis recopier :

 #cp /usr/local/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /usr/local/etc/hal/fdi/policy

Dans le fichier recopié, modifier ensuite les lignes :

 <merge key="input.xkb.Layout" type="string">fr</merge>
 <merge key="input.xkb.Variant" type="string">latin9</merge>
 <merge key="input.xkb.Option" type="string">compose:rwin</merge>

enfin redemarrer hald et dbus

 #service hald start
 #service dbus start

<2009-11-18 14:08:04 cmic> fixed on 2014-04-16 17:31:24

Installation de flashplayer (sur FreeBSD? 8.0 release)

En fait il faut installer l'emulateur Linux (c'est un gros port) et ensuite le plugin linux flashplayer pour le Web Browser. Chaque utilisateur doit charger le plugin avec la commande :

 prompt>nspluginwrapper -v -a i

On peut alors vérifier les plugins chargés en tapant "about:plugins" dans la barre d'adresse de FF par exemple.

Toutes infos ici :

-- Cmic 2010-07-07 21:53:46

Installation Carte son

Je ne sais pas le type de la carte installée (DELL D600). alors je charge tous les drivers son:

 #kldload snd_driver

et je vérifie avec kldstat, puis avec dmesg et enfin je verifie le pîlote installé :

 #cat /dev/sndstat
 FreeBSD? Audio Driver (newpcm: 32 bit 2009061500/i386)
 Installed devices:
 pcm0: <Intel ICH4 (82801DB)>
 at io 0xf4fff800 irq9 bufsz 16384 kld snd_ich [MPSAFE] 
 (1p:1v/1r:1v channels duplex default)

Manuel FreeBSD? Install parag. 7.2

-- Cmic 2010-07-08 19:04:17

+WIFI natif and with ndis
Manuel FreeBSD? ici : et docs FreeBSD? wifi la

Cas d'un Dell Latitude D600 FreeBSD? 8.0 avec une carte Wifi Intel wm3B2100. Il faut charger le module if_ipw avec kldload ou dans loader.conf en n'oubliant pas la license Intel (sinon erreur SIOCIFADDR2 !) :

 if_ipw_load="YES"       #Intel wireless

NB: a partir de FreeBSD? 8.0, le driver wlan est automatiquement chargés avec le driver hardware if_ipw. Les modules wlan_scan_ap_load wlan_scan_sta_load sont inclus dans wlan.

Toujours dans /boot/loader.conf :

 wlan_ccmp_load="YES"   #load these 2 ones for
 wlan_tkip_load="YES"   #WAP security protocols

Ensuite configurer l'interface :

 #ifconfig wlan0 create wlandev ipw0 inet netmask
 #ifconfig wlan0 list scan
 SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
 A9F1BDF1DAB...  de:8f:59:65:5c:35   10   11M -95:-95  100 IP  
 NEUF_89C8       00:17:33:56:89:cc   11   54M -95:-95  100 EP   WPA WME
 Neuf Wifi       00:17:33:56:89:cd   11   54M -95:-95  100 E    WME
 SFR Wifi Pu...  00:17:33:56:89:ce   11   54M -95:-95  100 E    WME

Legende CAPS : voir

extended service (BSS not IBSS)
IBSS Had hoc network
privacy required (WEP or WAP or..)
Short preambe (56 bits)
short slot time


Cas d'un Dell Latitude D600 avec une carte Wifi Intel wm3a2100. Cette carte ne possède pas de driver pour FreeBSD?. On va donc utiliser les pilotes Windows et les fichier NDIS. On récupère les fichier .sys et .inf de la carte, puis on compile le pilote :

 #ndisgen w70n501.inf w70n51.sys

NB: il y a peut-être un driver pour Intel mini PCI 2100 : if_ipw (cf man ipw) FIXME

Ce qui génère le fichier w70n51_sys.ko que l'on peut charger immédiatement avec kldload. Pour que ce chargement se fasse au boot, placer ce fichier dans le répertoire /boot/modules et modifier le fichier /boot/loader.conf :


Au boot, on doit avoir la ligne ndis0 :

 #ifconfig ndis0
 ndis0: flags=8843<....
        ether 00:0c:f1:43::d6:38
        media: IEEE 802.11 Wireless ...
        status: no carrier

Il faut ensuite associer ce device a un pseudo device wlan ;

 #ifconfig wlan create wlandev ndis0 up
     ....ifconfig montre alors maintenant wlan0 
 #ifconfig wlan0 list scan
   .. afichage de la liste de tous les spots visibles

 #ifconfig wlan0 inet
 #ifconfig wlan0 ssid chipmunk

Remplir le fichier /etc/wap_supplicant.conf :

	psk="le motDePasseDeLaCLefWap?"

L'interface wlan0 est toujours marquee "no carrier". Il faut l'associer au ssid de l'ap

 /etc/rc.d/wpa_supplicant start wlan0

ce qui lance la commande suivante :

 /usr/sbin/wpa_supplicant -s -B -i wlan0 -c /etc/wpa_supplicant.conf \ 
-D ndis -P /var/run/wpa_supplicant/

Mais alors, il faut configurer l'adresse TCP/IP de wlan0 puisque le DHCP n'a pas été configuré.

 #ifconfig wlan0 netmask

On peut alors pinger l'AP.

Tester ci-dessous

Pour que l'interface soit configurée au démarrage, placer les lignes suivantes dans le fichier /etc/rc.conf :


 ifconfig_wlan0="ssid xxxxx DHCP"
 ifconfig_wlan0="ssid xxxxx mask"
 create_args_wlan0="wlanmode sta country FR"

Mais pour que DHCP fonctionne, il faut sans doute installer dhcpcd (/usr/ports/net/dcpcd)...

wlans_rum0="wlan0" ifconfig_wlan0="DHCP"

NB: see doc in the entry 20080420 in /usr/src/UPDATING

+A faire
+Snapshot et mdconfig FreeBSD?

1-Pour créer des snapshots de la partition /home seulement :

/home est en fait un lien vers /usr/home. Je reduis la partition usr (/dev/ad0s1f) de 5GB, je cree une nouvelle partition home de 5GB (/dev/ad0s1g). Puis sauvegardes dump, restauration, et zou !

  • Ajout d'un disque externe usb en /dev/da0 pour dumper /usr

 #bsdlabel /dev/da0 ; newfs -U /dev/da0 ; mount !$ /mnt
 #/sbin/init 1 
 #umount /usr ; dump 0sf 500000 /dev/ad0s1f /dev/da0s1/usrdump 
 #bsdlabel -e /dev/ada0 ==> calcul des tailles des nouvelles partition f et g et mise en place...

Partitionnment avant...

  1. /dev/ad0s1:
8 partitions:
  1. size offset fstype [fsize bsize bps/cpg]
  a:  1048576        0    4.2BSD     2048 16384     8 
  b:  4125280  1048576      swap                    
  c: 78140097        0    unused        0     0         # "raw" part, don't edit
  d:  4159488  5173856    4.2BSD     2048 16384 28552 
  e:  1048576  9333344    4.2BSD     2048 16384     8 
  f: 67758177 10381920    4.2BSD     2048 16384 28552 

partitionnement apres.

  1. /dev/ad0s1
8 partitions:
  1. size offset fstype [fsize bsize bps/cpg]
  a:  1048576        0    4.2BSD     2048 16384     8 
  b:  4125280  1048576      swap                    
  c: 78140097        0    unused        0     0         # "raw" part, don't edit
  d:  4159488  5173856    4.2BSD     2048 16384 28552 
  e:  1048576  9333344    4.2BSD     2048 16384     8 
  f: 57272417 10381920    4.2BSD     2048 16384 28552 
  g: 10485760 67654337    4.2BSD     2048 16384 28552 

 #newfs -U /dev/ad0s1f ; newfs -U /dev/ad0s1g

2-Creation d'un memory disque sauvegardé dans un fichier (de nom "newimage")

NB: mdconfig attach a memory disk (-a) the /dev/md0 type (-t) vnode from file newimage, unit (-u) 0. Disklabel writes (-w) labels on md0 type auto. Newfs on /dev/md0.

 # dd if=/dev/zero of=newimage bs=1k count=5k 
 # mdconfig -a -t vnode -f newimage -u 0 
 # disklabel -w md0 auto 
 # newfs md0
 # mount /dev/md0 /mnt 
 ... copies -> /mnt

et démontage, puis supression

 # umount /mnt
 # mdconfig -d -u 0

3-creation et montage d'un disque sur fichier avec mdmfs. Idem ci-dessus, mais mdmfs utilise mdconfig, newfs et mount.

 # dd if=/dev/zero of=newimage bs=1k count=5k 
 # mdmfs -F newimage -s 5m md0 /mnt 
 ....operations sur /mnt
 #umount ...

4-Creation d'un disque RAM md1 de 5MB, label MonDisque?

 #mdconfig -a -t malloc -s 5m -u 1
 #newfs -L MonDisque? /dev/md1

5- Snapshots:

5.1- creer un snapshot avec mount option snapshot.

NB: Par defaut le file system est soft-updates UFS et journaled. Or le journaling est incompatible avec snapshot.

NB: le snap et son répertoire doivent etre sur le meme systeme de fichier

/dev/ada1p1 on /attic (ufs, local)

 #mkdir /attic/.snap
 #cd /
 #mount -u -o snapshot /attic/.snap/test /attic

On peut monter le snapshot sur un vnode et extraire des fichiers :

 #mdconfig -a -t vnode -o readonly -f /attic/.snap/test -u 4
 #mount -r /dev/md4 /mnt
 #cp /mnt/file-x /tmp
 #umount /mnt && mdconfig -d -u 4

5.2- Creer un snaphot de /attic avec mksnap :

 #mksnap_ffs /attic /attic/.snap/test2

find permet de trouveer les snaps :

 #find /attic -flags snapshot 

a partir du snapshot : sauvegarde, fsck, dump, montage en read-only, etc.

5.3- Et enfin enlever le snapshot:

 #rm -rf /attic/.snap/test

+Montage CDROM et USB par un user

Utiliser devfs.conf(5). Exemple de fichier /etc/devfs.conf.

 own acd0 root:cdrom
 perm acd0 0660
 own cdrom root:cdrom
 perm cdrom 0660
 own     fd0 root:floppy
 perm    fd0     0660

Le propriétaire root ou le goupe floppy (:floppy) ont la permission d'écrire sur le floppy.

Pour que le montage d'un périphérique puisse être fait par un user :

 #sysctl vfs.usermount=1

Ou bien dans /etc/syysctl.conf. Mais le point de montage doit appartenir au user.

Pour une clef USB, utiliser devfs.rules(5). Exemple de fichier /etc/devfs.rules

 add path 'da2*' mode 0660 user root group cdrom

A la detection, le /dev/da2s1 est cree (puis /dev/das2, ..),

Mieux : utiliser le montage automatique avec le daemon amd. Instalkler puis activer avec automounter_enable=yes dans /etc/rc.conf

Montage d'image iso avec mdconfig (vn et vnconfig sur les FreeBSD? < 5 ). A noter que les images Nero (extension .nrg) ont un entete de 150 blocks de 2048 qu'il faut supprimer pour transformer en format iso.


2011-02-10 10:03:22 -- Cmic

+Retrouver un boot BSD
Perdu le boot FreeBSD? (OpenBSD? ??) suite a install de windows
  1. fdisk -B -b /boot/boot0 device
  2. ou ceci, à vérifier ...
  3. boot0cfg -B ad0
+Ajouter un disque avec gpart
  • le disque systeme est en ada0, le disque supplémentaire en ada1. Faire : gpart show ada1 pour voir l'état des partitions
  • supprimer les partitions existantes, puis le label
 gpart delete -i 1 ada1
 gpart delete -i 2 ada1
 gpart destroy ada1
  • facultativement on peut créer un disque GUID: gpart create -s GPT ada1
  • créer une partition sur tout le disque (sinon il faut dimensionner)
 gpart add -t freebsd-ufs ada1
  • puis formater (ya pas de slices !)
 newfs ada1p1
  • RTFM man gpart of course
+Concatener avec gstripe et gconcat (non testé)
2 disques de 500GB /dev/ad1 et /dev/ada2 1 disque de 160GB /dev/ada3

 gstripe label -v raid /dev/ada1 /dev/ada2  #resulting disc is less than 1TB
 gconcat label -v disk /dev/stripe/raid /dev/ada3

On obtient un disque de ~960GB. On peutr alors utiliser gpart, puis mkfs, puis growfs if UFS, etc.

+Installer ffmpeg
Lors de l'installation de ffmpeg24 avec les ports, curl a du être installé et j'ai sélectionné par erreur http2, ce qui a généré un plantage de la compil. Alors je reviens en arrière dans le port de curl et je fais un make rmconfig pour annuler la/les sélection(s) de config de curl. puis retour sur le port de ffmpeg24, etc.

Utilisation :

Pour pouvoir transformer des fichiers vidéos au format mkv au format avi.

 prompt>ffmpeg -i fichier.mkv -b:v 2500K -ab 192K -c:v libxvid fichier.avi

Le résultat (pour pouvoir lire les .avi sur une TV sony bravia)

  • stream 0 video MPEG-4 Video XVID definition 720x404
  • stream 1 audio MPEG audio layer 1/2/3 (Mpga) 48Khz, 128Kb/s

About bitrate in ffmpeg
Video Conversion done right: Codecs and Software

NB: ffmpeg is deprecated. Use libav instead. 2018-01-20 14:01:18

+Installer minidlna

Ai voulu installer minidlna. ai été obligé d'upgrader plein de paquets. Et puis des paquets ont été effacés (Grrr !) J'ai du réinstaller emacs24 (/usr/ports/editors/emacs), mais (la <=> libtool archive) avait été supprimée.

NB: les libtool archives (.la) sont abandonnés dans les nouvelles versions de FreeBSD?

1- chercher les dépendances de

 #find /usr/local/lib -name '*.la' | xargs grep -l '' | xargs pkg which
 /usr/local/lib/ was installed by package libxml2-2.8.0_3
 /usr/local/lib/ was installed by package libwmf-
 /usr/local/lib/ was installed by package libcddb-1.3.2_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2
 /usr/local/lib/ was installed by package libcdio-0.83_2

2- faire un rebuild de tous les packages trouvés

Il faut alors reconstruire tout ces paquets avec portmaster:

 #portmaster libxml2
 #portmaster libwmf

3- puis refaire un make emacs

Ensuite relancer le port emacs. Si erreur, recommencer la procédure ci-dessus..

+Backup with ZFS and mbuffer and ssh
just try ZnapZend?: