elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BASH] Ejecutar script luego de encender dispositivo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BASH] Ejecutar script luego de encender dispositivo.  (Leído 2,999 veces)
hollow139

Desconectado Desconectado

Mensajes: 1



Ver Perfil
[BASH] Ejecutar script luego de encender dispositivo.
« en: 14 Mayo 2024, 12:48 pm »

Hola a todos, quisiera agradecerles de antemano por leer mi post y si fuese posible darme sugerencias.

Estoy trabajando con un dispositivo con pocos recursos que corre linux.
Su nombre es Milk V DUO S.

No existe mucha documentacion al parecer sobre el pequeno dispositivo porque fue lanzado recientemente.
Este aparato puede conectarse a redes wifi y pude comprobar que funciona correctamente.

El cliente de wifi que viene incluido con la distribucion de linux de este dispositivo es wpa_supplicant.

Mi objetivo es que al conectar el dispotivo a una fuente de poder este inicie con normalidad y se conecte a la red wifi usando los datos que puse en su archivos de configuracion de forma automatica.

/etc/wpa_supplicant.conf
Código
  1. ctrl_interface=/var/run/wpa_supplicant
  2. ap_scan=1
  3.  
  4. network={
  5.        ssid="Martinez"
  6.        psk="123456789"
  7.  key_mgmt=WPA-PSK
  8. }

Luego al utilizar el comando:
Código
  1. wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
puedo conectarme de manera exitosa a la red wifi de mi casa de forma manual introduciendo ese comando en la terminal. Pero yo necesito que se conecte automaticamente luego de encender.

En base a lo que pude investigar en los archivos de el dispositivo, utiliza BusyBox como sistema de inicio.
Código
  1. cat /etc/inittab
  2. # /etc/inittab
  3. #
  4. # Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
  5. #
  6. # Note: BusyBox init doesn't support runlevels.  The runlevels field is
  7. # completely ignored by BusyBox init. If you want runlevels, use
  8. # sysvinit.
  9. #
  10. # Format for each entry: <id>:<runlevels>:<action>:<process>
  11. #
  12. # id        == tty to run on, or empty for /dev/console
  13. # runlevels == ignored
  14. # action    == one of sysinit, respawn, askfirst, wait, and once
  15. # process   == program to run
  16.  
  17. # Startup the system
  18. ::sysinit:/bin/mount -t proc proc /proc
  19. ::sysinit:/bin/mount -o remount,rw /
  20. ::sysinit:/bin/mkdir -p /dev/pts /dev/shm
  21. ::sysinit:/bin/mount -a
  22. ::sysinit:/sbin/swapon -a
  23. null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
  24. null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
  25. null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
  26. null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
  27. ::sysinit:/bin/hostname -F /etc/hostname
  28. # now run any rc scripts
  29. ::sysinit:/etc/init.d/rcS
  30.  
  31. # Put a getty on the serial port
  32. # console::respawn:/sbin/getty -L  console 0 vt100 # GENERIC_SERIAL
  33. console::respawn:/sbin/getty -L  console 115200 vt100 -n -l /usr/local/bin/autologin
  34.  
  35. # Stuff to do for the 3-finger salute
  36. #::ctrlaltdel:/sbin/reboot
  37.  
  38. # Stuff to do before rebooting
  39. ::shutdown:/etc/init.d/rcK
  40. ::shutdown:/sbin/swapoff -a
  41. ::shutdown:/bin/umount -a -r

Los primeros programas en ejecutarse se encuentran en el directorio /etc/init.d
Código
  1. S01syslogd  S20urandom    S40network  S50dropbear  rcK
  2. S02klogd    S30dbus       S41dhcpcd   S80dnsmasq   rcS
  3. S02sysctl   S40bluetooth  S49ntp      S99user

Al parecer se ejecutan por orden numerico de menos a mayor.
El archivo S99user dice que se correran los siguientes scripts:
Código
  1. #!/bin/sh
  2. ${CVI_SHOPTS}
  3. #
  4. # Start firmware
  5. #
  6. export USERDATAPATH=/mnt/data/
  7. export SYSTEMPATH=/mnt/system/
  8.  
  9. case "$1" in
  10.  start)
  11.        echo "init mpp system..."
  12.        if [ -d $SYSTEMPATH/ko ]; then
  13.                sh $SYSTEMPATH/ko/loadsystemko.sh
  14.        fi
  15.  
  16.        echo "Starting app..."
  17.  
  18.        if [ -f $SYSTEMPATH/duo-init.sh ]; then
  19.                . $SYSTEMPATH/duo-init.sh &
  20.        fi
  21.  
  22.        if [ -f $SYSTEMPATH/blink.sh ]; then
  23.                . $SYSTEMPATH/blink.sh &
  24.        fi
  25.  
  26.        if [ -f $SYSTEMPATH/usb.sh ]; then
  27.                . $SYSTEMPATH/usb.sh &
  28.        fi
  29.  
  30.        if [ -f $USERDATAPATH/auto.sh ]; then
  31.                usleep 30000
  32.                . $USERDATAPATH/auto.sh &
  33.                exit 1
  34.        fi
  35.        if [ -f $SYSTEMPATH/auto.sh ]; then
  36.                usleep 30000
  37.                . $SYSTEMPATH/auto.sh &
  38.        fi
  39.        ;;
  40.  stop)
  41.        ;;
  42.  restart|reload)
  43.        ;;
  44.  *)
  45.        echo "Usage: $0 {start|stop|restart}"
  46.        exit 1
  47. esac
  48.  
  49. exit $?
  50.  

duo-init.sh, blink.sh, usb.sh, auto.sh en los directorios /mnt/data/auto.sh y /mnt/system/auto.sh

En base a la documentacion de el dispositivo si yo quiero que un script sea ejecutado luego de que el dispositivo encienda solo debo agregar el comando

Código
  1. wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

a el archivo /mnt/system/auto.sh quedando de la siguiente forma
Código
  1. #!/bin/sh
  2. wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf &

Pero desafortunamente no funciono, intente hacer lo mismo con el archivo /mnt/data/auto.sh pero tampoco funciono.

He intentado un par de cosas mas pero honestamente no quiero hacer esto mas confuso.
Gracias de antemano.

Aqui una imagen de el dispotivo:




En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[bash] ¿Cómo puedo volver a ejecutar sólo una parte del script?
Scripting
urbi 1 3,648 Último mensaje 21 Noviembre 2010, 17:11 pm
por leogtz
[AYUDA] Ejecutar Script Bash
Scripting
FranciskoAsdf 3 7,285 Último mensaje 22 Agosto 2011, 13:20 pm
por armiel
¿Como ejecutar shell script (bash) desde PHP?
PHP
‭lipman 9 30,925 Último mensaje 24 Enero 2012, 15:51 pm
por mokoMonster
[Bash] ejecutar una aplicacion en la misma consola del script
Scripting
z_ane_666 1 4,507 Último mensaje 2 Marzo 2012, 19:30 pm
por moikano→@
[BASH] Ejecutar un script pasandole argumentos desde otro
Scripting
ivan_esp 3 4,496 Último mensaje 14 Octubre 2014, 18:47 pm
por ivan_esp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines