Autres
AideEnLigne
CahierDeBrouillon
Présentation
Administration

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

Informations
[Rue 89]
[Tele libre]

DNS etc
[Robtex]
Logins
Votre ID: 111
Nom:
Login utilisateur
Mot de passe éditeur

ComputingFreeBSD

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

+Misc
many articles [writing rc, etc] https://www.freebsd.org/doc/en/articles/
Soft update article [and ref to PDF paper] https://lwn.net/Articles/339337/
Cloning a live FreeBSD? ZFS system [and other ZFS admin tasks] http://daemon-notes.com/articles/system/zfs-maintenance/clonezfs
Install FreeBSD? Jails the hard way https://clinta.github.io/freebsd-jails-the-hard-way/
cflags to make files undeletables [linux chattr] man chflags(1)
Installation, gestion, trucs et astuces sur OpenBSD? http://obsd4a.net/wiki/doku.php?id=start
installation FreeBSD? http://olivier.cochard.me/bidouillage/installation-et-configuration-de-freebsd-comme-poste-de-travail
FreeBSD? et WIFI http://www.linuxpedia.fr/doku.php/bsd/freebsd-wifi
DragonFly BSD Handbook http://www.dragonflybsd.org/docs/newhandbook/
Unicode and FreeBSD http://opal.com/jr/freebsd/unicode/
Docs BSD chez Diablotins.org http://diablotins.org
Benzedrine OpenBSD PacketFilter? http://www.benzedrine.cx/pf.html
OpenBSD? errata (security patches) http://www.openbsd.org/errata.html
+A FreeBSD? 11 Desktop How-to
+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
+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 https://www.freebsd.org/doc/handbook/updating-upgrading-freebsdupdate.html

    • 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
..

    • First, update ports:
 #portsnap fetch update 

    • To upgrade all (-a) force (-f) and no cleaning distfiles (-D) ports:
 #portmaster -af
All ports are browsed and actions on options are asked

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

Au cas ou les ports ne sont pas installés, mettre à jour le "port collection" avec portsnap :

 #portsnap fetch
 #portsnap extract

    • 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

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.\*

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.

mise a jour 2016-11-08 11:29:06 -- Cmic

+Upgrade to FreeBSD? 8
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:

    * http://www.daemonology.net/blog/2009-07-11-freebsd-update-to-8.0-beta1.html

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

+L'auto-hébergement facile et sécurisé avec OpenBSD?
+IPV6 sur un routeur OpenBSD?
+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 Xorg, KMS, etc.
+Installation
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 ftp://ftp3.fr.freebsd.org 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); http://wiki.freebsd.org/SynapticsTouchpad 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"
  Driver,"mouse"
  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 :

 dbus_enable="YES"
 hald_enable="YES"

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 : http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/desktop-browsers.html

-- 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
Manuel FreeBSD? ici : http://www.freebsd.org/doc/en/books/handbook/network-wireless.html et docs FreeBSD? wifi la http://www.linuxpedia.fr/doku.php/bsd/freebsd-wifi

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
 legal.intel_ipw.license_ack="1" 
 ...

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_wep_load="YES"
 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 192.168.0.10 netmask 255.255.255.0
 #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 http://www.freebsd.org/doc/en/books/handbook/network-wireless.html

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

+WIFI avec NDIS

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 :

 ..
 ndisload="YES"
 if_ndis_load="YES"
 wlan="YES"
 wlan_scan_ap_load="YES"
 wlan_scan_sta_load="YES"
 w70n51_sys.ko_load="YES"
 ...

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 192.168.1.5
 #ifconfig wlan0 ssid chipmunk

Remplir le fichier /etc/wap_supplicant.conf :

 network={
	ssid="chipmunk"
	scn_ssid=1
	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/wlan0.pid

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

 #ifconfig wlan0 192.168.1.2 netmask 255.255.255.0

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 :

 wlans_ndis0="wlan0"

 ifconfig_wlan0="ssid xxxxx DHCP"
ou
 ifconfig_wlan0="ssid xxxxx 192.168.0.5 mask 255.255.255.0"
 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 FreeBSD?

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/da0s1g). Puis sauvegardes, transferts, et zou !

1-Ajout d'un disque externe usb en /dev/ad0

 #bsdlabel /dev/ad0 ; newfs -U /dev/ad0 ; mount !$ /mnt
 #/sbin/init 1 
 #umount /usr ; dump 0sf 500000 /dev/ad0s1f /dev/da0s1/usrdump 
 #bsdlabel -e ==> 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 : 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

snaphot avec mksnap :

 #mksnap_ffs /attic /attic/.snap/test2

find permet de trouveer les snaps :

 #find /var -flags snapshot 

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

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

 [usb_key=1]
 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.

ref: http://www.diablotins.org/index.php/Media_amovibles

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
+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 libiconv.la (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 libiconv.la

 #find /usr/local/lib -name '*.la' | xargs grep -l 'libiconv.la' | xargs pkg which
 /usr/local/lib/libxml2.la was installed by package libxml2-2.8.0_3
 /usr/local/lib/libwmf.la was installed by package libwmf-0.2.8.4_10
 /usr/local/lib/libcddb.la was installed by package libcddb-1.3.2_2
 /usr/local/lib/libcdio.la was installed by package libcdio-0.83_2
 /usr/local/lib/libcdio++.la was installed by package libcdio-0.83_2
 /usr/local/lib/libcdio_cdda.la was installed by package libcdio-0.83_2
 /usr/local/lib/libcdio_paranoia.la was installed by package libcdio-0.83_2
 /usr/local/lib/libiso9660.la was installed by package libcdio-0.83_2
 /usr/local/lib/libiso9660++.la was installed by package libcdio-0.83_2
 /usr/local/lib/libudf.la 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
 ...
  etc

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?: http://www.znapzend.org/
+utilisation de cpdup on FreeBSD?
a faire