Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLUCIONADO] función preup() en /etc/conf.d/net
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
simonbcn
n00b
n00b


Joined: 01 Aug 2011
Posts: 34
Location: Terrassa, Barcelona, Spain

PostPosted: Wed Jan 02, 2013 2:04 am    Post subject: [SOLUCIONADO] función preup() en /etc/conf.d/net Reply with quote

Hola,
He añadido una función preup() en /etc/conf.d/net (tal como explica el wiki de Gentoo):

Code:
preup() {
   elog "preup(): Configurando interface ${IFACE}."
   echo "preup(): Configurando interface ${IFACE}."
   [[ "${IFACE}" = "eth0" ]] || return 0

   if interface_exists "${IFACE}"; then
      /usr/bin/lua /root/debloat || ewarn "preup(): Error al configurar debloat en ${IFACE}."
   fi
   
   return 0
}

El problema es que no parece que ejecute esa función nunca. No solo porque no ejecuta el script debloat si no porque tampoco encuentro en ningún log ninguna de las dos primeras lineas "preup(): Configurando interface ${IFACE}." que puse adrede para comprobar si entraba o no en la función.
Incluso he comentado la comprobación de "if interface_exists "${IFACE}"; then" pero sigue sin ejecutar el script.
¿Alguien tiene alguna idea de lo que puede estar fallando?
Gracias. Un saludo.


Last edited by simonbcn on Wed Jan 02, 2013 2:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
quilosaq
l33t
l33t


Joined: 22 Dec 2009
Posts: 762

PostPosted: Wed Jan 02, 2013 12:30 pm    Post subject: Reply with quote

Quote:
"...Sus nombres se componen empezando con el nombre de interfaz..."

Quizás tengas que llamarlas eth0_preup() o algo parecido.
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1464

PostPosted: Wed Jan 02, 2013 1:17 pm    Post subject: Reply with quote

Posiblemente debiera leerme la guia pero a bote pronto me parece que no es necesario tener net en /etc/init.d.
Lo que recuerdo de la guia de gentoo es que se crearan enlaces a net.lo de la forma siguiente:
ln -sf net.lo net.wlan0 de forma que el nombre de interface vaya detras del prefijo net con un punto como separador, net.eth1 net.eth0 lo que sea, luego rc.upadate add net.wlan0 default lo mete en el runlevel default y ahora sí en etc/conf.d se crea un archivo de nombre net para iniciarla siguiendo la sintaxis de un archivo etc.example.bz2 que en mi caso está en /usr/share/doc/openrc-x.y.z.bz2 pero en tu sistema puede que esté en otro sitio.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
simonbcn
n00b
n00b


Joined: 01 Aug 2011
Posts: 34
Location: Terrassa, Barcelona, Spain

PostPosted: Wed Jan 02, 2013 1:28 pm    Post subject: Reply with quote

esteban_conde wrote:
Posiblemente debiera leerme la guia pero a bote pronto me parece que no es necesario tener net en /etc/init.d.
Lo que recuerdo de la guia de gentoo es que se crearan enlaces a net.lo de la forma siguiente:
ln -sf net.lo net.wlan0 de forma que el nombre de interface vaya detras del prefijo net con un punto como separador, net.eth1 net.eth0 lo que sea, luego rc.upadate add net.wlan0 default lo mete en el runlevel default y ahora sí en etc/conf.d se crea un archivo de nombre net para iniciarla siguiendo la sintaxis de un archivo etc.example.bz2 que en mi caso está en /usr/share/doc/openrc-x.y.z.bz2 pero en tu sistema puede que esté en otro sitio.

Los enlaces ya están creados desde la instalación/configuración inicial de Gentoo:
Code:
# rc-update show
....
             net.eth0 |      default                 
               net.lo | boot                         
....

En mi comentario especifico que el fichero que estoy modificando es el que explica el wiki y es: /etc/conf.d/net, no hablo en ningún momento de /etc/init.d que ya tiene el enlace correspondiente para eth0.
eth0 levanta y se configura correctamente, es más, en /etc/conf.d/net he definido
Code:
txqueuelen_eth0="100"
y esto se ejecuta correctamente.
El problema es que parece que no entra nunca en la función preup(). ¿?
Por otro lado, en mi carpeta etc/conf.d aparece otro archivo que se llama network y se parece en el contenido a net pero con todo comentado. ¿Este fichero es un resto obsoleto de una configuración anterior de Gentoo?
Back to top
View user's profile Send private message
simonbcn
n00b
n00b


Joined: 01 Aug 2011
Posts: 34
Location: Terrassa, Barcelona, Spain

PostPosted: Wed Jan 02, 2013 1:43 pm    Post subject: Solucionado Reply with quote

quilosaq wrote:
Quote:
"...Sus nombres se componen empezando con el nombre de interfaz..."

Quizás tengas que llamarlas eth0_preup() o algo parecido.


He probado con "eth0_preup()" y "preup_eth0()" y nada. De todas formas la traducción está mal hecha. Esta es la versión original de esa página del wiki y dice:
Quote:
The functions are called with the interface name first so that one function can control multiple adapters.

Es decir que la función es llamada con el nombre del interfaz como primer parámetro para que una misma función pueda controlar múltiples adaptadores:
Code:
preup IFACE=eth0/eth1/wlan0/...

Sigo investigando pero no debería ser tan complicado, a menos que sea un bug.
-----------------------------------------------------------------------

SOLUCIONADO:

El nombre de la función es "preup()" (sin más, tal como pone el wiki).
Uno de los problemas es que la función "elog" no existe (aunque esto no impedía la ejecución del script).
La segunda y que tiene que ver con el script que uso yo es que a pesar que la función recibe un parámetro llamado IFACE=(interface en cuestión), el script debloat no lo reconoce teniendo que añadir lo siguiente para que funcione:
Code:
IFACE=eth0 /root/debloat


Last edited by simonbcn on Wed Jan 02, 2013 7:58 pm; edited 1 time in total
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1464

PostPosted: Wed Jan 02, 2013 6:50 pm    Post subject: Reply with quote

mira en /usr/share/doc/openrc-*/ a ver si tienes un archivo net.example.bz2, si lo tienes ... esto se puede hacer de muchas formas pero creo que la mejor es: desde usr/share/doc/openrc-*/ ejecutas bzcat net.example.bz2 >/etc/conf.c/net asi habras creado un archivo net en /etc/conf.d/ luego retocale segun el manual.
Aparte del manual suelen ser muy ilustrativos los comentarios del archivo.

Copia de la funcion que quieres emplear:
Quote:
#preup() {
# # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the
# # sys-apps/net-tools package to be installed.
# if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then
# ewarn "No link on ${IFACE}, aborting configuration"
# return 1
# fi
#
# # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the ethtool
# # package to be installed.
# if ethtool "${IFACE}" | grep -q 'Link detected: no'; then
# ewarn "No link on ${IFACE}, aborting configuration"
# return 1
# fi
#
# # Test to see if we're docked or not and configure like so
# # config_docked="dhcp"
# if grep -q "1" /sys/devices/platform/dock.0/docked; then
# einfo "${IFACE} is docked - configuring"
# _configure_variables "docked"
# fi
#
# # Remember to return 0 on success
# return 0
#}

Siguiendo la sintaxis que tiene renombra lo que consideres necesario y descomentalo todo excepto claro está lo que son comentarios que vienen comentados con dos almohadillas # #.
Suerte y a probar.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum