Cours:InstallationLinux : Différence entre versions
(→QT Cross compilation) |
(→QT Cross compilation) |
||
Ligne 233 : | Ligne 233 : | ||
*device qt : [[Media:Linux-rpi64-vc4-g++.zip]] | *device qt : [[Media:Linux-rpi64-vc4-g++.zip]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | //principe pour compiler un module supplémentaire | ||
+ | cd qtmultimedia | ||
+ | /opt/electronique/pi4TpInfo/qt5/bin/qmake | ||
+ | make -j65 | ||
+ | make install | ||
+ | |||
+ | |||
+ | //ou | ||
+ | git clone https://code.qt.io/qt/qtmqtt.git -b $qtVersion | ||
+ | cd qtmqtt | ||
+ | /opt/electronique/pi4TpInfo/qt5/bin/qmake | ||
+ | make -j65 | ||
+ | make install | ||
+ | |||
+ | |||
+ | </source> |
Version du 22 novembre 2024 à 08:53
Sommaire
organisation d'un système d'exploitation Linux
https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation
Notions génériques
processeur
- cpu/apu/tpu/gpu
- critères de choix
- influence du processus de gravure ( noeud de gravure, machine de lithographie)
- faille de sécurité et microcode (ex agesa )
- ipc
- nombre de coeurs
- mémoire dans le processeur (lunar lake)
- chiplet design
- chipset
- jeu d'instructions
choix d'une distribution
- rolling release
- lts
- architectures
- compilation à l'installation
- ancienneté des logiciels
- taille du catalogue d'applications
- distributions pour l'embarqué (Yocto Buildroot)
support de stockage
- disque dur
- ssd
- sd card
- eMMC
- sata (ahci)
- pcie (nvme)
- usb
système de fichiers
- journalisé ou non
- réseau
- Copy-On-Write
- tmpfs
lvm/raid
- lvm
- Volumes physiques
- Groupes de volumes
- Volumes logique
- raid
- logiciel/matériel
- type de raid
démarrage
- bios
- uefi
- U-Boot
- grub/systemd-boot
- systemd
Noyau (kernel)
- gère les ressources de l'ordinateur
- gestion des processus
- communication entre les processus
- gestion de la mémoire
- diverses fonctionnalités
- système de fichiers
- ordonnanceur
- réseau
- abstraction matérielle/logicielle
- différents types de kernel
- Noyaux monolithiques non modulaires
- Noyaux monolithiques modulaires
- Systèmes à micro-noyaux
permissions UNIX
- uid
- gid
- représentation des droits
- ACLs
- sudo / su
Partitionnement du/des disques
- principe
- intérêt/inconvénient
- mbr/gpt
- montage des partitions
- UUID
Installation distribution
Partitionnement
réseau
- https://wiki.archlinux.org/title/systemd-networkd
- au besoin : https://wiki.archlinux.org/title/systemd-resolved
mise à jour
- apt update
- apt dist-upgrade
- aptitude (apt install aptitude)
Installation de logiciels
- ntp
- dnsmasq : dhcp/dns
- unifi
- homeassistant
- mosquitto
- ssh server
- ftp server
- montage nfs
- zigbee2mqtt
natif/container/virtualisé
- architecture
- performance (matériel "passthrough")
- isolation
Gestion des services
utilisation de systemd
commande | rôle | |
---|---|---|
analyse démarrage | ||
systemd-analyze blame | liste des services démarrés classés par temps de démarrage | |
systemd-analyze critical-chain | "chaîne" des services limitant le temps de démarrage |
Créer un service
On considère le script bash suivant :
nano /usr/local/bin/monScript chmod +x /usr/local/bin/monScript
#!/bin/bash
while true
do
echo "+"
sleep 1
done
On créé le fichier pour gérer le service :
nano /etc/systemd/system/exemple.service
[Unit]
Description=Exemple
After=network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/monScript
Restart=on-failure
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Il faut recharger la liste des services :
systemctl daemon-reload
Puis on peut démarrer/arrêter le service
systemctl start/stop/restart/status exemple.service
Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine :
systemctl enable/disable exemple.service
tâche répétitive
Il existe des timers systemd
- https://wiki.archlinux.org/title/systemd/Timers
- https://wiki.gentoo.org/wiki/Systemd#Timer_services
- https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html
ex :
/usr/local/bin/monScript
#!/bin/bash
echo "+"
/etc/systemd/system/exemple.timer
[Unit]
Description=Exemple
[Timer]
# Define a calendar event (see `man systemd.time`)
OnCalendar=*-*-* *:*:0
Persistent=false
[Install]
WantedBy=timers.target
Continuer avec Cours:BashScript
QT Cross compilation
- gcc-linaro-7.5.0-2019.12-x86_64_aarch64
- https://github.com/UvinduW/Cross-Compiling-Qt-for-Raspberry-Pi-4
- https://wiki.qt.io/RaspberryPi2EGLFS
- Cours:Rpi3
- https://forum.qt.io/topic/136672/error-installing-qt-everywhere-src-5-15-2-on-ubuntu-22-04/3
- device qt : Media:Linux-rpi64-vc4-g++.zip
//principe pour compiler un module supplémentaire
cd qtmultimedia
/opt/electronique/pi4TpInfo/qt5/bin/qmake
make -j65
make install
//ou
git clone https://code.qt.io/qt/qtmqtt.git -b $qtVersion
cd qtmqtt
/opt/electronique/pi4TpInfo/qt5/bin/qmake
make -j65
make install