piduino détecte le modèle de carte sur lequel il s’exécute au moment du lancement du programme qui l’utilise, ainsi si vous installez le même paquet Armbian libpiduino
, en architecture armhf
par exemple, sur une carte Nano Pi Neo et sur Orange Pi Zero, piduino détectera automatiquement le bon modèle de carte !
Comment fait-il ?
Il utilise les fichiers présents sur la machine hôte pour le savoir. Il commence par scruter les fichiers /etc/friendlyelec-release
puis /etc/armbian-release
à la recherche d’un champ BOARD
lui indiquant la signature de la carte (tag), si il ne trouve rien, il scrute le fichier /proc/cpuinfo
à la recherche d’un numéro de révision correspondant à une carte Raspberry Pi de la base de données, si il ne le trouve pas, il ne peut le deviner ! vous aurez donc une erreur.
Il est possible de forcer le choix du modèle de carte Pi en utilisant le fichier de configuration /etc/piduino.conf
.
Cela peut être nécessaire lorsque le programme ne peut pas détecter la configuration de la carte. Par exemple, dans le cas du NanoPi Neo Core/Core2, nous pouvons indiquer que la carte est sur son shield, dans ce cas, l’affichage du connecteur par la commande pido readall
sera adaptée.
Comme expliqué précédemment, la détection de modèle de carte Pi utilise deux méthodes:
* La première méthode, qui s’applique aux cartes Raspberry Pi, lit le Fichier /proc/cpuinfo
pour obtenir le modèle de microprocesseur dans le champ Hardware
et la version du matériel dans le champ Revision
. Ce numéro de révision est comparé avec le base de données pour en déduire le modèle RaspberryPi.
* La deuxième méthode, qui s’applique aux cartes utilisant ArmBian, vient de la lecture /etc/armbian-release
ou /etc/friendlyelec-release
pour obtenir le modèle de carte dans BOARD
. piduino compare cette signature avec la base de données pour en déduire le modèle RaspberryPi.
Dans le fichier de configuration /etc/piduino.conf
, nous trouverons ces deux possibilités, qu’il faut renseigner (l’une ou l’autre, mais jamais les deux !).
Par exemple, si nous voulons indiquer que notre NanoPi Neo Core2 est installé sur son shield, nous mettrons la valeur du champ tag
à nanopineocore2shield
:
# PiDuino configuration file
connection_info="sqlite3:db=/usr/local/share/piduino/piduino.db"
# Allows you to force the board tag (Armbian)
# !! Be careful, this is at your own risk !!
# !! Forcing an incorrect value may destroy GPIO pins !!
tag="nanopineocore2shield"
# Allows forcing the revision of the board (Raspbian)
# !! Be careful, this is at your own risk !!
# !! Forcing an incorrect value may destroy GPIO pins !!
#revision=0xa02082
On peut constater que le fichier de configuration contient également l’adresse de la base de données à utiliser. La base de données est par défaut un fichier SQLite3 local, mais cette base de données peut être installée sur un serveur MySQL par exemple (pour le format de la ligne connection_info
Voir la documentation de CPPDB).