NOTES LINUX

Utiliser Flatpak sous Trisquel

Installer Flatpak

sudo apt update
sudo apt install flatpak

Tu peux aussi ajouter l'intégration à GNOME (si tu utilises GNOME ou MATE) :

sudo apt install gnome-software-plugin-flatpak

Ensuite, ajoute le dépôt FlatHub (si ce n’est pas encore fait) :

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Installer une application depuis un fichier .flatpak

Place-toi dans le dossier contenant le fichier .flatpak :

cd /chemin/vers/le/fichier/

Installe le paquet avec :

flatpak install --user nom_du_fichier.flatpak

Tu peux omettre --user si tu veux l’installer pour tous les utilisateurs (nécessite sudo).

Ensuite, pour lancer l’application, si tu ne connais pas son nom exact, liste les applis installées :

flatpak list

Puis lance l'application avec :

flatpak run identifiant.de.lapplication

Attention aux fichiers .flatpakref ou .flatpakrepo

Si tu as récupéré un .flatpakref (c’est un descripteur, pas l’application elle-même), alors installe-le comme suit :

flatpak install nom_du_fichier.flatpakref

Utiliser screen (ou tmux)

Lancer une session persistante :

screen -S ma_session

Exécuter ses script normalement.

Pour détacher la session (avant de fermer PuTTY), utiliser Ctrl + A, puis D.

Pour retrouver la session plus tard :

screen -r ma_session

Intégration clé SSH dans un nouveau Linux

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cp /chemin/vers/ta/clé/id_rsa ~/.ssh/
chmod 600 ~/.ssh/id_rsa

Ensuite on charge la clé dans l'agent SSH :

sh-add ~/.ssh/id_rsa

Connexion sftp directement depuis un explorateur

sftp://tonuser@tonserveur

Si on doit changer les options de connexion (port différent par exemple) :

nano ~/.ssh/config

Host monserveur23

HostName address_server

User mon_user

Port 23

IdentityFile ~/.ssh/id_rsa

Commande AT sur RPI

at now +1 months < commande -> Pour déclencher une configuration at dans 1 mois
atq -> Voir la file des commandes at en attente
atrm -> Pour supprimer une commande at

AVRDUDE sur Raspberry

avrdude -v -p atmega2560 -c wiring -P /dev/ttyACM0 -D -U flash:w:Marlin.ino.mega.hex
avrdude -v -p atmega2560 -c wiring -P /dev/ttyACM0 -D -U flash:r:sauvegarde.bin:r

Change Hostname Debian

sudo vim /etc/hostname
sudo vim /etc/hosts
cd /etc/init.d
sudo ./hostname.sh

Configuration Hotspot WIFI sur Stretch

sudo apt-get install hostapd udhcpd

-----------------------

sudo nano /etc/udhcpd.conf

start 192.168.5.20

end 192.168.5.254

interface wlan0

opt dns 192.168.5.2 192.168.5.10

option subnet 255.255.255.0

opt router 192.168.5.2

opt wins 192.168.5.10

option dns 129.219.13.81 # appened to above DNS servers for a total of 3

option domain local

option lease 864000 # 10 days of seconds

-----------------------

sudo nano /etc/default/udhcpd et commenter la ligne :
# DHCP_ENABLED="no"

-----------------------

sudo /etc/hostapd/hostapd.conf

interface=wlan0

#driver=nl80211

ssid=Code4Pi_AP

hw_mode=g

channel=1

ieee80211d=1

country_code=FR

ieee80211n=1

wmm_enabled=1

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=Code4Pi_Code4Pi

wpa_key_mgmt=WPA-PSK

rsn_pairwise=CCMP

-----------------------

sudo nano /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"

-----------------------

sudo nano /etc/network/interfaces

allow-hotplug eth0

iface eth0 inet dhcp

allow-hotplug wlan0

iface wlan0 inet static

post-up /usr/sbin/hostapd -B /etc/hostapd/hostapd.conf

post-up /usr/sbin/udhcpd -S

address 192.168.5.1

netmask 255.255.255.0

network 192.168.5.254

------------------------

Redémarrer le serveur et normalement c'est OK

Ajouter script python au démarrage

chmod +x monscript.py
sudo apt-get install supervisor
sudo nano /etc/supervisor/supervisord.conf

[program:temperature_logger]

command= python /home/pi/temperature.py

autostart=true

autorestart=true

Configuration RTC3231 sur Raspberry Pi

sudo raspi-config

option 5 -> P5

sudo reboot

------------------------

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Sur mes essais, ces deux paquets étaient déjà installés.

------------------------

On vérifie ensuite que ça fonctionne avec

sudo i2cdetect -y 1

Un tableau doit apparaître avec les éléments connectés en I2C

------------------------

echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -> permet de nous retourner l'heure actuelle du device

------------------------

Pour définir la date depuis Internet l'enregistrer dedans :

On vérifie déjà que la timezone est OK :

sudo dpkg-reconfigure tzdata

Ensuite on écrit la date et l'heure dedans :

sudo hwclock -w

------------------------

sudo nano /etc/modules

et ajouter :

rtc-ds3231

------------------------

sudo nano /etc/rc.local

echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

hwclock -s

date

avant le exit 0

------------------------

sudo update-rc.d fake-hwclock disable

PGP

generate a key pair :

gpg --full-generate-key

revocation certificat :

gpg --output ~/revocation.crt --gen-revoke dave-geek@protonmail.com
chmod 600 ~/revocation.crt

import a public key :

gpg --import mary-geek.key

or :

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com

verifying a key :

gpg --fingerprint mary-geek@protonmail.com

sign the key :

gpg --sign-key mary-geek@protonmail.com

export a public key :

gpg --output ~/dave-geek.key --armor --export dave-geek@protonmail.com

send key to server with its fingerprint :

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

encrypt a file :

gpg --encrypt --sign --armor -r mary-geek@protonmail.com file_to_encrypt

decrypt a file :

gpg --decrypt coded.asc > plain.txt

export all public key to a file :

gpg -a --export >mypubkeys.asc

export a private key (to another system for example) :

gpg --output private.pgp --armor --export-secret-key username@email

or (for all the private key if there are many) :

gpg -a --export-secret-keys >myprivatekeys.asc

export trusted keys too :

gpg --export-ownertrust >otrust.txt

import on a new machine :

gpg --import myprivatekeys.asc
gpg --import mypubkeys.asc
gpg --import-ownertrust otrust.txt
gpg -K
gpg -k

keys are located in .gnupg/ folder.

See all the keys on the computer :

gpg --list-keys

Check integrity of a file :

gpg --verify file_to_check

Installation Owncloud sur RPI4

IP : 192.168.1.87 en eth0

sudo apt-get update
sudo apt-get upgrade
sudo mkdir /mnt/hddowncloud
sudo mount /dev/sda1 /mnt/hddowncloud
sudo nano /etc/profile

et ajouter à la fin :

sudo mount /dev/sda1 /mnt/hddowncloud
sudo apt-get install apache2
sudo apt-get install php php-gd php-intl

Erreur sur php-xml-parser, n'a pas pu être installé

sudo apt-get install php7.3-sqlite php-mysql smbclient curl libcurl4 php7.3-curl
sudo apt-get install php-zip php7.3-dom php-mbstring
sudo usermod -a -G www-data www-data
wget https://download.owncloud.org/community/owncloud-complete-20201216.tar.bz2
cd /var/www/html
sudo tar xfj /home/pi/Downloads/owncloud-complete-20201216.tar.bz2
sudo chown -R www-data:www-data /var/www/html
sudo service apache2 restart

Configuration du dossier dans /mnt/hddowncloud/owncloud

Augmenter la taille du swap file Raspberry

sudo nano /etc/dphys-swapfile

Passer à 1024 au lieu de 100

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
free -m pour vérifier

Faire un lien sur le bureau d'un script

ln -s /home/pi/ardop/start-ardop /home/pi/Desktop/start-ardop*

Activer le SSH de base sur Raspberry

Dans partition SD /boot, créer simplement un fichier sans extension nommé ssh

Activer un réseau wifi de base dans /boot

Dans partition SD /boot, créer un fichier wpa_supplicant.conf

Copier coller dedans :

country=FR # Your 2-digit country code

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

network={

ssid="Opportunity"

psk="GRELET110120080214"

key_mgmt=WPA-PSK

}

Configuration écran 7 pouces Waveshare sur RPI

Fichier config.txt

fichier config.txt à la racine de la carte (ou dans /boot) :

hdmi_group=2

hdmi_mode=87

hdmi_cvt 1024 600 60 6 0 0 0

hdmi_drive=1

Pour faire une rotation d'écran, ajouter en dessous :

display_rotate=1 #1: 90; 2: 180; 3: 270

Fichier 40-libinput.conf (suite rotation pour que le touchscreen tourne aussi)

sudo mkdir /etc/X11/xorg.conf.d
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf

Ajouter dans libinput touchscreen catchall une ligne Option "CalibrationMatrix"

Section "InputClass"

Identifier "libinput touchscreen catchall"

MatchIsTouchscreen "on"

Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

MatchDevicePath "/dev/input/event*"

Driver "libinput"

EndSection

Pour info :

90 degree: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

180 degree: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

270 degree: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"

Contenu sous licence CC BY-NC-SA 4.0