Impossible de lancer wvdial au boot  [RESOLU]

Les applications du Raspberry Pi en contrôle d'accès, alarme et vidéosurveillance

Modérateur : Francois

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » lun. 5 déc. 2016 20:17

J'ai réussi à rediriger la sortie d'erreur qui me donne :
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","free"
AT+CGDCONT=1,"IP","free"
ERROR
--> Bad init string.
--> Cannot open /dev/ttyUSB0: Device or resource busy
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","free"
AT+CGDCONT=1,"IP","free"
ERROR
--> Bad init string.
---------
Pourtant le wvdial.conf est le même.

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » lun. 5 déc. 2016 20:22

Dans le crontab j'ai :
@reboot /home/pi/wvdialUp2

avec wvdialUp2 :
#!/bin/bash
echo "de wvdialUp2">/home/pi/wv.log
sudo wvdial 1>>/home/pi/wv.log 2>>/home/pi/wv.err

dyox
Raspinaute
Messages : 970
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Impossible de lancer wvdial au boot

Message par dyox » lun. 5 déc. 2016 20:44

Pour le crontab, c'est normal que cela ne fonctionne pas d'après https://doc.ubuntu-fr.org/cron (lisez bien la partie 5, javais déjà donné le lien)
autre aide

Pour débuguer, je mettrais bien votre script dans un dossier $PATH de root (par exemple : /usr/bin)
crontab :
@reboot pi wvdialUp2
ou
PATH=/usr/sbin:/usr/bin:/sbin:/bin # au début du crontab
...
@reboot pi wvdialUp2

Et puisque l'on veut tester une commande qui se lance automatiquement en root au démarrage, nous pouvons tester la commande native visudo
donc
@reboot pi visudo

ou
PATH=/usr/sbin:/usr/bin:/sbin:/bin # au début du crontab
...
@reboot pi visudo

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » lun. 5 déc. 2016 21:22

Dans le crontab de root j'ai :

Code : Tout sélectionner

@reboot/home/pi/wvdialUp2
avec wvdiaUp2 :

Code : Tout sélectionner

#!/bin/bash
echo "de wvdialUp2">/home/pi/wv.log
sudo wvdial 1>>/home/pi/wv.log 2>>/home/pi/wv.err
et wv.err :

Code : Tout sélectionner

--> --> WvDial: Internet dialer version 1.61
WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","free"
AT+CGDCONT=1,"IP","free"
ERROR
--> Bad init string.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","free"
--> Cannot open /dev/ttyUSB0: Device or resource busy
AT+CGDCONT=1,"IP","free"
ERROR
--> Bad init string.
Le wvdial.conf est pourtant le même ...

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » lun. 5 déc. 2016 22:29

Merci pour vos réponses ...

Voici mon crontab :

Code : Tout sélectionner

PATH=/usr/bin:/usr/sbin:/sbin:/bin
@reboot pi echo "DANS CRON" >>/home/pi/wvcr.log
@reboot pi visudo
@reboot pi /usr/bin/wvdialUp2
Rien ne se passe les fichiers sont vides. Je vais essayer d'enlever le pi ...

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » lun. 5 déc. 2016 22:39

Sans les pi :
visudo ne se lance pas, mais les 2 autres lignes sont exécutées.
Le fichier wv.err montre toujours l'erreur présentée ci-dessus (Bad init string)

dyox
Raspinaute
Messages : 970
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Impossible de lancer wvdial au boot

Message par dyox » mar. 6 déc. 2016 14:11

c'est bien Ubuntu sur un pi ?
Pourquoi choisir Ubuntu au lieu de Raspian ?
Pour l'instant wvdial appartient à quel utilisateur et group ?
Concernant visudo, j'avais dit une bêtise.

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » mar. 6 déc. 2016 16:16

Je travaille habituellement sous Ubuntu. Mais c'est c'est bien Raspbian sur PI3.
wvdial appartenait à root.root, mais suite à un essai trouvé sur un forum il est maintenant en rwxr_xr_x root.dialout avec
pi et root dans dialout.
J'ai trouvé une solution farfelue qui marche 2 fois /3 environ. J'ai mis à la fin du .profile de pi :

Code : Tout sélectionner

sleep 5
lxterminal -e "sudo /usr/bin/wvdial" &
Ce n'est pas fiable, dommage. De temps en temps il trouve le ttyUSB0 busy alors que j'ai tout viré.
J'ai l'impression qu'il faut retarder le démarrage de wvdial. Pourtant rc.local démarre en S05, le dernier niveau du run level.
J'ai même essayé de mettre mon script en S90 pour qu'il soit le dernier à démarrer.

dyox
Raspinaute
Messages : 970
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Impossible de lancer wvdial au boot

Message par dyox » mar. 6 déc. 2016 16:57

regardez mon 1er post, il parlait déjà des droits de wvdial.
Je dirai qu'il manque le SUID dans son droit si on suit l'exemple

aucaigne
Messages : 25
Enregistré le : lun. 5 déc. 2016 09:53

Re: Impossible de lancer wvdial au boot

Message par aucaigne » mer. 7 déc. 2016 10:22

Voici comment j'ai résolu mon problème.
Dans un 1er temps j'ai constaté que ce script, lancé toutes les mn avec la crontab de root, finissait par démarrer ma connexion :

Code : Tout sélectionner

#! /bin/sh
echo "verif wvdial"
if pidof wvdial ; then
	echo "$(date) wvdial tourne">>/home/pi/wvdial.log
else
	echo "$(date) wvdial ne tourne pas, on le lance ...">>/home/pi/wvdial.log
	sudo /usr/bin/wvdial>>/home/pi/wvdial.log
fi
Je l'ai amélioré en testant directement ppp0 avec celui ci :

Code : Tout sélectionner

#!/bin/bash

function check_cnx {
    ifconfig | grep -o  "$1"
}

if check_cnx ppp0 = "ppp0"; then
   	echo "$(date) ppp0 est UP">>/home/pi/wvdial.log
else
	if pidof wvdial ; then
		#je tue l'éventuel wvdial
		sudo kill $(pgrep wvdial)
		echo "wvdial tué">>/home/pi/wvdial.log
	fi
	#je relance 
   	echo "$(date) On relance wvdial">>/home/pi/wvdial.log
	sudo /usr/bin/wvdial  2>/home/pi/wvdial.err
fi
Tout semble marcher.
Il me reste à "pousser" le dns sur mes clients, mais je vais ouvrir un autre post...
Merci pour votre aide qui a orienté mes recherches à un moment où je ne savais plus quoi faire.
Je ne sais pas où valider le "Résolu" ???

Répondre

Retourner vers « Accès, alarme et vidéosurveillance »