Ir-keytable not founb device rc1 systemd service

je souhaite initialiser ir-keytable à chaque reboot de mon raspberrypi0.
j’utillise systemd.
la commande de lancement est :

[Unit]
Description=My custom command
After=multi-user.target

[Service]
Type=oneshot
Execstart= sudo /usr/bin/ir-keytable –p all –s rc1	

[Install]
WantedBy=custom.target

j’utilise la méthode last service on boot avec création d’un lien vers un service balise custom-target.

malheureusement le service échoue au démarrage avec :

Failed with result ‹ exit-code › Not found device rc1

si je créé un simple service sans lien avec custom-target en type=idle, ça ne fonctionne pas mieux.

si je tape la même commande une fois le raspberry rebooté elle fonctionne.

je dois spécifier rc1 car j’ai un écran connecté en HDMI qui est le rc0.

Un service ne peux pas exécuté des commandes SUDO directement, il faut passer par un script, de plus, il faut définir le « user » pour lequel cette commande sera exécuté.

La meilleur solution sans trop de casse tête est de plutot opter pour une commande dans le Cron qui ce fait au démarrage (@reboot). Consulte la doc de Cron pour plus de détails.

ca ne fonctionne pas dans Cron ni dans /etc/rc.local
J’ai réussi à le faire fonctionner une fois dans systemd (avec ou sans sudo , ça n’a aucune importance) mais je pense qu’il s’agit d’une question de temps mis à initialiser les devices qui pose problème.
avec crontab la commande est active pour une durée de qq secondes seulement
je teste la telecommande ir avec sudo evtest. Au bout d’un moment ça ne répond plus et je suis obligé de taper sudo /usr/bin/ir-keytable –p all –s rc1 en ligne de commande pour la réinitaliser.

« multi-user.target » est pour une fois arrivé au prompt de commande. Ce que tu cherche est « default.target » qui prend en compte le démarrage du CLI ou du GUI (alias).

merci pour tes réponses. En fait, mon pb est très bizarre. Car j’ai l’impression qu’il est dû à un faux contact du port hdmi. Ce qui me fait penser ça, c’est que parfois l’initialisation se fait correctement (voir plus haut l’init crontab) et parfois non, alors que rien n’a changé au niveau de la config. Autre indice, pour que la connexion avec l’écran se fasse correctement, il faut ajuster le câble dans la prise hdmi, c’est très sensible. de tps en tps il y a des micro coupures à l’affichage. Ce qui est bizarre c’est que ça n’a aucun incidence si je lance la ligne d’initialisation en mode commande ds une fenetre terminal. ou peut-être l’alim qui est juste.

EN tant que tel le HDMI ne change pas l’état du RPi en lui-même, mais si il semble avoir un contact non parfiat, vaut mieux le changer, car rien ne va améliorer la situation.

Pour ce qui est des démarrage « aléatoire », oui, l’alimentation peut être la cause. Un démarrage lent peut avoir une incidence sur l’exécution des commandes au démarrage, car certain sont « surveillé » pour un « timeout » éventuel. Ceci implique surtout les accès aux matériels externe (usb, clavier, disque, etc…).

Par exemple, j’ai un système de vidéo surveillance avec des TV Tuner sur un PC, même si il est rapide, le lancement des pilotes n’est pas assez rapide pour mon script en cron, souvent je dois redémarrer les « stream » manuellement pour le prendre en charge.

Même avec une alimentation officiel, j’ai remarqué des variations de qualité (j’ai déjà parlé dans d’autres post). En Bref, certain chargeur semble mieux marcher avec certains RPi et d’autres chargeurs avec d’autres RPi. La qualité n’est pas la même selon les version, années, fournisseurs et etc…

En second lieu, une partie du problème vient du port de charge en lui-même. SI tu es sous une version avec le Micro USB, tu es plus sensible à ce genre de problème. Pour une alimentation efficace, il faut que les « Pins » du port ai un excellent contact. À force de manipuler le RPi, et parfois un peu maltraité ce port, il peut avoir de mauvais contact. Des fois, ce n’est pas la faute du RPi, mais la prise du chargeur, qui est d’une qualité différente.

Bref, avec deux chargeur officiel RPi de 5V 2.5A, tu peux avoir deux résultats différent, sans aucune différence matériel.

Ici, la connexion via le port GPIO pour l’alimentation peut aider, vu que les « pins » sont accessible et grosse, il est plus facile de connecter une source d’alimentation avec de bon liens. Mais c’est peu pratique si l’appareil n’est pas utilisé dans un projet fermé, avec une alimentation avec les fils accessible pour ce genre de connexion, et inutile de sacrifier un chargeur (couper le port et dénuder les fils) pour ce genre de solution.

La carte SD peut aussi avoir un impact sur les performances, les RPi sont très sensible à la qualité des cartes. Personnellement je recommande les Sandisk. Pour savoir plus, consulte mon post à ce sujet; [GUIDE] Comment bien préparer une carte SD pour un bon usage sous Raspberry Pi

merci pour tes précieux conseils

J’ai trouvé ce post ou la personne utilise rc.local avec succès apparemment :

sudo nano /etc/rc.local

Et ensuite

.....
.....
  printf "My IP address is %s\n" "$_IP"
fi

ir-keytable -a /etc/rc_maps.cfg -s rc0

exit 0

merci. Mais comme évoqué plus haut je pense que c’est un pb hardware car de temps en temps ça fonctionne correctement avec un simple crontab.
J’ai effectivement une alim par un port microSD.
le port micro HDMI n’en parlons pas, complètement naze.
Mais à terme je ne dois plus utiliser de port HDMI, dès que j’ai résolu mes principaux pbs :
comment démarrer et arrêter un script python en mode remote,
alors je n’aurai plus besoin d’écran.

Quel modèle de raspby me conseiller qui soit plus robuste, svp ? A peu près même nb de gpio et carte audio intégrée ou compatible shield audio ? actuellement j’utilise un raspberypi0 avec shield WM8960 + ecran OLED + IR receiver .
merci

Le RPi 0 est une belle version, mais affreusement lente. Déjà je te conseil du RPi 2/3 ou le Zero v2 au minimum, tu auras de meilleurs performances. Le RPi Zero v1.x est l’équivalent d’un RPi 1. Mais c’est uniquement pour gagner en vitesse, mais une bonne carte SD devrais être suffisant, car l’audio, un RPi Zero le travail très bien en générale.

J’ai travaillé sur un projet audio avec un RPi Zero;

1 « J'aime »

merci. Top ton projet. En fait c’est ce que je suis en train de faire (en moins bien pour le mien certainement). je suis en train de reconditionner une liveradio Orange car Orange a arrêté la diffusion de streams. Je dois utiliser tous les boutons existants et l’encodeur rotatif et j’ai remplacé l’écran LCD par un OLED. Tu as dû avoir les mêmes interrogations sur le boot et le mode veille ?
PS : j’ai vu que mon câble USB d’alim fait au moins 2 ou 3 m ça doit pas aider.

Je ne m’occupe pas de la mise en veille, inutile dans ce cas si, il n’y a pas de différence de courant. J’ai aucun écran a fermer.

J’ai mis dans ce projet, a l’époque, un écran OLED 0.96" pour savoir mon IP et si il est dans un état de démarrage, ou de fermeture… etc…

Dans mon cas tout ce fait en ligne, via l’interface Web. Mon idée était d’avoir un petit module de musique, que je connectait à mon travail et pouvait gérer facilement, une fois relié à des Speaker en BT.

J’ai aucun problème de boot ou autres, car c’est purement un script python.

le port mini HDMI est vraiment proche d’être HS mais j’ai réussi à trouver une position du câble qui permet d’avoir une sortie écran. Si j’arrive à autoriser un accès SFTP en root, je peux a priori continuer à mettre au point un script python autonome sur mon raspi0 sans avoir besoin d’écran ? Je veux dire que je peux configurer l’OS et faire des modifs python sans être bloqué, simplement en faisant des updates des fichiers de config et du script .py par SFTP ? Il n’y a aucune CLI que je devrais faire a priori et qui nécessiterait d’avoir un écran connecté ? Qu’est ce que tu en penses ?
ps : j’ai aussi commandé un rasppi3B.

SFTP c’est juste le transfert de fichier, il faut te connecter aussi en SSH. Moi la majorité de mes RPi marche sans écrans, alors si tu peux te connecter en SSH, abandonne ton écran durant ton travail, en attendant d’avoir un meilleur câble HDMI. Le SSH/sFTP ne causeront pas de problème si tu utilise le même user que celui tu fait directement dans le prompt CLI du RPi.

je peux me connecter en SSH/SFTP en user mais pas en root. il ya des fichiers de config qui necessitent des droits root. c’est un pb

Aucunement un problème. Le « root » sur toutes les version de Raspbian est « lock ». Toutes les commandes se passe via sudo, incluant l’édition des fichiers système. Pour cette raison la création du premier compte, qui va donner l’accès « root » via le Sudo à cet utilisateur.

C’est les fondement de base de la sécurité sous Linux.

Bonjour,
On peux se connecter en root avec winscp non pas pas avec un mot de passe mais avec un echange de clé.

Ok. Mais comment faire concrètement pour acceder par ssh/sftp à des fichiers protégés ? Si je me connecte en user c’est pas possible. J’utilise Filezilla. Comment faire un sudo avec un client ftp?
seulement ds un prompt ssh alors.
Merci Mick. Il faut que je vois plus en détail comment ça fonctionne

Winscp est bien mieux que fillezilla.
Voici quelques liens:
Pour créer une paire de cles ssh
Premiers pas avec Winscp