Notes sur Raspberry Pi


Matériel

fournisseurs

Fournisseurs

Le Raspberry Pi ne se trouve pas dans les magasins de commerce qui ont pignon sur rue.
Il faut aller sur internet pour le commander et se faire livrer.

Si vous voulez vous offrir un ordinateur de bureau à moindre prix, le raspberry pi 4 offre largement de quoi faire pour les tâches quotidiennes : mail, internet, youtube, ...

Pour une centaine d'euros (prix hors écran), vous aurez un ordinateur neuf, minuscule, silencieux, et sans virus puisqu'exempt de Windows.

Un ordinateur complet se composera au minimum de :
- un raspberry pi 4 (le coeur du système)
- une alimentation
- une carte micro SD
- un adaptateur HDMI
- un clavier et une souris
- un écran
Vous trouverez ci-dessous quelques informations utiles, en en fin de rubrique, des solutions complètes d'approvisionnement (kit raspi 4).

Liste des quelques fournisseurs.

Fournisseurs matériel Raspberry Pi
Nom Pays Détails
Kubii France Fournisseur officiel français
Pimoroni UK
Amazon
Where to buy

raspi4

Raspberry Pi 4 Modèle B - 2GB

Fournisseurs matériel Raspberry Pi
Nom Prix Date prix constaté
Kubii 39,90€ 12 juillet 2020
Reichelt 39,32€ 12 juillet 2020
Pimoroni £33.90 12 juillet 2020
Amazon 53,90€ 12 juillet 2020

alim_rpi4

Alimentations Raspberry Pi 4 (type USC-C)
Jusqu'à la version 3, les alimentations étaient du type micro usb.

Alimentations Raspberry Pi 4
Nom Prix FournisseurDate prix constaté
Alimentation Officielle 15.3W USB-C pour Raspberry Pi 4 8,90€ Kubii 12 juillet 2020

raspi400

Le raspberry pi 400 est un ordinateur complet, sans écran et sans enceintes, vendu fonctionnel à une centaine d'euros, tournant sous Linux.
Matériellement, l'ordinateur repose sur une carte électronique d'une surface de 8,5 x 5,5 cm, soit la taille d'une carte de crédit. Son épaisseur mesure environ 1,5 cm.
Linux est un système d'exploitation gratuit, et qui ne nécessite pas d'antivirus. La majorité des virus affecte les machines Windows.
Concernant l'écran, le connecteur d'affichage se présente sous la forme d'une prise micro HDMI femelle, dans laquelle il faut insérer une fiche micro HDMI mâle, connectée à un fil dont l'extrémité présente une fiche HDMI mâle ou femelle.
Il y a en réalité deux prise micro HDMI femelles, donc une possibilité d'utiliser deux écrans en même temps.
Sans ventilateur, il ne produit aucun bruit, et consomme très peu : il peut fonctionner des heures depuis une batterie externe (de chargement de smartphone ou tablette). A la date du 8 mai 2021, la dernière version du Raspberry Pi est la 4, sortie en juin 2019.
La version 5, plus puissante, pourrait sortir en 2021.

Le tableau ci-dessous présente 4 ensembles basés sur un Raspberry Pi 4 : les ensembles 1 et 2 s'appuient sur le modèle "clavier tout-en-un". Les ensembles 3 et 4 laissent le choix de se procurer un clavier séparément. Le Raspberry Pi 4 pourra être protégé par son boîtier, vu qu'il ne l'est pas par le clavier du Raspberry Pi 400.
La version "clavier protecteur" héberge un processeur un peu plus rapide.

Ordinateur basé sur un Raspberry Pi 4
Ensemble 1 - Raspberry Pi 400
kit complet
2 - Raspberry Pi 400
à assembler
3 - Raspberry Pi 4
4 Go ram
4 - Raspberry Pi 4
2 Go ram
Description Achat le plus simple, format clavier intégré Format clavier intégré, en choisissant les éléments séparément Encombrement réduit avec la carte nue de 8,5 x 5,5 cm Encombrement réduit, budget minimal.
Ordinateur Kit Raspberry Pi 400
106,50 €
Raspberry Pi 400
74,50 €
Raspberry Pi 4/4 Go
60,99 €
Raspberry Pi 4/2 Go
43,90 €
Processeur 4 coeurs 1,8 GHz 4 coeurs 1,8 GHz 4 coeurs 1,5 GHz 4 coeurs 1,5 GHz
Mémoire vive intégrée 4 Go 4 Go 4 Go 2 Go
Ports USB disponibles 3 3 4 4
Alim usb-c fournie non fournie
alim Raspberry Pi 4
8,95 €
non fournie
alim Raspberry Pi 4
8,95 €
non fournie
alim Raspberry Pi 4
8,95 €
Carte micro SD 16 Go fournie non fournie
voir Sandisk 32 Go
9,99 €
non fournie
voir Sandisk 32 Go
9,99 €
non fournie
voir Sandisk 32 Go
9,99 €
Clavier intégré intégré utiliser un clavier usb filaire utiliser un clavier usb filaire
Souris fournie utiliser une souris usb filaire utiliser une souris usb filaire utiliser une souris usb filaire
HDMI adaptateur fourni
micro-HDMI mâle vers HDMI
voir adaptateur Kubii
3,84 €
voir adaptateur Kubii
3,84 €
voir adaptateur Kubii
3,84 €
Boîtier inutile inutile boitier Raspberry Pi 4
5,95 €
boitier Raspberry Pi 4
5,95 €
Notice fournie téléchargeable téléchargeable téléchargeable
Interrupteur sur le clavier sur le clavier non non
Frais de port offerts car commande > 75 € offerts car commande > 75 € offerts si commande > 75 € à ajouter si commande < 75 €
Prix min. 106,50 € 98 € 90 € 72 €

cartes_sd

Cartes micro SD

Fournisseurs matériel Raspberry Pi
Image Nom Pays Détails Historique
Carte microSD 8GB France 9,90€
Carte Mémoire SanDisk Ultra Amazon 19,99€ Hagglezon
3xCamel
Samsung Carte mémoire Amazon 12,82€

Rapport prix/capacité (Euros / Go)
Prix indicatifs : ils changent constamment

SanDisk Ultra
Go Prix Prix/Go
16 8,700,54
32 7,650,24
6419,990,31
12831,970,25
20044,970,22
Samsung Evo Plus
Go Prix Prix/Go
32 9,690,30
6412,020,19
12821,350,17
25651,870,20

cles_usb

Clés USB acceptées selon les modèles de raspberry en connexion directe (sans hub externe qui a sa propre alimentation).

Rappel : la xavbox prêtée à France est basée sur un raspberry pi 3, qui n'accepte pas les quelques clés usb Sandisk Ultra qu'elle possède. Ses autres clés de type SanDisk Cruzer Blade passent très bien.

Clés USB pour Raspberry Pi
Image Nom Raspi3 Raspi4 Historique
SanDisk Cruzer Blade oui
Clé USB 3.0 SanDisk Ultra non

Rapport prix/capacité (Euros / Go)
Prix indicatifs : ils changent constamment

Clé USB 2.0 SanDisk Cruzer Blade
Go Prix Prix/Go
16 6,490,41
3210,990,34
6410,990,17
12817,990,14
Clé USB 3.0 SanDisk Ultra
Go Prix Prix/Go
16 7,140,45
32 8,590,27
6411,990,19
12820,980,16
25638,500,15

disques_externes

kit_rpi4

Acheter un raspberry pi 4 et tous ses accessoires chez kubii.fr

Assembler un raspberry pi 4 chez Kubii.fr
Nom Pays Détails
Raspi 4 39,90€ Version 2 Go
Alimentation 8,90€ Type USB-C
Carte micro SD 9,90€ Pour installer linux
Câble Micro-HDMI 5,90€ Pour relier à un écran HDMI
Total 64,60€

Ajouter à ceci un clavier, une souris et un écran.

Divers

divers

Photo raspistill et python

Picamera

scanner

TODO A TESTER :
Installer le scanner Canon LIDE300 sur un Raspberry
Utiliser le scanner sous widows ou
linux mint 32 bits

Projets

projets

Anciens projets

Timelapse

Xavbox

mon_matos

Voir le plan réseau ip

rpi_web_cam

Utilisation de RPi-Cam-Web-Interface pour streamer LFAB (Le Ficus à Brigitte).
Son projet sur github
Ajout d'une redirection de port et .htaccess (cf. RPi_Cam_Web_Interface dans coffre-fort).

Système

documentation

Documentation officielle Debian/raspbian

32_ou_64_bits

file /sbin/init

Test de vitesse lecture/écriture média
sudo hdparm -t --direct /dev/...
Lancer lsblk avant hdparm
Test tiré de la vidéo Explaining computers


Test de vitesse avec Gimp
Fichier image : http://gangand.net/ff/formation/notes/img/Mont_Aiguille_3648x2736.jpg
Filtres - Artistiques - Peinture à l'huile
Réglages 1: Rayon = 4, Exp. = 8, Nb = 128
Réglages 2: Rayon = 8, Exp. = 8, Nb = 128

Raspbian 32 bits vs. Ubuntu Mate 64 bits
Machine OS mmcblk SSD HDD Gimp 1 Gimp 2
rpi3 B Rev 1.2 Raspbian 32 bits
boot uSD ... + HDD ...GB
15 MB/sec 27 MB/sec 78s
Gimp 2.10.8
190s
Gimp 2.10.8
rpi4 Raspbian 32 bits
boot uSD 16GB + SSD 60GB (port USB2)
39 MB/sec 30 MB/sec
rpi4 Raspbian 32 bits
boot uSD 16GB + SSD 60GB (port USB3)
39 MB/sec 185 MB/sec 25s
Gimp 2.
68s
Gimp 2.
rpi4 Ubuntu Mate 64
uSD 8GB class 10 TAIWAN
39 MB/sec 196 MB/sec
USB3
23s
Gimp 2.10.18
74s
Gimp 2.10.18
rpi4 Ubuntu Mate 64
uSD 32GB Samsung Evo Plus
37 MB/sec 25s
Gimp 2.10.18
73s
Gimp 2.10.18

ubuntu_mate_64_bits

Installation de ubuntu mate 64 bits le 15 juillet 2020

Tout se passe bien sauf trois bugs vite corrigés : pas d'audio.
Solution : sudo vi /boot/firmware/usercfg.txt
Failed to mount Windows share (nas freebox ) :
https://www.medo64.com/2017/12/solving-failed-to-mount-windows-share/
Configuring it is easy; in /etc/samba/smb.conf, within [global], one needs to add
client min protocol = SMB3
client max protocol = SMB3

Ajouter la ligne suivante et redémarrer : dtparam=audio=on

Installation décidée suite à la vision de la vidéo de Odroid C4 vs Raspberry Pi 4 de Explaining Computers

Qualité du son jack nettement meilleure que sur raspbian
Geany : underscore n'apparaît pas
Solution : ajouter les deux lignes suivantes
[styling]
line_height=0;2;
dans Outils - Fichiers de config. - filetypes.common, puis redémarrer Geany

mount

Monter une clé usb en lecture/écriture
sudo mount /dev/sda1 /m/usb -o utf8,fmask=0000,dmask=0000,uid=1000,gid=1000
utf8 résoud les problèmes d'accents, uid et gid les droits d'accès pour l'utilisateur pi (1000)

Monter le partage freebox en lecture/écriture
sudo mount.cifs //192.168.1.254/rouge/xavbox /m/nas -o _netdev,rw,users,iocharset=utf8,uid=1000,gid=1000,sec=none,file_mode=0777,dir_mode=0777,vers=1.0 0 0

openmediavault

OMV (OpenMediaVault) est une solution logicelle de nas (partage disque réseau)
qui fonctionne sur raspberry
Ligne de commande à utiliser sur Raspbian OS pour une installation automatisée :
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

Documentation OpenMediaVault 5

Post-install

post_install

Après une installation d'un nouveau système linux, de nombreux ajustements restent à faire.

Post installation
Objet Commandes/code Notes
Mise à jour système sudo apt update -y
sudo apt upgrade -y
Logiciels complémentaires sudo apt install aaphoto baobab fdupes firefox-esr geany gimp gnome-terminal gparted hplip imagemagick jpegoptim keepassx libcrypt-ssleay-perl libio-socket-ssl-perl libreoffice-l10n-fr* locate mirage nemo nmap numlockx p7zip-full pngnq rename sendemail simple-scan xdotool xsel -y
.profile
Ajouter à .profile
PATH="/home/pi/3en1/scripts_console:$PATH"

# montage disque freebox rouge
sudo mkdir /media/fbx
# sudo mount.cifs //freebox-server-4.local/rouge /media/fbx -o _netdev,rw,users,iocharset=utf8,uid=1000,sec=none,file_mode=0777,dir_mode=0777,vers=1.0 0 0
sudo mount.cifs //192.168.1.254/rouge /media/fbx -o _netdev,rw,users,iocharset=utf8,uid=1000,sec=none,file_mode=0777,dir_mode=0777,vers=1.0 0 0
Démarrage machine
.bashrc
Ajouter à .bashrc
alias hgrep='history | grep '
alias q='sudo shutdown -h '

# quel temps fait-il
alias x_keltemps='curl -4 http://wttr.in/Reims'
# alias ls='ls -lAi --group-directories-first --color='always''
alias x_minfo='egrep "Mem|Cache|Swap" /proc/meminfo'
# Find all IP addresses connected to your network
alias x_netcheck='nmap -sP $(ip -o addr show | grep inet  | grep eth | cut -d\  -f 7)'

alias x_reboot='echo "Are you sure you want to reboot host $(hostname) [y/N]?" && read reboot_answer && if [ "$reboot_answer" == y ]; then /sbin/reboot; fi'
alias x_shutdown='echo "Are you sure you want to shutdown host $(hostname) [y/N]?" && read shutdown_answer && if [ "$shutdown_answer" == y ]; then /sbin/shutdown -h now; fi'
alias x_brokenlinks='find . -xtype l -printf "%p -> %ln"'
alias x_du='du -h --max-depth=1 | sort -h'
alias x_radio_de1='mplayer -nocache -audiofile-cache 64 -prefer-ipv4 $(wget -O - http://www.dradio.de/streaming/dlf.m3u|head -1)'
alias x_radio_de2='mplayer -nocache -audiofile-cache 64 -prefer-ipv4 $(wget -O - http://www.dradio.de/streaming/dkultur.m3u|head -1)'

alias x_bigfiles="find . -type f 2>/dev/null | xargs du -a 2>/dev/null | awk '{ if ( $1 > 5000) print $0 }'"
alias x_verybigfiles="find . -type f 2>/dev/null | xargs du -a 2>/dev/null | awk '{ if ( $1 > 500000) print $0 }'"
alias x_path='echo -e ${PATH//:/\\n} | sort'
alias x_mount='mount |column -t'
alias x_ports='netstat -tulanp'
alias x_derniers_fichiers_modifies='find "$(pwd)" -type f -printf "%TY%Tm%Td_%THh%TM:%h/%f\n" | sort | tail'

Démarrage machine
prompt
Adresse IP et hostname dans prompt
# adresse IP dans le prompt
# https://superuser.com/questions/668174/how-can-you-display-host-ip-address-in-bash-prompt
export MYIP=$(ifconfig | grep inet | egrep -v "127|inet6" | awk '{print $2}')
export PS1='[\u@$MYIP=\h \W]\$ '

# prompt origine :
# \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\]
                                
/home/pi/bin bak_data.sh et 0
(montage et sauvegarde cryptmount + profil ...)
bak_data.sh

# /home/pi/bin/bak_data.sh

# 20220703

src=/home/pi/cryptmount
dstRoot=/media/pi/A-300GB/archives/cryptmount

go_backup () {
if [ "x$1" = "x-1" ]; then  # on copie seulement 3en1.fs
    for i in 3en1.key; do
    sudo cp $src/$i $dst/$laDate.$i
    done
    for i in 3en1.fs; do
    dd status=progress if=$src/$i of=$dst/$laDate.$i.cryptmount
    done
else                # on copie tout
    sudo cp /etc/cryptmount/cmtab $dst/${laDate}.cmtab
    for i in 3en1.key archive_3en1.key; do
    sudo cp $src/$i $dst/${laDate}.$i
    done
    sudo chmod 777 $dst/*key*
    sudo chmod 777 $dst/*cmtab*
    for i in 3en1.fs archive_3en1.fs; do
    dd status=progress if=$src/$i of=$dst/${laDate}.$i.cryptmount
    done
fi

cd ${dst}
[ -d _key_ ] || mkdir _key_
[ -d _cmtab_ ] || mkdir _cmtab_
[ -d _fs_ ] || mkdir _fs_
mv *key _key_
mv *cmtab* _cmtab_
mv *fs.cryptmount _fs_
for i in _key_ _cmtab_; do
    cd $i
    fdupes ./ -dN
    cd ..
done
echo $(date +%r) Sauvegarde vers ${dst} terminée
taille_dossier_svg
}

demonter () {   # démonter les deux montages cryptmount
    cryptmount --unmount /home/pi/3en1
    cryptmount --unmount /home/pi/archive_3en1
}

taille_dossier_svg() {
    echo $(date +%r) Taille dossier ${dstRoot} : $(du -hsc ${dstRoot} | tail -1)
}

cmount_memo_pass () {
    echo $(date +%r) Entrer le mot de passe cryptmount
    read -s pass_crypt
    echo "$pass_crypt" > /tmp/Container.pw
    echo >> /tmp/Container.pw
}

cmount_ftp_memo_pass () {

    if [ -f /tmp/dollar1 ]; then
        if [ -f /tmp/dollar2 ]; then
            pass_ftp=$(cat /tmp/dollar2)
            rm /tmp/dollar2
        fi
        mv /tmp/dollar1 /tmp/Container.pw
    else
        echo "$(date +%r) Entrer le mot de passe cryptmount et ftp sur la même ligne (espace entre les deux)"
        read -s pass_crypt pass_ftp
        echo "$pass_crypt" > /tmp/Container.pw
        echo >> /tmp/Container.pw
    fi
    #echo "$pass_ftp" | xsel -b -i

    #echo pass_crypt = $pass_crypt, pass_ftp = $pass_ftp

    rm    /tmp/bak_data.txt 2>/dev/null
    touch /tmp/bak_data.txt

    nemo ftp://gangand@ftp.cluster015.hosting.ovh.net/www &
    sleep 2
    # https://askubuntu.com/questions/914718/let-xdotool-type-some-text-using-a-different-keyboard-layout
    echo setxkbmap fr '&&' xdotool type XXXXXXXX
    setxkbmap fr && xdotool type "$pass_ftp"
    sleep 0.5
    xdotool keydown Return; xdotool keyup Return

    cmount_cryptmonter
}

cmount_cryptmonter () {
    cryptmount --passwd-fd 3 3en1 3< /tmp/Container.pw
    cryptmount --passwd-fd 3 archive_3en1 3< /tmp/Container.pw
    rm /tmp/Container.pw
}

du_montages () {
    # TODO : dossiers + fichiers totaux
    du -hsc /home/pi/3en1 2>/dev/null
    du -hsc /home/pi/archive_3en1 2>/dev/null
}

go() {
    echo $(date +%r) $1
    $1
}

read_write () {
if [ -d /home/pi/3en1/_p_ ]; then
    echo 'Les dossiers cryptmount sont montés.'
    echo 'Veuillez redémarrer et lancer bak_data.sh -rw'
    echo "dès l'ouverture de session,"
    echo "pour ouvrir les deux montages en lecture-écriture."

else
    cd /etc/cryptmount
    sudo cp cmtab_les_2_readwrite cmtab
    echo '--------------------------------------'
    cat /etc/cryptmount/cmtab
    echo '--------------------------------------'
    echo "Appuyez sur Entrée pour continuer"
    echo "et monter les deux dossiers cryptmount en lecture-écriture."
    read suivant
    cmount_ftp_memo_pass
    # retour à la config normale
    sudo cp cmtab_3en1_readwrite_seulement cmtab
    nemo /home/pi/3en1 &
    baobab /home/pi/3en1 &
    baobab /home/pi/archive_3en1 &
fi
}

svg_bashrc()    { cp ~/.bashrc ${dir_post_install}; }                   # ~/.bashrc
svg_geany()     { cp -r ~/.config/geany ${dir_post_install}; }          # config geany
svg_home_bin()  { cp -r ~/bin ${dir_post_install}/home_bin; }           # ~/bin
svg_nemo()      { cp ~/.config/gtk-3.0/bookmarks ${dir_post_install}; } # bookmarks nemo
svg_profile()   { cp ~/.profile ${dir_post_install}; }                  # ~/.profile
svg_sudoers()   { sudo cp /etc/sudoers ${dir_post_install};
                  sudo chmod 777 ${dir_post_install}/*;}                # /etc/sudoers (modifiable par sudo visudo)


# sauvegarde fichiers init
sauvegardes_divers () {
    dir_post_install=/tmp/init_post_install
    mkdir ${dir_post_install}

    # sauvegardes granulaires
    go svg_bashrc
    go svg_geany
    go svg_home_bin
    go svg_nemo
    go svg_profile
    go svg_sudoers

    # 7zipper
    cd /tmp
    7z a ${laDate}_init_post_install.7z ${dir_post_install} >/dev/null

    # nettoyer
    rm -rf ${dir_post_install}

    # lister paquets installés
    # sudo dpkg-query -f '${binary:Package}\n' -W
    # https://linuxize.com/post/how-to-list-installed-packages-on-debian/
}

syntaxe() {
    echo "Sauvegarde de données cryptées cryptmount et fichiers post install (fichiers initialisation)"
    echo "vers un disque externe, puis montage des points cryptmount"
    echo
    echo "Options :"
    echo " -h     cette aide"
    echo " -1     sauvegarde de ${src}/3en1.fs"
    echo " -2     sauvegarde de 3en1.fs et archive_3en1.fs"
    echo " -m     monter les points cryptmount"
    echo " -u     démonter les points cryptmount"
    echo " -mftp  monter les points cryptmount et www ovh"
    echo " -rw    au prochain montage cryptmount,"
    echo "        monter les deux cryptmount en lecture-écriture"
    echo "        pour transférer des données de 3en1 vers archive_3en1"
    echo " -t     taille des sauvegardes externes et lancement nemo"
    echo
    echo "Pour sauvegarder ${src}/3en1.fs, lancer bak_data.sh -1"
}

main () {
if [ "x$1" = "x-m" ]; then      # montage cryptmount
    cmount_memo_pass
    cmount_cryptmonter
    du_montages
elif [ "x$1" = "x-mftp" ]; then # montage cryptmount et nemo ftp
    cmount_ftp_memo_pass
elif [ "x$1" = "x-t" ]; then    # taille dossier
    taille_dossier_svg
    ncdu ${dstRoot}
elif [ "x$1" = "x-rw" ]; then   # prochain montage sera en lecture-écriture pour 3en1 et archive_3en1
    read_write
elif [ "x$1" = "x-u" ]; then    # démonter
    demonter
elif [ "x$1" = "x-1" ] || [ "x$1" = "x-2" ]; then
    if [ -d $src ]; then
        echo $(date +%r) "Dossier source  OK : $src"
    else
        echo $(date +%r) "Dossier source NOK : $src absent"
        exit
    fi
    if [ -d $dstRoot ]; then
        echo $(date +%r) "Dossier backup  OK : $dstRoot"

        dirAnnee=$(date '+%Y')
        dirMois=$(date '+%m')
        laDate=$(date '+%Y%m%d_%Hh%M')
        dirYear=${dstRoot}/${dirAnnee}
        [ -d ${dirYear} ] || mkdir ${dirYear}
        dst=${dstRoot}/${dirAnnee}/${dirMois}
        [ -d ${dst} ] || mkdir ${dst}
        if [ -d ${dst} ]; then
            cmount_memo_pass
            sauvegardes_divers
            go_backup $1
            cmount_cryptmonter
        else
            echo $(date +%r) "Dossier backup $dst absent"
        fi
    else
        echo $(date +%r) "Dossier backup NOK : $dstRoot absent"
        echo $(date +%r) "*** Vérifier la présence du disque externe de sauvegarde ***"
        exit
    fi
else
    syntaxe
fi
}

main $1

# pour veracrypt
# xdotool key KP_Enter
0
# one-liner pour lancer depuis le GUI bak_data.sh
lxterminal --command="/bin/bash -c '/home/pi/bin/bak_data.sh -mftp; /bin/bash'" --geometry=200x50
Scripts exécutables avant cryptmount
sudo visudo ALL ALL=(root) NOPASSWD: /sbin/shutdown,/usr/sbin/mount.cifs,/usr/bin/vi Exécuter des commandes sans taper de mot de passe
cryptmount
installation depuis le départ (from scratch)
1. installer cryptmount par sudo apt install cryptmount
2. éditer le fichier /etc/cryptmount/cmtab comme ceci
# /etc/cryptmount/cmtab - encrypted filesystem information for cryptmount
# try 'man 8 cryptmount' or 'man 5 cmtab' for more details
# Entry automatically generated by setup-script:
3en1 {
    dev=/home/pi/cryptmount/3en1.fs
    dir=/home/pi/3en1
    fstype=ext3
    mountoptions=defaults
    cipher=aes
    keyformat=builtin
    keyfile=/home/pi/cryptmount/3en1.key
}
archive_3en1 {
    dev=/home/pi/cryptmount/archive_3en1.fs
    dir=/home/pi/archive_3en1
    fstype=ext3
    mountoptions=ro
    cipher=aes
    keyformat=builtin
    keyfile=/home/pi/cryptmount/archive_3en1.key
}
3. récupérer les fichiers de sauvegarde de
   /media/pi/A-300GB/archives/cryptmount
    3en1.fs,
    3en1.key,
    archive_3en1.fs,
    archive_3en1.key
et les copier dans /home/pi/cryptmount (dossier à créer)

4. utiliser le script bak_data.sh
voir copie sauvegardée dans
/media/pi/A-300GB/archives/cryptmount/2021/script_cryptmount/bak_data.sh,
à copier dans /home/pi/bin

5. peut-êtrre redémarrer la machine pour prendre
en compte le nouveau cmtab

=====================================================================
Pour monter temporairement /home/pi/archive_3en1 en lecture/écriture,
remplacer mountoptions=ro par mountoptions=defaults
dans la section archive_3en1 { ... }
avant de lancer bak_data.sh -m
                        
Cryptage de données
Créer les dossiers 3en1 et archive_3en1 dans /home/pi
cryptmount.OLD
/etc/cryptmount/cmtab
# /etc/cryptmount/cmtab - encrypted filesystem information for cryptmount
# try 'man 8 cryptmount' or 'man 5 cmtab' for more details
# Entry automatically generated by setup-script:
3en1 {
    dev=/home/pi/cryptmount/3en1.fs
    dir=/home/pi/3en1
    fstype=ext3
    mountoptions=defaults
    cipher=aes
    keyformat=builtin
    keyfile=/home/pi/cryptmount/3en1.key
}
archive_3en1 {
    dev=/home/pi/cryptmount/archive_3en1.fs
    dir=/home/pi/archive_3en1
    fstype=ext3
    mountoptions=ro
    cipher=aes
    keyformat=builtin
    keyfile=/home/pi/cryptmount/archive_3en1.key
}
Cryptage de données
Créer les dossiers 3en1 et archive_3en1 dans /home/pi
gimp
Script sauvegarde globale 1
; A ENREGISTRER DANS
; /home/pi/.config/GIMP/2.10/scripts/script-fu-save-all-images.scm

(define (script-fu-save-all-images)
  (let* ((i (car (gimp-image-list)))
         (image))
    (while (> i 0)
      (set! image (vector-ref (cadr (gimp-image-list)) (- i 1)))
      (gimp-file-save RUN-NONINTERACTIVE
                      image
                      (car (gimp-image-get-active-layer image))
                      (car (gimp-image-get-filename image))
                      (car (gimp-image-get-filename image)))
      (gimp-image-clean-all image)
      (set! i (- i 1)))))

(script-fu-register "script-fu-save-all-images"
 "<Image>/File/Save ALL"
 "Enregistrer TOUT"
 "Saul Goode"
 "Saul Goode"
 "11/21/2006"
 ""
 )
Script sauvegarde globale 2
; A ENREGISTRER DANS
; /home/pi/.config/GIMP/2.10/scripts/script-fu-save-all-images-and-quit.scm

(define (script-fu-save-all-images-and-quit)
  (let* ((i (car (gimp-image-list)))
         (image))
    (while (> i 0)
      (set! image (vector-ref (cadr (gimp-image-list)) (- i 1)))
      (gimp-file-save RUN-NONINTERACTIVE
                      image
                      (car (gimp-image-get-active-layer image))
                      (car (gimp-image-get-filename image))
                      (car (gimp-image-get-filename image)))
      (gimp-image-clean-all image)
      (gimp-quit 0)
      (set! i (- i 1)))))

(script-fu-register "script-fu-save-all-images-and-quit"
  "<Image>/File/Save ALL and quit"
 "Enregistrer tout et quitter"
 "Enregistrer tout et quitter"
 "Saul Goode"
 "Saul Goode"
 "11/21/2006"
 ""
 )
Commandes supplémentaires
pour sauvegarder d'un clic tous les fichiers ouverts
favoris nemo
Fichier ~/.config/gtk-3.0/bookmarks
file:///3en1/_p_/papadm/A-F/Banque/CA/chronologie/2020 2020
sftp://pi@192.168.1.12/opt/jk2019/tout/ini/aba/litteratureaudio litteratureaudio
sftp://pi@192.168.1.12/opt/jk2019.bak jk2019.bak_ip12
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/jj/jk2019 jk2019.bak_ftp
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/bb/bak_zip/jk2019.bak/2020/202007 bb_bakzip_202007
file:///home/pi/sauvegardes/xavbox.bak xavbox.bak
file:///3en1/_p_/_d/2020_bak/jk2019/sauvegardes_jk2019/202006 3en1_d_bak
sftp://pi@192.168.1.22/var/www/html LAMP-JOHN_22
sftp://pi@192.168.1.12/opt/jk2019/python3,docs,divers jk2019/python3
sftp://pi@192.168.1.12/m m
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/jj/jksimon jksimon
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/cc/coro coro
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/mm/mnu mnu
file:///home/pi/.config/GIMP/2.10/scripts scripts
ftp://gangand@ftp.cluster015.hosting.ovh.net/www/mm/mnu/index_text index_text
clic droit nemo terminal Clic droit - Ouvrir dans un terminal
fonctionne si gnome-terminal est installé :
sudo apt install gnome-terminal -y
clic droit nemo Action sur dossier (sélection unique)
Fichier ~/.local/share/nemo/actions/action_sur_dossier.nemo_action
[Nemo Action]
Name=Une action avec nemo
Comment=Associer une action à un dossier dans nemo
Exec=baobab "%U"
Icon-Name=
Selection=s
Extensions=dir;

Action sur fichiers jpg et png (sélection multiple)
Fichier ~/.local/share/nemo/actions/action_sur_fichiers.nemo_action
[Nemo Action]
Name=Une action sur fichier avec nemo
Comment=Associer une action à un dossier dans nemo
Exec=gimp "%U"
Icon-Name=
Selection=m
Extensions=jpg;png;

Pour voir la syntaxe des fichiers .nemo_action, ouvrir le dossier ~/.local/share/nemo/actions dans nemo, puis cliquer sur Plus d'informations, ou cliquer ci-dessous.
Syntaxe fichier .nemo_action
[Nemo Action]

#############################################
#### DEBUGGING:
####
#### Run Nemo with the environment
#### variable NEMO_ACTION_VERBOSE
#### set to get useful log output
#### for debugging your actions
####
#### i.e.    $ nemo --quit
####         $ NEMO_ACTION_VERBOSE=1 nemo
#############################################

# Whether this action is active.  For troubleshooting.
# Optional - if this field is omitted, the action will be active
Active=false

# Standard tokens that can be used in the Name, Comment (tooltip) and Exec fields:
#
# %U - insert URI list of selection
# %F - insert path list of selection
# %P - insert path of parent (current) directory
# %f or %N (deprecated) - insert display name of first selected file
# %p - insert display name of parent directory
# %D - insert device path of file (i.e. /dev/sdb1)


# The name to show in the menu, locale supported with standard desktop spec.
# **** REQUIRED ****
Name=Test Custom Action applied to %N

# Tool tip, locale supported (Appears in the status bar)
Comment=This is a test for Nemo actions.  Action will be applied to %N

# What to run.  Enclose in < > to run an executable that resides in the actions folder.
# **** REQUIRED ****
#Exec=gedit %F
Exec=<myaction.py -r -g %P %F %U>

# Icon name to use in the menu - must be a theme icon name
Icon-Name=folder

# Gtk Stock ID to use for the icon.  Note if both Icon-name and Stock-Id are
# defined, the Stock-Id takes precedence.
#Stock-Id=gtk-cdrom

# What type selection: [s]ingle, [m]ultiple, any, notnone, none (background click), or
# a number representing how many files must be selected to display.
# ****** REQUIRED *******
Selection=m

# What extensions to display on - this is an array, end with a semicolon
# Single entry options, ending in a semicolon:
#     "dir" for directory selection
#     "none" for no extension.
#     "nodirs" for any selection, but not including directories.
#     "any" for any file type, including directories.
# Individual specific extensions can be a semicolon-terminated list
# Extensions are NOT case sensitive.  jpg will match JPG, jPg, jpg, etc..
# **** EITHER EXTENSIONS OR MIMETYPES IS REQUIRED *****
Extensions=any;

# What mime-types to display on - this is an array, end with a semicolon
# **** EITHER EXTENSIONS OR MIMETYPES IS REQUIRED *****
#Mimetypes=text/plain;

# Separator to use (if any) - add a string to insert between path/url entries
# in the exec line.  Optional - if you leave this out, a space is inserted.
# Note you can have trailing spaces here.
#Separator=,

# Quote type to use (if any) - enclose paths/urls with quotes.  Optional - defaults
# to no quotes.
# Can be:  single, double, backtick
#Quote=double

# Dependencies - program executables required for this action to work.  Nemo will
# Search in the path for these program(s) and not display the action if any are missing.
# You can also supply an absolute path to a file (i.e. /usr/lib/gvfs/gvfsd-archive) to check
# instead of or in addition to an executable in the path.
# This is an array, separate entries with semi-colon, and terminate with a semicolon.
#Dependencies=gedit;

# Conditions - semicolon-separated array of special conditions:
#     "desktop" current (parent) folder is desktop
#     "removable" target (first selection) is removable
#     "gsettings <schema> <boolean key>"  is true
#     "gsettings <schema> <key> <key-type> <[eq|ne|gt|lt]> <value>"
#     "dbus <name>" exists

#Conditions=desktop;

# Escape Spaces - set to true to escape spaces in filenames and uris ($U, $F, $P, $D)
#
# Sometimes this may be preferred to getting raw filenames that must be enclosed in
# quotes.
#
# Optional - by default this is false

EscapeSpaces=true

# Run in terminal - set to true to execute the Exec line in a spawned terminal window.
#
# Generally if you use this you should not have Quotes defined, as that will be taken care
# of during converting the expanded command string into an arg vector.
#
# Optional - by default this is false

#Terminal=false
Extensions=any;
pour cibler tous les fichiers

Documentation
éditeur console sudo update-alternatives --config editor
=> choisir vi ou vim
chrome traduction extension Google Traduction
firefox traduction extension To Google Translate Utiliser le raccourci Ctrl-Maj-1
raspbian horloge %A %e %h %Y - %kh%M
%A %e %h %Y - %k:%M:%S
Clic droit, Horloge numérique settings
pavé numériue démarrage sudo apt-get install numlockx
sudo vi /usr/share/lightdm/lightdm.conf.d/01_debian.conf
A la fin du fichier ajoutez la ligne suivante :
greeter-setup-script=/usr/bin/numlockx on
Clic droit, Horloge numérique settings
infos matériel en fond d'écran Image Gimp à éditer : Clic droit, Enregistrer sous
commandes infos matériel cat /proc/cpuinfo
pinout
Source : correspondance numéro de révision et version du Raspberry
imprimante sudo apt install hplip
sudo adduser USERXXX lpadmin
http://localhost:631, Administration - Ajouter une imprimante, imprimantes locales, HP LaserJet M14-M17 (HP LaserJet M14-M17), Continuer, Continuer, HP LaserJet m14-m17, hpcups 3.21.2 (en), bouton "Ajouter une imprimante", Définir les options par défaut
montage nas freebox Ajouter cette ligne à .profile :
sudo mount.cifs //192.168.1.254/rouge /media/fbx -o _netdev,rw,users,iocharset=utf8,uid=1000,sec=ntlmv2,file_mode=0777,dir_mode=0777,vers=1.0 0 0

Problème : lecture seule, mais résoud partiellement le problème d'accès à "smb://freebox_server/" dans nemo, qui provoque le message "Impossible de monter le partage Windows : le logiciel a provoqué l'abandon de la connexion.
crontab @reboot cd /opt/python_shutdown; python2 -m CGIHTTPServer 8000
pour éteindre la machine à distance, cliquer ici pour procédure complète $