Outils pour utilisateurs

Outils du site


Panneau latéral

FOLLOW ...

Linux, freeBSD

Python

Plugins WP

Informatique et robotique

En classe
KTURTLE
Arduino

Shell/php scripts

installfreebsd

Ceci est une ancienne révision du document !


Installation de freeBSD 12

Sur laptop, DELL Latitude E5430 et DELL Latitude E6410

Installation

Récupérer l'iso de freeBSD. La graver sur une clef USB et booter dessus. Suivre l'installation pas à par pas.

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

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

AJOUTER un user

# adduser

L’inclure dans les groupes : wheel operator video

Gestion du son

# kldload snd_driver
cat /dev/sndstat
Installed devices:
pcm0: <IDT 92HD93BXX (Analog 2.0+HP/2.0)> (play/rec) default
pcm1: <IDT 92HD93BXX (Analog)> (play/rec)
pcm2: <Intel Panther Point (HDMI/DP 8ch)> (play)
pcm3: <Intel Panther Point (HDMI/DP 8ch)> (play)
pcm4: <Intel Panther Point (HDMI/DP 8ch)> (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

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

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) {
  if ((action.id == "org.freedesktop.consolekit.system.restart" ||
      action.id == "org.freedesktop.consolekit.system.stop")
      && subject.isInGroup("PUTYOURGROUPHERE")) {
    return polkit.Result.YES;
  }
});
 
For those who have working suspend/resume:
 
polkit.addRule(function (action, subject) {
  if (action.id == "org.freedesktop.consolekit.system.suspend"
      && subject.isInGroup("PUTYOURGROUPHERE")) {
    return polkit.Result.YES;
  }
});

Démarrer xfce

On aura besoin de dbus

Pkg install dbus
service dbus onestart

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 : Slim

anti-aliasing avec la police Helvetica

Editer ce fichier ainsi

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 
    <dir>~/.fonts</dir>
 
    <!--    do not use the embedded bitmap instead of the outline
        <https://www.freebsd.org/cgi/man.cgi?query=fonts-conf&sektion=5&manpath=FreeBSD+and+Ports>
        <https://bbs.archlinux.org/viewtopic.php?id=161609> post 2 (2013)
        <https://redd.it/7kqr5l> (2017) -->
    <match target="font">
        <edit name="embeddedbitmap" mode="assign">
            <bool>false</bool>
        </edit>
    </match>
 
    <!--    prefer outline e.g. TrueType instead of bitmap fonts
        <https://bbs.archlinux.org/viewtopic.php?id=161609> post 2 (2013)
        <https://redd.it/4tb2dt> (2016) -->
    <match target="font">
        <edit name="prefer_outline">
            <bool>true</bool>
        </edit>
    </match>
 
    <!--    reject bitmap fonts, except Ohsnapu - prefer PostScript, TrueType et cetera
        <https://forums.freebsd.org/threads/howto-nice-fonts.2021/> (2009)
        <https://redd.it/4tb2dt> (2016) -->
    <selectfont>
        <acceptfont>
            <pattern>
                <patelt name="family">
                    <string>Ohsnapu</string>
                </patelt>
            </pattern>
        </acceptfont>
        <rejectfont>
            <pattern>
                <patelt name="scalable">
                    <bool>false</bool>
                </patelt>
            </pattern>
        </rejectfont>
    </selectfont>
 
</fontconfig>

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.

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……

Dropbox

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 libnotify mais pas trop cherché dans ce sens ….

En alternative, il y a 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à 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

Fonctionne nickel, mais les polices sont vraiment bizarres.

Éditer ~/.config/fontconfig/fonts.conf de cette manière :

<?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>

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: <Arduino (www.arduino.cc) product 0x0043> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

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.

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 :

Et surtout

installfreebsd.1552232799.txt.gz · Dernière modification : 2019/07/17 19:24 (modification externe)