======Installation de freeBSD 12.0 / 12.1 ====== Sur laptop, DELL Latitude E5430 et DELL Latitude E6410 Testé avec un schéma de partition UFS et ZFS, en mode UEFI et LEGACY. ===== Installation ===== Récupérer l'iso de freeBSD. La graver sur une clef USB et booter dessus. Suivre l'installation pas à par pas. | {{ :img_3209.jpg?direct&200 |}} | {{ :img_3210.jpg?direct&200 |}} | Faire attention au stade de configuration réseau de choisir pour ETSI / FR "country FR regdomain ETSI" "country FR regdomain ETSI" Voici les options que j'ai choisies lors de **System Configuration** {{ :img_3211.jpg?direct&200 |}} Rebooter sur freeBSD =====Francisation===== Editer le fichier **/etc/login.conf** default:\ :passwd_format=sha512:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ :nologin=/var/run/nologin:\ :cputime=unlimited:\ :datasize=unlimited:\ :stacksize=unlimited:\ :memorylocked=64K:\ :memoryuse=unlimited:\ :filesize=unlimited:\ :coredumpsize=unlimited:\ :openfiles=unlimited:\ :maxproc=unlimited:\ :sbsize=unlimited:\ :vmemoryuse=unlimited:\ :swapuse=unlimited:\ :pseudoterminals=unlimited:\ :kqueues=unlimited:\ :umtxp=unlimited:\ :priority=0:\ :ignoretime@:\ :charset=UTF-8:\ :lang=fr_FR.UTF-8:\ :umask=022: Ajouter pour que les locales soient prises en compte :charset=UTF-8:\ :lang=fr_FR.UTF-8:\ Le recharger cap_mkdb /etc/login.conf =====Initialisation de pkg===== | {{ :img_3213.jpg?direct&400 |}} | {{ :img_3214.jpg?direct&400 |}} | =====AJOUTER un user===== # adduser L’inclure dans les groupes : **wheel operator video** Editer .login_conf [ragnarok@asgard-freebsd:~] $ cat .login_conf # $FreeBSD: releng/12.0/share/skel/dot.login_conf 77995 2001-06-10 17:08:53Z ache $ # # see login.conf(5) # me:\ :charset=UTF-8:\ :lang=fr_FR.UTF-8: =====Gestion du son===== # kldload snd_driver cat /dev/sndstat Installed devices: pcm0: (play/rec) default pcm1: (play/rec) pcm2: (play) pcm3: (play) pcm4: (play) No devices installed from userspace. # sysrc kld_list+=snd_hda =====Affichage : drm-kmod===== Installer le paquet pkg install drm-kmod Initialisation au boot sysrc kld_list+="/boot/modules/i915kms.ko" Le charger kldload /boot/modules/i915kms.ko Vérifier kldstat -v | grep i915 ===== Network Manager ===== ==== Network Manager ==== pkg show networkmgr WWW : https://github.com/GhostBSD/networkmgr Comment : FreeBSD/GhostBSD network conection manager Annotations : repo_type : binary repository : FreeBSD Flat size : 1.71MiB Description : NetworkMgr is an open source, Network Manager based on the look of the Linux Network Manager user interface. It use ifconfig and netif if make all work. Il faudra ensuite configurer DOA pour que ça fonctionne cat /usr/local/etc/doas.conf permit nopass keepenv root permit :wheel permit nopass keepenv :wheel cmd netcardmgr permit nopass keepenv :wheel cmd ifconfig permit nopass keepenv :wheel cmd service Se delogguer, l'utilisateur doit faire partie du groupe **wheel**. Gestion de la connexion par ce fichier cat /etc/wpa_supplicant.conf {{ ::wifi-network.png?direct&400 |}} ==== CLI graphique de gestion ==== pkg install wifimgr {{ ::wifi-mng.png?direct&400 |}} ===== Devices : permissions ===== Permettra en autres l'accès aux périphériques amovibles (CDR,DVD). Nécessaire pour xfburner par exemple. cat /etc/devfs.conf # Allow all users to access optical media perm /dev/acd0 0666 perm /dev/acd1 0666 perm /dev/cd0 0666 perm /dev/cd1 0666 # Allow all USB Devices to be mounted perm /dev/da0 0666 perm /dev/da1 0666 perm /dev/da2 0666 perm /dev/da3 0666 perm /dev/da4 0666 perm /dev/da5 0666 # Misc other devices perm /dev/pass0 0666 perm /dev/xpt0 0666 perm /dev/uscanner0 0666 perm /dev/video0 0666 perm /dev/tuner0 0666 perm /dev/dvb/adapter0/demux0 0666 perm /dev/dvb/adapter0/dvr 0666 perm /dev/dvb/adapter0/frontend0 0666 cat /etc/devfs.rules [devfsrules_common=7] add path 'ad[0-9]\*' mode 666 add path 'ada[0-9]\*' mode 666 add path 'da[0-9]\*' mode 666 add path 'acd[0-9]\*' mode 666 add path 'cd[0-9]\*' mode 666 add path 'mmcsd[0-9]\*' mode 666 add path 'pass[0-9]\*' mode 666 add path 'xpt[0-9]\*' mode 666 add path 'ugen[0-9]\*' mode 666 add path 'usbctl' mode 666 add path 'usb/\*' mode 666 add path 'lpt[0-9]\*' mode 666 add path 'ulpt[0-9]\*' mode 666 add path 'unlpt[0-9]\*' mode 666 add path 'fd[0-9]\*' mode 666 add path 'uscan[0-9]\*' mode 666 add path 'video[0-9]\*' mode 666 add path 'tuner[0-9]*' mode 666 add path 'dvb/\*' mode 666 add path 'cx88*' mode 0660 add path 'cx23885*' mode 0660 # CX23885-family stream configuration device add path 'iicdev*' mode 0660 add path 'uvisor[0-9]*' mode 0660 Mettre à jour le **/etc/rc.conf** avec cette entrée devfs_system_ruleset="devfsrules_common" Prendre en compte les modifications sans rebooter /etc/rc.d/devfs restart ===== Pour la lecture des DVD ===== Il faudra penser à installer le paquet libdvdcss # pkg install libdvdcss ===== Pour la monter un [ DVD | CD ] ===== dmesg | egrep -i 'cd|dvd' Retournera le device un cd mount -t udf /dev/cd0 /mnt un dvd mount -t udf /dev/cd0 /mnt (PS besoin de monter le DVD sous VLC, il le gère) Pour ejecter le CD | DVD eject /dev/cd0 ===== Powerd++ ===== Gestion des processeurs multicores. Desinstaller **powerd** # service powerd stop Stopping powerd. Waiting for PIDS: 50127. # service powerd disable powerd disabled in /etc/rc.conf Ensuite on peut installer et lancer **powerd++** : # service powerdxx enable powerdxx enabled in /etc/rc.conf # service powerdxx start Starting powerdxx. =====X11 / XFCE===== pkg install xorg xfce xfce4-goodies xfce4-mixer xfce4-volumed xf86-video-intel file-roller ====Pour activer le suspend et resume ==== Créer ces 2 fichiers **/usr/local/etc/polkit-1/rules.d/51.shutdown.rules** polkit.addRule(function (action, subject) { if ((action.id == "org.freedesktop.consolekit.system.restart" || action.id == "org.freedesktop.consolekit.system.stop") && subject.isInGroup("PUTYOURGROUPHERE")) { return polkit.Result.YES; } }); **/usr/local/etc/polkit-1/rules.d/52.resume.rules** polkit.addRule(function (action, subject) { if (action.id == "org.freedesktop.consolekit.system.suspend" && subject.isInGroup("PUTYOURGROUPHERE")) { return polkit.Result.YES; } }); puis chown -R polkitd /usr/local/etc/polkit-1/ ====Démarrer xfce==== On aura besoin de dbus Pkg install dbus service dbus onestart Démarrage auttomatique, ajouter cat /etc/rc.conf dbus_enable="YES" On utilisera xinit pour le lacement de XFCE Créer dans le Home un **.xinitrc** # SET PROPER locale export LANG="fr_FR.UTF-8" export LC_ALL="fr_FR.UTF-8" export LC_MESSAGES="fr_FR.UTF-8" # Clavier français setxkbmap fr & # Lancer xfce /usr/local/bin/startxfce4 Lier xinitrc et xsession ln -s ~/.xinitrc ~/.xsession Enfin lancer la session X xinit .xinitrc Pour démarrer la session de XFCE, j'ai choisi la façon manuelle sinon on peut passer, entre autre par SLIM. J'ai donc créer cet alias alias x='xinit ~/.xinitrc' et la commande **x** suffit au démarrage de XFCE Sinon : jeter un oeil à SLIM : [[https://www.freebsd.org/cgi/man.cgi?query=slim&sektion=1&manpath=freebsd-release-ports|Slim]] ====anti-aliasing avec la police Helvetica===== Editer ce fichier ainsi : **/usr/local/etc/fonts/local.conf**     ~/.fonts                             false                                         true                                                                             Ohsnapu                                                                                             false                                         ====Gestionnaire WIFI==== Bien que par défaut, on n'en a pas besoin. On peut vouloir utiliser un outil style Gestionnaire Wifi pkg install wifimgr Sinon la(es) connexion(s) se gère(nt) via : cat /etc/wpa_supplicant.conf ====Barre de Menu pour XFCE==== J'utilise Plank, simple et convivial. # pkg install plank Ajouter cette commande au démarrage de XFCE =====Paramétrage de Xorg===== ====Carte video==== Créer ces 2 fichiers # cat /usr/local/etc/X11/xorg.conf.d/card.conf Section "Device" Identifier "Card0" Driver "intel" Option "DPMS" Option "Backlight" "intel_backlight" EndSection ====Le clavier==== # cat /usr/local/etc/X11/xorg.conf.d/keyboard.conf Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbLayout" "fr" Option "XkbOptions" "terminate:ctrl_alt_bksp,ctrl:nocaps" EndSection =====Configuration spécifique===== ====timeout boot==== Diminuer le timeout du menu du boot loader à 2 secondes sysrc -f /boot/loader.conf autoboot_delay=2 ====Acc. chiffr.==== Accélération de chiffrement des processeurs modernes #echo 'aesni_load="YES"' >> /boot/loader.conf Module à charger dans /boot et non /etc/rc.conf pour un chargement plus rapide ====Scheduler==== Configuration pour une utilisation pour desktop/laptop sysrc -f /etc/sysctl.conf kern.sched.preempt_thresh=224 Pour activer la réponse «yes» aux questions de fsck au démarrage: sysrc fsck_y_enable=YES ====Micro codes CPU==== Utiliser micro codes CPU pkg install devcpu-data service microcode_update enable service microcode_update start ==== ACPI ==== === CPU et TEMP === device driver for Intel Core on-die digital thermal sensor cpuctl pseudo device sysrc kld_list+=coretemp sysrc kld_list+=cpuctl ==== Fn Keys : DELL latitude E5430 ==== Ai rencontré un soucis avec les touches **Fn + brightness** seulement sur le Latitude E5430. Avec le Latitude E6410 pas de soucis. Les touches** FN et luminosité -up/down** ne fonctionnent pas. De plus **xbindkeys** ne retourne aucun code avec l'association **Fn + Brightness UP / Down** (Pas de Mod 2 + quelque chose) Solution adoptée. Installer : pkg install xbindkeys intel-backlight Fichier de configuration : cat .xbindkeysrc # PERSONNAL XBINDKEYS "intel_backlight decr 10" Alt + Down "intel_backlight incr 10" Alt + Up Lancer xbindkeys au démarrage de la session **~/.xinitrc** Ajouter cette section avant le démarrage de XFCE dans # Démarrer xbindkeys /usr/local/bin/xbindkeys & ==== XFCE / FLUXBOX / OPENBOX ==== Pour avoir le choix entre plus Windows Manager : ici fluxbox, openbox pkg install openbox openbox-themes obconf fluxbox fluxbox-tenr-styles-pack icewm wmakerconf windowmaker blackbox Modifier le fichier **~/.xinitrc** de cette façon # GESTIONNAIRE X DEFAULT_SESSION=startxfce4 case $1 in o) exec openbox ;; f) exec fluxbox ;; i) icewmbg & icewmtray & exec icewm ;; w) exec wmaker ;; b) exec blackbox ;; *) exec $DEFAULT_SESSION ;; esac Dans votre shell, créer l'alias suivant alias x='xinit ~/.xinitrc' A la connexion, un **x** lancer xfce, **x o** openbox **x b** blackbox.... =====Monter les périphériques amovibles===== Attention la version d’automount des repos ne permet pas de monter du FAT32. Utiliser cette procédure. Attention sous FreeBSD **12.1**, **fusefs-ext4fuse** n'est plus disponible. Utiliser **sysutils/fusefs-ext2** à la place (ce module permet le montage des ext2, ext3 et ext4 en lecture / écriture). ====Installer git==== # pkg install git # git clone https://github.com/vermaden/automount.git ====Initialisation des ports==== (nécessaires pour compiler exfat-utils/exFAT et sysutils/fusefs-exfat) # portsnap fetch # portsnap extract Compilation de fusefs-exfat # cd /usr/ports/sysutils/fusefs-exfat/ # make install clean Accepter la licence et toutes les options par défaut Compilation de exfat-utils # cd /usr/ports/sysutils/exfat-utils/ # make install clean Même procédure Installer le reste des dépendances via pkg # pkg install fusefs-ntfs fusefs-ext4fuse fusefs-hfsfuse fusefs-lkl fusefs-simple-mtpfs zenity Détarer automount-1.6.1.tar.gz récupéré du git , entrez dans le dossier Editer ce fichier de cette façon $ cat /usr/local/etc/automount.conf USERUMOUNT=YES ATIME=NO REMOVEDIRS=YES FM="thunar" USER=ragnarok ENCODING=fr_FR.UTF-8 CODEPAGE=cp850 Installation manuelle d'automount # cp automount.conf /usr/local/etc/automount.conf # cp automount_devd.conf /usr/local/etc/devd/automount_devd.conf # cp automount /usr/local/sbin/automount # chmod +x /usr/local/sbin/automount # /etc/rc.d/devd restart Et hop, ça fonctionne…... ===== Gérer le log d'automount ===== A la base je n'avais pas pensé à cela, mais avec le temps j'observe un log d'automount de 350 Mo ! Il faut donc utiliser [[https://www.freebsd.org/cgi/man.cgi?query=newsyslog.conf&sektion=5&n=1|newsyslog]] afin de le gérer. su - cd /etc/newsyslog.conf.d/ nano automount.conf avec le contenu suivant : # newsyslog for automount # Cyrille /var/log/automount.log 640 7 1000 * JC Dès lors une archive sera créée dès que le log sera supérieur à 1 000Kb et 7 archives seront conservées. =====Dropbox===== J'ai laissé tomber **dropbox**. J'ai opté pour l'installation de **Seafile** sur mon VPS et le client GUI **seafile-gui** dispo dans les repos de FreeBSD, Linux sur les postes clients. Fait très bien le travail demandé ;) Pas de portage Dropbox sous freeBSD Le kernel de freeBSD ne prend pas en charge **inotify** donc pas de dropbox... En tout cas dropbox ne fournit pas de client freeBSD. Reste à trouver une alternative ou utiliser wine et le client windows (parait il)... Il y aussi [[https://www.freshports.org/devel/libinotify|libnotify]] mais pas trop cherché dans ce sens .... En alternative, il y a [[https://www.freshports.org/net/rclone|rclone]] qui fait très bien le travail mais en ligne de commande. Mais reste très gérable. pkg info rclone rclone-1.43 Name : rclone Version : 1.43 Installed on : Sat Feb 23 19:02:31 2019 CET Origin : net/rclone Architecture : FreeBSD:12:amd64 Prefix : /usr/local Categories : net Licenses : MIT Maintainer : wg@FreeBSD.org WWW : https://rclone.org/ Comment : Sync files to and from various cloud services Annotations : FreeBSD_version: 1200086 repo_type : binary repository : FreeBSD Flat size : 26.1MiB Description Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage WWW: https://rclone.org/ On l'installe # pkg install rclone Puis on le configure $ rclone config Toute la doc est là [[https://rclone.org/dropbox/|Configurer rclone pour Dropbox]] L'option dropbox est la **7**, on valide le tout et on finit par être redirigé vers une page **d'association dropbox/rclone** qu'on renseigne et valide. Sur mon système mon répertoire **dropbox** et dans mon** /home/$USER/Dropbox** et contient 2 dossiers essentiels qui seront mis à jour soit de mon **PC vers la Dropbox** ou de la **Dropbox vers mon PC**. J'ai écrit ce script qui fonctionne sur 3 arguments * le premier : **IN** ou **OUT** : la synchronisation se fait vers la Dropbox ou depuis la Dropbox * le second : **répertoire à mettre à jour** : COURS ou DIR * le dernier : **dry** ou **write** : **dry** : on simule, **write** on met à jour Puis 1 alias : alias dropbox='/home/ragnarok/SCRIPTS/dropbox.sh' Pour mettre à jour le répertoire DIR depuis la Dropbox vers mon PC dropbox IN DIR write Pour simuler une synchroniation du répertoire COURS de mon PC vers la Dropbox dropbox OUT COURS dry Et c'est tout ! Le script ci-dessous : #!/bin/sh echo == DEBUG == echo "Nom du script : $0"; echo argument 1 : $1 echo argument 2 : $2 echo "Tous les arguments : $* ($# arguments)" echo == FIN DEBUG == # ========================================= case $# in 0) echo "Aucun parametre" echo "Syntaxe : $0 IN/OUT DIR/COURS";; 1) echo "Il manque un paramètre !" echo "Syntaxe : $0 IN/OUT DIR/COURS";; 2) echo "2 parametres passes au programme : $1 et $2";; 3) echo "Le 3eme argument ne peut être que --dry-run ou write";; *) echo "TROP DE PARAMETRES !" echo "Syntaxe : $0 IN/OUT DIR/COURS";; esac # ========================================= if [ $1 == "IN" ] then echo "Depuis la dropbox"; source="dropbox:/" ; dest="/home/ragnarok/Dropbox/"; elif [ $1 == "OUT" ] then echo "Vers la dropbox" ; source="/home/ragnarok/Dropbox/" ; dest="dropbox:/"; else echo "$1 : Soit IN soit OUT"; exit; fi # ========================================= if [ $2 == "DIR" ] then echo "Repertoire de DIR"; dir="DIR-2018-2019"; elif [ $2 == "COURS" ] then echo "Repertoire de COURS" dir="COURS-2018-2019"; elif [ $2 == "ecole" ] then echo "Repertoire Ecole" dir="ecole"; else echo "$2 : Soit DIR soit COURS soit ecole"; exit; fi # ========================================= if [ $3 == "dry" ] then echo "Option --dry-run activée"; option="--dry-run"; elif [ $3 == "write" ] then echo "Option: aucune. En action"; option=""; else echo "$3 : Ne peut être que dry ou write"; exit; fi # ========================================= echo "rclone sync $source$dir $dest$dir $option --progress" rclone sync $source$dir $dest$dir $option --progress echo " --------------- Done."; ===== WINE ===== Attention il faut installer le paquet i386 même si on est en 64bit, sinon erreur de segmentation. Donc pkg install i386-wine Puis peaufinage via $ winecfg Accepter tout ce qu'il propose de télécharger et installer. Fonctionne nickel, mais les polices sont vraiment bizarres. Éditer **~/.config/fontconfig/fonts.conf** de cette manière : true true hintslight rgb ===== XFCE / Archives ===== Si vous avez le message d'erreur "Aucun gestionnaire d'archive trouvé" en essayant d'extraire ou de compresser un dossier via Thunar pkg install xarchiver =====Arduino===== Surtout ne pas installer la version depuis les ports, elle ne passe pas (l'iDE d'aruino ne sait pas compiler) et c'est hyper casse-pieds pour la desinstaller. Préférer la version précompilée (**pkg**). pkg install arduino Si nécessaire, inclure votre $USER aux groupes **operator** et **dialer** # sudo pw groupmod operator -m $USER # sudo pw groupmod dialer -m $USER Donner l'accès aux périphériques USB via **/etc/devfs.rules** # cat /etc/devfs.rules # # Allow operators access to usb devices. # [operator_usb=5] add path usbctl mode 0660 group operator add path 'usb/*' mode 0660 group operator add path 'ugen*' mode 0660 group operator Prise en compte des changements # sudo sysrc devfs_system_ruleset=operator_usb Relance du service devfs # sudo service devfs restart On branche sa carte et on vérifie sa détection $ usbconfig ... ugen0.2: at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) {{ ::capture_d_ecran_2019-03-10_14-53-21.png?direct&400 |}} ===== Bash ===== ==== bash comme shell par défaut ==== Attention ne pas changer le shell du root # chsh -s /usr/local/bin/bash {username} grep ragnarok /etc/passwd __Cas d'un système UFS__ cat /etc/fstab ## append the following to /etc/fstab file ## fdesc /dev/fd fdescfs rw 0 0 __Cas d'un système ZFS__ (**fdescfs** doit être monté après la racine zfs) cat /etc/fstab ## append the following to /etc/fstab file ## fdesc /dev/fd fdescfs rw,auto,late 0 0 ==== Autocomplétion ==== add the following to your ~/.bashrc or ~/.bash_profile file: [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \ . /usr/local/share/bash-completion/bash_completion.sh # pkg install bash-completion ==== Alias ==== Créer un fichier **.bash_aliases** touch .bash_aliases Et y mettre ses alias. Si non fait, insérer cette section dans le .bashrc # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi ===== VirtualBox ===== Jeter un oeil : [[freebsdvirtualbox|VirtualBox sous freeBSD]] =====DUAL BOOT freeBSD / Linux===== J'avais une Linux Debian SID d'installée sur mon PC. $ sudo fdisk -l Disque /dev/sda : 111,8 GiB, 120034123776 octets, 234441648 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x0c3bb11c Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/sda1 * 2048 143362047 143360000 68,4G 83 Linux /dev/sda2 226338814 234440703 8101890 3,9G 5 Étendue /dev/sda3 143362048 226338813 82976766 39,6G a5 FreeBSD /dev/sda5 226338816 234440703 8101888 3,9G 82 partition d'échange Donc on voit * sda1 : Partition primaire : Racine linux / * sda2 : Partition étendue * sda 3 : FreeBSD * sda5 : swap Linux **Configuration du grub sous LINUX** Sous LINUX, éditer le fichier suivant : **/etc/grub.d/40_custom** et créer l'entrée ci-dessous Attention hd0,3 car freeBSD est sur /dev/sda3, s'il était sur le 1, mettre hd0,1, sur le 2 hd0,2, sur la seconde partition d'un deuxième disque hd1,2... Donc à adapter à votre configuration #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "FreeBSD 12" { set root='(hd0,3)' kfreebsd /boot/loader } Prendre en compte les modifications de la configuration du grub # update-grub Création du fichier de configuration GRUB… Image Linux trouvée : /boot/vmlinuz-4.10.0-38-generic Image mémoire initiale trouvée : /boot/initrd.img-4.10.0-38-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin unknown Linux distribution trouvé sur /dev/sda3 Rebooter et la nouvelle entrée est fonctionnelle dans le grub. ===== SSD Config [UFS] ===== Rien d'extraorinaire à faire, juste **activer le trim** sur les partitions montées Chez moi ada0p2 (**/**) et ada0p4 (**/home**) Rebooter et démarrer en mode :** Boot Single User** (le n°2). (Il ne faut pas que les partitions soient montées) tunefs -t enable ada0p2 tunefs -t enable ada0p4 Rebooter Vérfier que ce soit pris en compte tunefs -p /dev/ada0p4 | grep trim tunefs: POSIX.1e ACLs: (-a) disabled tunefs: NFSv4 ACLs: (-N) disabled tunefs: MAC multilabel: (-l) disabled tunefs: soft updates: (-n) enabled tunefs: soft update journaling: (-j) enabled tunefs: gjournal: (-J) disabled tunefs: trim: (-t) enabled tunefs: maximum blocks per file in a cylinder group: (-e) 4096 tunefs: average file size: (-f) 16384 tunefs: average number of files in a directory: (-s) 64 tunefs: minimum percentage of free space: (-m) 8% tunefs: space to hold for metadata blocks: (-k) 6408 tunefs: optimization preference: (-o) time tunefs: volume label: (-L) ===== Problème de boot UFS ===== Pour schéma de disque **UFS** Au boot du système, j'avais le message "**Invalid partition table !**" Une pression sur ENTER lançait cependant le système. Voici la marche suivit par régler le problème (déclarer //proprement// la partition active) gpart show => 40 468862048 ada0 GPT (224G) 40 1024 1 freebsd-boot (512K) 1064 25164800 2 freebsd-ufs (12G) 25165864 16777216 3 freebsd-swap (8.0G) 41943080 398458880 4 freebsd-ufs (190G) 440401960 28460128 5 freebsd-ufs (14G) Dans un premier temps, régénérer le secteur de boot cd /boot gpart bootcode -b pmbr -p gptboot -i1 ada0 Si ne fonctionne touojours pas après un redémarrage, re-préciser la partition **active**. [ragnarok@asgard-freebsd:~] $ sudo fdisk -a ******* Working on device /dev/ada0 ******* parameters extracted from in-core disklabel are: cylinders=465141 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=465141 heads=16 sectors/track=63 (1008 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 238 (0xee),(EFI GPT) start 1, size 468862127 (228936 Meg), flag 0 beg: cyl 0/ head 0/ sector 2; end: cyl 1023/ head 255/ sector 63 The data for partition 2 is: The data for partition 3 is: The data for partition 4 is: Do you want to change the active partition? [n] y Supply a decimal value for "active partition" On précise le numéro de la partition où booter et valide le reste. On reboote et ça devrait passer ===== ZFS Configuration ===== Si vous avez choisi cette option, vous devriez avoir cette sortie. [ragnarok@asgard-freeBSD:~] $ zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 9,06G 202G 88K /zroot zroot/ROOT 3,81G 202G 88K none zroot/ROOT/default 3,81G 202G 3,81G / zroot/tmp 208K 202G 208K /tmp zroot/usr 5,24G 202G 88K /usr zroot/usr/home 4,49G 202G 4,49G /usr/home zroot/usr/ports 763M 202G 763M /usr/ports zroot/usr/src 88K 202G 88K /usr/src zroot/var 680K 202G 88K /var zroot/var/audit 88K 202G 88K /var/audit zroot/var/crash 88K 202G 88K /var/crash zroot/var/log 216K 202G 216K /var/log zroot/var/mail 112K 202G 112K /var/mail zroot/var/tmp 88K 202G 88K /var/tmp [ragnarok@asgard-freeBSD:~] $ zfs get -r canmount zroot NAME PROPERTY VALUE SOURCE zroot canmount on default zroot/ROOT canmount on default zroot/ROOT/default canmount noauto local zroot/tmp canmount on default zroot/usr canmount off local zroot/usr/home canmount on default zroot/usr/ports canmount on default zroot/usr/src canmount on default zroot/var canmount off local zroot/var/audit canmount on default zroot/var/crash canmount on default zroot/var/log canmount on default zroot/var/mail canmount on default zroot/var/tmp canmount on default Si problème de montage au boot, vérifier que **/etc/rc.conf** contienne bien cette ligne zfs_enable="YES" Normalement le TRIM est pris en compte par défaut root@asgard-freeBSD:~ # sysctl vfs.zfs.trim vfs.zfs.trim.max_interval: 1 vfs.zfs.trim.timeout: 30 vfs.zfs.trim.txg_delay: 32 vfs.zfs.trim.enabled: 1 root@asgard-freeBSD:~ # sysctl -d kstat.zfs.misc.zio_trim kstat.zfs.misc.zio_trim: kstat.zfs.misc.zio_trim.failed: Number of TRIM requests that failed for reasons other than not supported kstat.zfs.misc.zio_trim.unsupported: Number of TRIM requests that failed because TRIM is not supported kstat.zfs.misc.zio_trim.success: Number of successful TRIM requests kstat.zfs.misc.zio_trim.bytes: Number of bytes successfully TRIMmed root@asgard-freeBSD:~ # sysctl -a |grep _trim kern.cam.nda.max_trim: 256 kstat.zfs.misc.zio_trim.failed: 0 kstat.zfs.misc.zio_trim.unsupported: 0 kstat.zfs.misc.zio_trim.success: 34651 kstat.zfs.misc.zio_trim.bytes: 2751168512 OPtimisation en lecture / écriture (mais tout dépend de l'utilisation que vous en faites) zpool add 'nom_du_zpool' cache 'nom_du_device_ssd' zpool add 'nom_du_zpool' log 'nom_du_device_ssd' ===== Gestion des fichiers core ===== ==== core générés par le kernel ==== Dans **__/etc/sysctl.conf__** Ajouter cette option kern.coredump=0 Ou celle-ci : Reroutage des fichiers core kern.corefile=/dev/null OU dumpdev="NO" to your **__/etc/rc.conf__** ==== core générés par les applications ==== CSH limit coredumpsize 0 dans **/etc/csh.login** BASH ulimit -c 0 dans **.bash_profile** ===== Gestion des paquets PKG ===== ==== Gestion des mises à jour (PKG) ==== Récupérer la liste des mises à jour # pkg update La déployer # pkg upgrade ==== Geler / dégeler un paquet ==== Lister les paquets gelés # pkg -l Geler un paquet === # pkg lock -y LePaquet Dégeler un paquet # pkg unlock LePaquet ==== Installer la dernière version des paquets de pkg ==== Créer ce dossier mkdir -p /usr/local/etc/pkg/repos et ce fichier cat /usr/local/etc/pkg/repos/FreeBSD.conf FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" } Recharger la base de données des paquets pkg upgrade -f Mettre à jour === Vérfier quel dépôt est utilisé=== pkg -vv === Informations sur pkg=== pkg info pkg ===== Gestion des ports ===== Pour ceux qui préfèrent compiler les paquets par eux. ==== via portsnap ==== Première install # portsnap fetch # portsnap extract Pour les fois suivantes # portsnap fetch update Installer un programme # cd /usr/ports/shells/bash Installer # make install clean Le supprimer # make deinstall ==== portmaster et mise à jour des ports ==== Pour mettre à jour les logiciels des ports, le plus simple est d'utiliser portmaster # cd /usr/ports/ports-mgmt/portmaster # make install clean Lister les paquets à mettre à jour # portmaster -L Les mettre à jour # portmaster -a Portmaster peut aussi être utiliser pour gérer l'installation d'un programme. Exemple # portmaster shells/bash ===== Patchs de sécurité ===== freebsd-version -k Print the version and patch level of the installed kernel. Unlike uname(1), if a new kernel has been installed but the system has not yet rebooted, freebsd-version will print the version and patch level of the new kernel. -r Print the version and patch level of the running kernel. Unlike uname(1), this is unaffected by environment variables. -u Print the version and patch level of the installed userland. These are hardcoded into freebsd-version during the build. root@asgard-freeBSD:~ # freebsd-update fetch src component not installed, skipped Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching public key from update4.freebsd.org... done. Fetching metadata signature for 12.0-RELEASE from update4.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. Preparing to download files... done. root@asgard-freeBSD:~ # freebsd-update install src component not installed, skipped Installing updates... done. root@asgard-freeBSD:~ # uname -a FreeBSD asgard-freeBSD 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64 root@asgard-freeBSD:~ # freebsd-version -u 12.0-RELEASE-p5 root@asgard-freeBSD:~ # freebsd-version -k 12.0-RELEASE-p4 ===== Upgrader freeBSD 12.0 à 12.1 ===== # freebsd-update fetch # freebsd-update install # freebsd-update upgrade -r 12.1-RELEASE # freebsd-update install A cette étape, rebooter le système : # shutdown -r now Après ce reboot, freebsd-update(8) doit être relancer avec les nouveaux composants de l'userland: # freebsd-update install A cette étape les utilisateurs sont invités par freebsd-update(8) à reconstruire leurs applications tiers (comme celles compilées depuis les sources (/usr/port/) afin de faire correspondre les librairies système. Une fois fait, relancer freebsd-update(8) afin de supprimer les libraires inutiles # freebsd-update install Enfin rebboter sous **FreeBSD 12.1-RELEASE** # shutdown -r now Une fois rebooter, il est recommandé de régénérer le paquet pkg afin d'éviter de futurs problèmes lors des installations à venir. # pkg-static install -f pkg ===== Sources ===== Je n'ai pas pondu tout cela tout seul, j'ai lu pas mal de docs et les forums BSD. Voici les sources indispensables à mon avis : *[[http://olivier.cochard.me/bidouillage/installation-et-configuration-de-freebsd-comme-poste-de-travail|O. Cochard FreeBSD]] *[[https://vermaden.wordpress.com/|Mine d'or d'informations]] *[[https://github.com/vermaden|GIT de Vermaden]] *[[https://www.c0ffee.net/blog/freebsd-on-a-laptop/|FreeBSD on a laptop]] *[[https://www.tecmint.com/things-to-do-after-installing-freebsd/|Post installation freeBSD laptop]] *[[https://www.cyberciti.biz/faq/freebsd-bash-installation/|FreeBSD Install BASH Shell Using pkg command]] *[[https://cooltrainer.org/a-freebsd-desktop-howto/|A FreeBSD 11 Desktop How-to]] Et surtout *[[https://www.freebsd.org/| Site FreeBSD]] *[[https://forums.freebsd.org/|Forums FreeBSD]] *[[https://www.freebsd.org/doc/fr/books/handbook/|HandBook Français de FreeBSD]] *[[https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl| Forum FUG-FR]] *[[http://open-zfs.org/wiki/Performance_tuning|ZFS]]