Outils pour utilisateurs

Outils du site


installfreebsd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
installfreebsd [2019/03/09 18:47] cyrilleinstallfreebsd [2020/06/06 17:12] (Version actuelle) – [Pour la monter un [ DVD | CD ]] cyrille
Ligne 1: Ligne 1:
-Francisation +======Installation de freeBSD 12.0 / 12.1 ====== 
-Editer le fichier /etc/login.conf+ 
 +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" 
 + 
 +<WRAP center round important 60%> 
 +"country FR regdomain ETSI" 
 +</WRAP> 
 + 
 + 
 +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**
  
  
Ligne 28: Ligne 57:
          :ignoretime@:\          :ignoretime@:\
  :charset=UTF-8:\  :charset=UTF-8:\
- :lang=fr-FR.UTF-8:\+ :lang=fr_FR.UTF-8:\
          :umask=022:</code>          :umask=022:</code>
-Ajouter  +          
 +Ajouter pour que les locales soient prises en compte
 <code bash> :charset=UTF-8:\ <code bash> :charset=UTF-8:\
- :lang=fr-FR.UTF-8:\</code>+ :lang=fr_FR.UTF-8:\</code>
  
 Le recharger  Le recharger 
-<code bash>cap_mkdb /etc /login.conf</code>+<code bash>cap_mkdb /etc/login.conf</code>
  
 +=====Initialisation de pkg=====
 +| {{ :img_3213.jpg?direct&400 |}} | {{ :img_3214.jpg?direct&400 |}} |
  
-AJOUTER un user+ 
 +=====AJOUTER un user=====
 <code bash># adduser</code> <code bash># adduser</code>
-L’inclure dans les groupes : wheel operator video+L’inclure dans les groupes : **wheel operator video** 
 + 
 +Editer .login_conf 
 + 
 +<code bash> 
 +[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:</code>
  
  
  
-Gestion du son+=====Gestion du son=====
  
-<code bash>#kldload snd_driver</code>+<code bash># kldload snd_driver</code>
 <code bash>cat /dev/sndstat <code bash>cat /dev/sndstat
 Installed devices: Installed devices:
Ligne 56: Ligne 101:
 No devices installed from userspace.</code> No devices installed from userspace.</code>
  
-<code bash>#sysrc kld_list+=snd_hda</code>+<code bash># sysrc kld_list+=snd_hda</code>
  
  
-drm-kmod+=====Affichage drm-kmod=====
 Installer le paquet Installer le paquet
 <code bash>pkg install drm-kmod</code> <code bash>pkg install drm-kmod</code>
Ligne 74: Ligne 119:
  
  
-X11 / XFCE+===== Network Manager ===== 
 + 
 + 
 +==== Network Manager ==== 
 + 
 + 
 +<code bash>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. 
 +</code> 
 + 
 +Il faudra ensuite configurer DOA pour que ça fonctionne 
 + 
 +<code bash>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</code> 
 + 
 +Se delogguer, l'utilisateur doit faire partie du groupe **wheel**. 
 + 
 + 
 +Gestion de la connexion par ce fichier 
 + 
 +<code bash> cat /etc/wpa_supplicant.conf</code> 
 + 
 +{{ ::wifi-network.png?direct&400 |}} 
 + 
 +==== CLI graphique de gestion ==== 
 + 
 +<code bash> pkg install  wifimgr</code> 
 + 
 +{{ ::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. 
 + 
 +<code bash>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 
 +</code> 
 + 
 +<code bash>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</code> 
 +     
 +Mettre à jour le **/etc/rc.conf** avec cette entrée 
 + 
 +<code bash>devfs_system_ruleset="devfsrules_common"</code> 
 + 
 +Prendre en compte les modifications sans rebooter 
 +<code bash>/etc/rc.d/devfs restart</code> 
 + 
 +===== Pour la lecture des DVD ===== 
 +Il faudra penser à installer le paquet libdvdcss 
 + 
 +<code bash># pkg install libdvdcss</code> 
 + 
 + 
 +===== Pour la monter un [ DVD | CD ] ===== 
 +<code bash>dmesg | egrep -i 'cd|dvd'</code> 
 +Retournera le device 
 +un cd 
 +<code bash>mount -t udf  /dev/cd0 /mnt</code> 
 +un dvd 
 +<code bash>mount -t udf  /dev/cd0 /mnt</code> 
 + 
 +(PS besoin de monter le DVD sous VLC, il le gère) 
 + 
 +Pour ejecter le CD | DVD 
 +<code bash>eject /dev/cd0</code> 
 +===== Powerd++ ===== 
 +Gestion des processeurs multicores. 
 + 
 +Desinstaller **powerd** 
 + 
 +<code bash># service powerd stop 
 +Stopping powerd. 
 +Waiting for PIDS: 50127. 
 +# service powerd disable 
 +powerd disabled in /etc/rc.conf</code> 
 + 
 +Ensuite on peut installer et lancer **powerd++** : 
 +<code bash># service powerdxx enable 
 +powerdxx enabled in /etc/rc.conf 
 +# service powerdxx start 
 +Starting powerdxx.</code> 
 +=====X11 / XFCE=====
  
 <code bash>pkg install xorg xfce xfce4-goodies xfce4-mixer xfce4-volumed xf86-video-intel file-roller</code> <code bash>pkg install xorg xfce xfce4-goodies xfce4-mixer xfce4-volumed xf86-video-intel file-roller</code>
Ligne 80: Ligne 265:
  
  
-Pour activer le suspend et resume +====Pour activer le suspend et resume ====
 Créer ces 2 fichiers Créer ces 2 fichiers
-<code bash>pkg info -D xfce4-session  
-xfce4-session-4.12.1_4: 
-Always: 
-To be able to shutdown or reboot your system, you'll have to add .rules 
-files in /usr/local/etc/polkit-1/rules.d directory. Which looks 
-like this (replace PUTYOURGROUPHERE by your group): 
  
-polkit.addRule(function (action, subject) {+**/usr/local/etc/polkit-1/rules.d/51.shutdown.rules** 
 + 
 + 
 +<code bash>polkit.addRule(function (action, subject) {
   if ((action.id == "org.freedesktop.consolekit.system.restart" ||   if ((action.id == "org.freedesktop.consolekit.system.restart" ||
       action.id == "org.freedesktop.consolekit.system.stop")       action.id == "org.freedesktop.consolekit.system.stop")
Ligne 96: Ligne 278:
   }   }
 }); });
 +</code>
  
-For those who have working suspend/resume:+**/usr/local/etc/polkit-1/rules.d/52.resume.rules** 
  
-polkit.addRule(function (action, subject) {+<code bash>polkit.addRule(function (action, subject) {
   if (action.id == "org.freedesktop.consolekit.system.suspend"   if (action.id == "org.freedesktop.consolekit.system.suspend"
       && subject.isInGroup("PUTYOURGROUPHERE")) {       && subject.isInGroup("PUTYOURGROUPHERE")) {
Ligne 106: Ligne 289:
 });</code> });</code>
  
 +puis 
  
 +<code bash>chown -R polkitd /usr/local/etc/polkit-1/</code>
  
  
-Démarrer xfce+====Démarrer xfce====
  
-Lancer dbus+ 
 + 
 +On aura besoin de dbus
 <code bash>Pkg install dbus <code bash>Pkg install dbus
 service dbus onestart</code> service dbus onestart</code>
  
-Créer dans le Home un .xinitrc+Démarrage auttomatique, ajouter 
 +<code bash>cat /etc/rc.conf 
 +dbus_enable="YES"</code> 
 + 
 +On utilisera xinit pour le lacement de XFCE 
 +Créer dans le Home un **.xinitrc**
  
 <code bash># SET PROPER locale <code bash># SET PROPER locale
Ligne 130: Ligne 322:
 <code bash> ln -s ~/.xinitrc ~/.xsession</code> <code bash> ln -s ~/.xinitrc ~/.xsession</code>
  
 +Enfin lancer la session X
 +<code bash>xinit .xinitrc</code>
  
 +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 
 +<code bash>alias x='xinit ~/.xinitrc'</code>
 +et la commande **x** suffit au démarrage de XFCE
  
-anti-aliasing avec la police Helvetica +Sinon : jeter un oeil à SLIM : [[https://www.freebsd.org/cgi/man.cgi?query=slim&sektion=1&manpath=freebsd-release-ports|Slim]] 
-Editer ce fichier ainsi+ 
 + 
 + 
 + 
 +====anti-aliasing avec la police Helvetica===== 
 +Editer ce fichier ainsi : **/usr/local/etc/fonts/local.conf** 
 <code bash><?xml version='1.0'?> <code bash><?xml version='1.0'?>
 <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
Ligne 181: Ligne 384:
 </fontconfig></code> </fontconfig></code>
  
 +====Gestionnaire WIFI====
 +Bien que par défaut, on n'en a pas besoin. On peut vouloir utiliser un outil style Gestionnaire Wifi
 +<code bash>pkg install wifimgr</code>
  
-Paramétrage de Xorg+Sinon la(es) connexion(s) se gère(nt) via : 
 +<code bash> cat /etc/wpa_supplicant.conf</code> 
 + 
 +====Barre de Menu pour XFCE==== 
 + 
 +J'utilise Plank, simple et convivial. 
 + 
 +<code bash># pkg install plank</code> 
 + 
 +Ajouter cette commande au démarrage de XFCE 
 +=====Paramétrage de Xorg===== 
 +====Carte video====
 Créer ces 2 fichiers Créer ces 2 fichiers
 <code bash># cat /usr/local/etc/X11/xorg.conf.d/card.conf <code bash># cat /usr/local/etc/X11/xorg.conf.d/card.conf
Ligne 192: Ligne 409:
 EndSection</code> EndSection</code>
  
 +====Le clavier====
 <code bash># cat /usr/local/etc/X11/xorg.conf.d/keyboard.conf <code bash># cat /usr/local/etc/X11/xorg.conf.d/keyboard.conf
 Section "InputDevice" Section "InputDevice"
Ligne 203: Ligne 420:
  
  
- +=====Configuration spécifique===== 
 +====timeout boot====
 Diminuer le timeout du menu du boot loader à 2 secondes Diminuer le timeout du menu du boot loader à 2 secondes
 <code bash>sysrc -f /boot/loader.conf autoboot_delay=2</code> <code bash>sysrc -f /boot/loader.conf autoboot_delay=2</code>
 +
 +====Acc. chiffr.====
 Accélération de chiffrement des processeurs modernes Accélération de chiffrement des processeurs modernes
 <code bash>#echo 'aesni_load="YES"' >> /boot/loader.conf</code> <code bash>#echo 'aesni_load="YES"' >> /boot/loader.conf</code>
-Module à charger dans /boot et non etcrc.conf pour un chargement plus rapide  +Module à charger dans /boot et non /etc/rc.conf pour un chargement plus rapide 
- +
- +
-On commence par optimiser le scheduler pour un usage desktop:+
  
 +====Scheduler====
 +Configuration pour une utilisation pour desktop/laptop
 <code bash>sysrc -f /etc/sysctl.conf kern.sched.preempt_thresh=224</code> <code bash>sysrc -f /etc/sysctl.conf kern.sched.preempt_thresh=224</code>
  
 Pour activer la réponse «yes» aux questions de fsck au démarrage: Pour activer la réponse «yes» aux questions de fsck au démarrage:
- 
 <code bash>sysrc fsck_y_enable=YES</code> <code bash>sysrc fsck_y_enable=YES</code>
 +====Micro codes CPU====
 Utiliser micro codes CPU Utiliser micro codes CPU
 <code bash>pkg install devcpu-data <code bash>pkg install devcpu-data
 service microcode_update enable service microcode_update enable
 service microcode_update start</code> service microcode_update start</code>
 +
 +==== ACPI ====
 +=== CPU et TEMP ===
  
  device driver for Intel Core on-die digital thermal sensor  device driver for Intel Core on-die digital thermal sensor
Ligne 231: Ligne 451:
  sysrc kld_list+=cpuctl</code>  sysrc kld_list+=cpuctl</code>
  
 +==== 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.
  
-Monter les périphériques amovibles+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 :  
 +<code bash>pkg install xbindkeys intel-backlight</code> 
 + 
 + 
 +Fichier de configuration : 
 +<code bash>cat .xbindkeysrc  
 +# PERSONNAL XBINDKEYS 
 + "intel_backlight decr 10" 
 + Alt + Down 
 + 
 + "intel_backlight incr 10" 
 + Alt + Up 
 +</code> 
 + 
 +Lancer xbindkeys au démarrage de la session **~/.xinitrc**  
 + 
 +Ajouter cette section avant le démarrage de XFCE dans  
 +<code bash># Démarrer xbindkeys 
 +/usr/local/bin/xbindkeys  &</code> 
 + 
 +==== XFCE / FLUXBOX / OPENBOX ==== 
 +Pour avoir le choix entre plus Windows Manager : ici fluxbox, openbox 
 + 
 +<code bash>pkg install openbox openbox-themes obconf fluxbox fluxbox-tenr-styles-pack icewm wmakerconf windowmaker blackbox  </code> 
 + 
 +Modifier le fichier **~/.xinitrc** de cette façon 
 + 
 +<code bash># 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 
 +</code> 
 + 
 +Dans votre shell, créer l'alias suivant 
 +<code bash>alias x='xinit ~/.xinitrc'</code> 
 +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 la version d’automount des repos ne permet pas de monter du FAT32. Utiliser cette procédure.
  
-Installer git+ 
 +<WRAP center round important 60%> 
 +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). 
 +</WRAP> 
 + 
 +====Installer git====
 <code bash># pkg install git <code bash># pkg install git
 # git clone https://github.com/vermaden/automount.git # git clone https://github.com/vermaden/automount.git
Ligne 243: Ligne 532:
  
  
-Initialisation des ports+====Initialisation des ports====
 (nécessaires pour compiler exfat-utils/exFAT et  sysutils/fusefs-exfat) (nécessaires pour compiler exfat-utils/exFAT et  sysutils/fusefs-exfat)
  
Ligne 283: Ligne 572:
 # /etc/rc.d/devd restart</code> # /etc/rc.d/devd restart</code>
 Et hop, ça fonctionne…... 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.
 +
 +<code bash>su -
 +cd /etc/newsyslog.conf.d/
 +nano automount.conf</code>
 +
 +avec le contenu suivant :
 +<code bash># newsyslog for automount
 +# Cyrille
 +/var/log/automount.log 640  7       1000      JC</code>
 +
 +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=====
 +
 +<WRAP center round info 60%>
 +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é ;)
 +</WRAP>
 +
 +
 +
 +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.
 +
 + <code bash>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/</code>
 +
 +On l'installe 
 +<code bash># pkg install rclone</code>
 +
 +Puis on le configure
 +<code bash>$ rclone config</code>
 +
 +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 :
 +<code bash>alias dropbox='/home/ragnarok/SCRIPTS/dropbox.sh'</code>
 +
 +Pour mettre à jour le répertoire DIR depuis la Dropbox vers mon PC
 +<code bash>dropbox IN DIR write</code>
 +
 +Pour simuler une synchroniation du répertoire COURS de mon PC vers la Dropbox
 +<code bash>dropbox OUT COURS dry</code>
 +
 +Et c'est tout ! Le script ci-dessous : 
 +
 +
 +<code bash>#!/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.";
 +</code>
 +===== WINE =====
 +Attention il faut installer le paquet i386 même si on est en 64bit, sinon erreur de segmentation.
 +
 +Donc 
 +<code bash>pkg install i386-wine</code>
 +
 +Puis peaufinage via 
 +<code bash>$ winecfg</code>
 +
 +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 : 
 +<code bash><?xml version="1.0"?>
 +<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 + 
 +<fontconfig>
 + 
 +  <!-- antialias all fonts -->
 +  <match target="font">
 +    <edit name="antialias" mode="assign"><bool>true</bool></edit>
 +    <edit name="hinting"   mode="assign"><bool>true</bool></edit>
 +    <edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
 +    <edit name="rgba"      mode="assign"><const>rgb</const> </edit>
 +    </match>
 + 
 +</fontconfig></code>
 +
 +===== 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
 +
 +<code bash>pkg install xarchiver</code>
 +
 +=====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**).
 +<code bash>pkg install arduino</code>
 +
 +Si nécessaire, inclure votre $USER aux groupes **operator** et **dialer**
 +<code bash>
 +# sudo pw groupmod operator -m $USER
 +# sudo pw groupmod dialer -m $USER</code>
 +
 +Donner l'accès aux périphériques USB via **/etc/devfs.rules**<code bash>
 +# 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</code>
 +
 +Prise en compte des changements
 +<code bash># sudo sysrc devfs_system_ruleset=operator_usb</code>
 +Relance du service devfs
 +<code bash># sudo service devfs restart</code>
 +
 +On branche sa carte et on vérifie sa détection
 +<code bash>$ usbconfig 
 +...
 +ugen0.2: <Arduino (www.arduino.cc) product 0x0043> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
 +</code>
 +
 +{{ ::capture_d_ecran_2019-03-10_14-53-21.png?direct&400 |}}
 +
 +
 +===== Bash =====
 +
 +==== bash comme shell par défaut ====
 +
 +
 +<WRAP center round important 60%>
 +Attention ne pas changer le shell du root
 +</WRAP>
 + 
 +
 +
 +<code bash># chsh -s /usr/local/bin/bash {username}</code>
 +
 +
 +<code bash>grep ragnarok /etc/passwd</code>
 +
 +
 +
 +__Cas d'un système UFS__
 +<code bash>cat /etc/fstab
 +## append the following to /etc/fstab file ##
 +fdesc  /dev/fd  fdescfs  rw 0 0</code>
 +
 +__Cas d'un système ZFS__ (**fdescfs** doit être monté après la racine zfs)
 +<code bash>cat /etc/fstab
 +## append the following to /etc/fstab file ##
 +fdesc /dev/fd fdescfs rw,auto,late 0 0</code>
 +
 +==== Autocomplétion ====
 +<code bash>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</code>
 +
 +
 +<code bash># pkg install bash-completion</code>
 +
 +==== 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 
 +<code bash># 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
 +</code>
 +
 +===== VirtualBox =====
 +Jeter un oeil : [[freebsdvirtualbox|VirtualBox sous freeBSD]]
 +
 +
 +=====DUAL BOOT freeBSD / Linux=====
 +J'avais une Linux Debian SID d'installée sur mon PC. 
 +
 +<code bash>$ 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</code>
 +
 +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
 +
 +<code bash>#!/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
 +}
 +</code>
 +
 +Prendre en compte les modifications de la configuration du grub
 +
 +<code bash># 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
 +</code>
 +
 +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)
 +<code bash>
 +tunefs -t enable ada0p2
 +tunefs -t enable ada0p4</code>
 +
 +Rebooter
 +
 +Vérfier que ce soit pris en compte
 + <code bash>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)                                 
 +</code>
 +
 +
 +
 +===== 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)
 +
 +
 +<code bash>gpart show
 +
 +=>       40  468862048  ada0  GPT  (224G)
 +         40       1024      freebsd-boot  (512K)
 +       1064   25164800      freebsd-ufs  (12G)
 +   25165864   16777216      freebsd-swap  (8.0G)
 +   41943080  398458880      freebsd-ufs  (190G)
 +  440401960   28460128      freebsd-ufs  (14G)</code>
 +  
 +Dans un premier temps, régénérer le secteur de boot
 +<code bash>cd /boot
 +gpart bootcode -b pmbr -p gptboot -i1 ada0</code>
 +
 +Si ne fonctionne touojours pas après un redémarrage, re-préciser la partition **active**.
 +<code bash>[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:
 +<UNUSED>
 +The data for partition 3 is:
 +<UNUSED>
 +The data for partition 4 is:
 +<UNUSED>
 +Do you want to change the active partition? [n] y
 +Supply a decimal value for "active partition"</code>
 +
 +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.
 +
 +
 +<code bash>
 +[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
 +</code>
 +
 +<code bash>[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
 +</code>
 +
 +Si problème de montage au boot, vérifier que **/etc/rc.conf** contienne bien cette ligne
 +<code bash>zfs_enable="YES"</code>
 +
 +
 +Normalement le TRIM est pris en compte par défaut
 +<code bash>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</code>
 +<code bash>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</code>
 +<code bash>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
 +</code>
 +
 +
 +OPtimisation en lecture / écriture
 +(mais tout dépend de l'utilisation que vous en faites)
 +<code bash>zpool add 'nom_du_zpool' cache 'nom_du_device_ssd'
 +zpool add 'nom_du_zpool' log 'nom_du_device_ssd'</code>
 +
 +
 +===== Gestion des fichiers core =====
 +==== core générés par le kernel ====
 +Dans **__/etc/sysctl.conf__**
 +Ajouter cette option
 +<code bash> kern.coredump=0</code>
 +Ou celle-ci : Reroutage des fichiers core
 +<code bash>kern.corefile=/dev/null</code>
 +
 +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
 +<code bash># pkg update</code>
 +
 +
 +La déployer
 +<code bash># pkg upgrade</code>
 +
 +
 +==== Geler / dégeler un paquet ==== 
 + Lister les paquets gelés 
 +<code bash># pkg   -l</code>
 + Geler un paquet ===
 +<code bash># pkg lock -y LePaquet</code>
 +Dégeler un paquet
 +<code bash># pkg unlock LePaquet</code>
 +==== Installer la dernière version des paquets de pkg ====
 +
 +Créer ce dossier 
 +<code bash>mkdir -p /usr/local/etc/pkg/repos</code>
 +
 +et ce fichier 
 +<code bash>cat /usr/local/etc/pkg/repos/FreeBSD.conf
 +FreeBSD: {
 +  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
 +}</code>
 +
 +Recharger la base de données des paquets
 +<code bash> pkg upgrade -f</code>
 +
 +Mettre à jour
 +=== Vérfier quel dépôt est utilisé===
 +<code bash>pkg -vv</code>
 +=== Informations sur pkg===
 +<code bash>pkg info pkg</code>
 +
 +===== Gestion des ports =====
 +Pour ceux qui préfèrent compiler les paquets par eux.
 +
 +==== via portsnap ====
 +
 +
 +Première install
 +<code bash># portsnap fetch
 +# portsnap extract</code>
 +
 +Pour les fois suivantes
 +<code bash># portsnap fetch update</code>
 +
 +Installer un programme
 +<code bash># cd /usr/ports/shells/bash</code>
 +
 +Installer 
 +<code bash># make install clean</code>
 +
 +Le supprimer
 +<code bash># make deinstall</code>
 +
 +==== portmaster et mise à jour des ports ==== 
 +Pour mettre à jour les logiciels des ports, le plus simple est d'utiliser portmaster
 +<code bash>
 +# cd /usr/ports/ports-mgmt/portmaster
 +# make install clean</code>
 +
 +Lister les paquets à mettre à jour
 +<code bash># portmaster -L</code>
 +
 +Les mettre à jour
 +<code bash># portmaster -a</code>
 +
 +Portmaster peut aussi être utiliser pour gérer l'installation d'un programme. Exemple
 +<code bash># portmaster shells/bash</code>
 +
 +
 +===== Patchs de sécurité =====
 +<code bash>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.</code>
 +
 +
 +
 +
 +
 +<code bash>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.
 +</code>
 +
 +
 +<code bash>root@asgard-freeBSD:~ # freebsd-update install
 +src component not installed, skipped
 +Installing updates... done.</code>
 +<code bash>
 +root@asgard-freeBSD:~ # uname -a
 +FreeBSD asgard-freeBSD 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC  amd64</code>
 +<code bash>root@asgard-freeBSD:~ # freebsd-version -u
 +12.0-RELEASE-p5</code>
 +<code bash>root@asgard-freeBSD:~ # freebsd-version -k
 +12.0-RELEASE-p4</code>
 +
 +
 +===== Upgrader freeBSD 12.0 à 12.1 =====
 +<code bash># freebsd-update fetch
 +# freebsd-update install
 +# freebsd-update upgrade -r 12.1-RELEASE
 +# freebsd-update install</code>
 +
 +A cette étape, rebooter le système :
 +<code bash># shutdown -r now</code>
 +
 +Après ce reboot, freebsd-update(8) doit être relancer avec les nouveaux composants de l'userland:
 +
 +<code bash># freebsd-update install</code>
 +
 +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
 +
 +<code bash># freebsd-update install</code>
 +
 +Enfin rebboter sous **FreeBSD 12.1-RELEASE**
 +
 +<code bash># shutdown -r now</code>
 +
 +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.
 +
 +<code bash># pkg-static install -f pkg</code>
 +===== 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]]
installfreebsd.txt · Dernière modification : 2020/06/06 17:12 de cyrille