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