[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

script Debia adsl.sh (Re: PPP patché)



Pour information: J'ai qque pbms (résolus) dans le script adsl.sh fourni
avec le driver de BP. Je voudrais savoir si il me sont spécifiques ou pas
avant de le (les) signaler.

1) Le plus important est le fait que modem_run y est lancé sous Debian à
la Debian (ce qui est normal) avec start-stop-dameon:
     start-stop-daemon --start --pidfile $MODEM_RUN_PID --make-pidfile
Or visiblement, modem_run se lance lui même en processus fils (fork) donc
le pid n'est plus le même.

cerbere:~# ps | grep modem_run
cerbere:~# ps x | grep modem_run
  308 ?        S      0:00 /usr/local/bin/modem_run -v 0 -m -f
/usr/sbin/mgmt.o
 1267 tty1     S      0:00 script /root/pid_modem_run
 1268 tty1     S      0:00 script /root/pid_modem_run
 1333 ttyp0    S      0:00 grep modem_run
cerbere:~# cat /var/run/modem_run.pid
307   <<<----- n'est pas 308
cerbere:~# ps x | grep pppd
  314 ?        S      0:00 /usr/sbin/pppd call adsl
 1445 ttyp0    S      0:00 grep pppd
cerbere:~# cat /var/run/ppp
ppp0.pid  pppd.tdb
cerbere:~# cat /var/run/ppp0.pid
314   <<<--- pour pppd, c'est bon
cerbere:~# exit

Lorsque le script est lancé en arrêt (stop),
start-stop-daemon --stop --pidfile $MODEM_RUN_PID modem_run
ne tue pas modem_run, si on veut le relancer ça plante. A ce stade, un
arrêt de la machine provoque un oops chez moi. La rectification du script
est simple (lancement simple et killall) et remet tout en place.

2) Un deuxième problème est que lorsque le script est lancé la première
fois, usbcore et /dev/usb sont déjà respectivement chargé et monté à cause
d'hotplug je pense (reste de l'installation des drivers d'Alcatel). Ca
donne des messages d'erreurs (pas grave, je laisse courir). Dans une
installation première sans hotplug, est ce le cas (je pense que non)?

3) Un troisième inexpliqué est le fait que j'ai du remplacer la ligne
           mount_usb
par
            mount /dev/usb
ou /dev/usb est correctement défini dans /etc/fstab. Sinon, j'obtenais
après la procédure après un cycle stop-start
(none) on /proc/bus/usb type usbdevfs et ça ne parchait pas.
Autrement dit, au démarrage tout fonctionnaire bien.
De même j'ai remplacé
           umount_usb
par
           umount /dev/usb

En fait, je vois (à l'instant!) effectivement dans le script d'origine la
ligne
  if [ $RETURNED -ne 0 ] ; then
    $MOUNT none /proc/bus/usb -t usbdevfs

donc none est volontaire. Cela est confirmé dans le HOW-TO. Pourquoi chez
moi, il faut que je monte /dev/usb sur /proc/bus/usb ???


3bis) Enfin pour info personnelle, il y a bien équivalence entre
  RETURNED=$?
  if [ $RETURNED -ne 0 ] ; then
     $MODPROBE -k $1
    RETURNED=$?
  fi
et
   RETURNED=$?
  [ $RETURNED -ne 0 ] && $MODPROBE -k $1
non? 

Voilà. Sinon, inutile de dire que ça marche à la perfection. Par
comparaison avec la solution semi-propriétaire que j'utilisais avant, cela
prouve qd même qu'un développement totalement libre conduit à une solution
bcp plus fiable qu'un développement propriétaire.

Le bonjour à tous

François Boisson



Reply to: