Versión 0.9.1
Esta documentación está dedicada al proyecto SpeedTouch y en especial a su implementación en NetBSD 2.0 . Se asume que SpeedTouch 1.3.1 está instalado y funcionando.
La implementación userppp usada por el proyecto SpeedTouch como complemento para el driver USB, tiene los siguientes problemas en el sistema:
Por tal razón usaremos el PPP nativo de NetBSD.
Recientemente, un dispositivo tap(4) está disponible en pkgsrc (rama HEAD), y puede ser construído como un LKM para ser cargado en NetBSD 2.0 y superior. Este dispositivo está disponible también en NetBSD current.
Construyendo el dispositivo:
$ cd /usr/pkgsrc/net/netbsd-tap # make install
Seguir las instrucciones de la instalación.
Poblando /dev:
# /usr/pkg/sbin/tap_postinstall
Cargando el módulo:
# modload /usr/pkg/lkm/tap.o
Y necesita ser activado en el arranque. También, el programa modem_run puede ser iniciado desde aquí (opcionalmente).
(/etc/ifconfig.tap0) create up ! /usr/pkg/sbin/modem_run -f /usr/pkg/libdata/alcaudsl.sys -v 2
El programa pppoa2 debe ser parchado, porque bridging estaba sólo disponible desde hace algunos días. Este es el parche. Necesita ser añadido al archivo pkgsrc/net/speedtouch/patches/patch-af (inexistente en la versión de pkgsrc speedtouch-1.3.1nb3).
--recorte-->
--- src/pppoa2.c.orig 2004-09-29 16:56:31.000000000 -0400
+++ src/pppoa2.c 2005-02-15 22:01:19.000000000 -0300
@@ -27,7 +27,8 @@
#ifndef _PPPOA2_C_
#define _PPPOA2_C_
-#if defined (__FreeBSD__) || defined (__linux__) || defined (__OpenBSD__) || defined (__DragonFly__)
+#if defined (__FreeBSD__) || defined (__linux__) || defined (__OpenBSD__) || defined (__DragonFly__) \
+ || defined (__NetBSD__)
#define BRIDGING_ENABLED
#endif
@@ -575,7 +576,7 @@
/* In Linux, pppd kill us with a term signal ! */
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
/* ppp is supposed to send SIGHUP to its pty slave so trap SIGHUP */
- signal(SIGHUP , sighandler);
+ /* signal(SIGHUP , sighandler); */
#elif defined(__linux__)
/* on linux it's supposed to be SIGTERM */
signal(SIGTERM, sighandler);
@@ -1405,7 +1406,7 @@
{
int fd;
-#if defined (__FreeBSD__) || defined (__DragonFly__)
+#if defined (__FreeBSD__) || defined (__DragonFly__) || defined (__NetBSD__)
int i;
char devname[] = "/dev/tapXX";
<--recorte--
En resumen las funciones del parche son:
Según los comentarios en el código fuente, el proceso hijo necesita ser muerto con el fin de liberar el puerto usb. El parche necesita ser revisado.
Entonces se realiza el checksum para el parche:
$ pwd /usr/pkgsrc/net/speedtouch $ make makepatchsum
Luego, se construye speedtouch:
$ pwd /usr/pkgsrc/net/speedtouch # make deinstall # make install
La última cosa para hacer es configurar el dispositivo PPPoE para ser activado en el arranque:
(/etc/ifconfig.pppoe0) create #Comment Reemplaza vpi y vci según se requiera. ! /usr/pkg/sbin/pppoa2 -vpi 8 -vci 32 -v 1 -b #Comment Dejar a pppoe0 usar tap0 como su interfaz Ethernet ! /sbin/pppoectl -e tap0 pppoe0 #Comment Configurar la autentificación ! /sbin/pppoectl pppoe0 myauthproto=pap 'myauthname=XXX' 'myauthsecret=YYY' hisauthproto=none #Comment Configurar la misma interfaz PPPoE. Esas direcciones son mágicas #Comment lo que significa que no nos importan las direcciones y dejamos que el PPP #Comment remoto las escoja. 0.0.0.0 0.0.0.1 up
(/etc/ppp/ip-up) #!/bin/sh /sbin/route add default $5 /etc/rc.d/ipfilter reload # cualquier cosa que se quiera habilitar cuando el enlace suba
(/etc/ppp/ip-down) #!/bin/sh /sbin/route delete default $5
(/etc/rc.conf) net_interfaces="tap0 pppoe0" ## añadir otras interfaces según se necesite adsl=NO # no se necesita ifwatchd=YES # mira la interfaz y ejecuta ip-up o ip-down
César Catrián C. ccatrian-eml-cc http://mioficina.cjc.cl