ZyXEL-630C1-HowTo

De Grupo de Usuarios de GNU Linux de Quilmes

Contenido

Introducción

  • Este How To, se hiso sobre un Slackware 10.2 con el kernel 2.6.10, para otros kernels ver el apartado de Otros kernels. El modem en si es un ZyXEL 630-C1(USB) de Prestige (Lo dan los chicos de Telefonica)

Requerimientos

  • Lo que necesitaremos sera lo siguiente:
- Kernel 2.6.10 (Ver el apartado para otros kernels si es el caso)
- Modulo 630-C1
- cxacru (Lo que hace conectar al modem y darle vida!)
- pppoe (muchas distribuciones ya lo traen)
- linux-atm

IMPORTANTE: Consiganse un paquete linux-atm-2.4.1-1.i386.rpm y y luego con rpm2tgz lo pasan a .tgz

Instalando el software

  • Kernel 2.6.10 (Ver el apartado para otros kernels si es el caso)

Consigan e instalen el kernel junto con los headers, modules, y el resto:

- alsa-driver-1.0.8_2.6.10-i486-1.tgz
- kernel-generic-2.6.10-i486-1.tgz
- kernel-headers-2.6.10-i386-1.tgz
- kernel-source-2.6.10-noarch-1.tgz
- kernel-modules-2.6.10-i486-1.tgz 

Lo pueden conseguir aca.

  • Modulo 630-C1

Descompriman el modulo y ya dentro del directorio hagan un make

 # cd modulo_path (el que tengan)
 # make
 make modules -C /lib/modules/2.6.10/build SUBDIRS=/root/modulo-630-c1
 make[1]: Entering directory `/usr/src/linux-2.6.10'
 CC [M] /root/modulo-630-c1/speedtch.o
 Building modules, stage 2.
 MODPOST
 CC /root/modulo-630-c1/speedtch.mod.o
 LD [M] /root/modulo-630-c1/speedtch.ko
 make[1]: Leaving directory `/usr/src/linux-2.6.10'

Ahora un make install

 # make install
 make modules_install -C /lib/modules/2.6.10/build SUBDIRS=/root/modulo-630-c1
 make[1]: Entering directory `/usr/src/linux-2.6.10'
 INSTALL /root/modulo-630-c1/speedtch.ko
 make[1]: Leaving directory `/usr/src/linux-2.6.10'

Ahora queda pasar el modulo para que el kernel lo tome..

 # cp ../ruta_del_modulo/speedtch.ko /usr/src/linux-2.6.10/drivers/usb/atm/
 # cp ../ruta_del_modulo/speedtch.ko /lib/modules/2.6.10/kernel/drivers/usb/atm 

Terminamos con el modulo.

  • cxacru

Descompriman el cxacru y hagan un make

 # make
 cd init && make clean
 make[1]: Entering directory `/root/cxacru-630-C1/init'
 rm -f cxload cxioctl cxloaddbg cxloaddbgt
 make[1]: Leaving directory `/root/cxacru-630-C1/init'
 cd sarlib && make clean
 make[1]: Entering directory `/root/cxacru-630-C1/sarlib'
 /bin/rm -f *.o
 make[1]: Leaving directory `/root/cxacru-630-C1/sarlib'
 cd bridged && make clean
 make[1]: Entering directory `/root/cxacru-630-C1/bridged'
 rm -f br2684ctl
 make[1]: Leaving directory `/root/cxacru-630-C1/bridged'
 cd init && make && make install
 make[1]: Entering directory `/root/cxacru-630-C1/init'
 gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I../include -lusb -lpthread cxload.c -o cxload
 gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I../include -lusb -lpthread cxioctl.c -o cxioctl
 make[1]: Leaving directory `/root/cxacru-630-C1/init'
 make[1]: Entering directory `/root/cxacru-630-C1/init'
 install -c -m 755 -p cxload cxioctl /usr/sbin
 make[1]: Leaving directory `/root/cxacru-630-C1/init'
 cd firmware && make
 make[1]: Entering directory `/root/cxacru-630-C1/firmware'
 install -c -m 644 -p cxfirm4.bin /usr/sbin
 make[1]: Leaving directory `/root/cxacru-630-C1/firmware'
 cd scripts && make
 make[1]: Entering directory `/root/cxacru-630-C1/scripts'
 install -c -m 755 -p cxload.sh cxunload.sh cxstart.sh cxstop.sh /usr/sbin
 install -c -m 755 -p service/cxacru /etc/cxacru.service
 if [ ! -f /etc/cxacru ]; then \
 install -c -m 644 -p config/cxacru /etc; \
 fi
 install -c -m 755 -p cxnetup.sh cxnetdown.sh /usr/sbin
 install -c -m 755 -p cxnet2up.sh cxnet2down.sh /usr/sbin
 install -c -m 755 -p cxnet3up.sh cxnet3down.sh /usr/sbin
 install -c -m 755 -p cxnet4up.sh cxnet4down.sh /usr/sbin
 make[1]: Leaving directory `/root/cxacru-630-C1/scripts'
 cd bridged && make && make install
 make[1]: Entering directory `/root/cxacru-630-C1/bridged'
 gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I/lib/modules/2.6.10/build/include br2684ctl.c -o br2684ctl -latm
 make[1]: Leaving directory `/root/cxacru-630-C1/bridged'
 make[1]: Entering directory `/root/cxacru-630-C1/bridged'
 install -c -m 755 -p br2684ctl /usr/sbin
 make[1]: Leaving directory `/root/cxacru-630-C1/bridged'

Configurando cxacru

  • El archivo de configuracion (/etc/cxacru/cxacru.conf):
 #
 # Config file for Conexant AccessRunner
 #
 # Driver mode
 DRIVER_MODE=1 # 1 = normal, 2 = debug, 3 = normal+max speed (without ask adsl status), 4 = debug+max speed (without ask adsl status)
 # Protocol
 PROTOCOL_MODE=4 # 1 = RFC1483/2684 routed, 2 = PPP over ATM (pppoa), 3 = RFC1483/2684 bridged, 4 = PPP over Ethernet (pppoe)
 # Paths
 BINARY_PATH="/usr/sbin"
 ATM_PATH=""
 # ADSL
 # if OPEN_MODE is blank then cxload uses default mode acoording VID & PID
 # Values for OPEN_MODE are:
 # 0 = auto selection, G.Handshake
 # 1 = auto selection, T1.413
 # 2 = G.Handshake
 # 3 = ANSI T1.413
 # 4 = ITU-T G.992.1 (G.DMT)
 # 5 = ITU-T G.992.2 (G.LITE)
 OPEN_MODE=
 # ATM
 VPI=8
 VCI=35
 # Specific for RFC1483/2684 routed/bridged
 # if IP_ADDRESS is blank in bridged mode then it uses DHCP to get IP
 IP_ADDRESS=
 NETMASK=255.255.255.0
 GATEWAY= 
 # PPP Especifico
 PPP_UP="pppoe-start"
 PPP_DOWN="pppoe-stop"

Esas 2 lineas son importantes sino el script no conectaria directamente y tendriamos que hacerlo nosotros tipeando pppoe-start en la consola.


Ahora vayamos a "/usr/sbin/cxnet4up.sh" y abajo buscamos esto:

 echo $">>> Loading pppd daemon..."
 if [ "$PPP_UP" = "" ]; then
   adsl-start || exit 1
 else
   $PPP_UP
 fi

Donde cambiamos adsl-start por pppoe-start.

Arrancando el modem al iniciar el linux

  • Para facilitarnos el trabajo de no tener que ejecutar manualmente todo para arrancar el modem puede ir a /etc/rc.d/rc.local y agregar esto:
 echo
 cxacru.sh

Yo agregue un echo para separar y que no se junte toda la informacion del booteo, ya van aver que quiero decir... jeje

Testeando

  • Ya con todo listo corremos el script "cxstart.sh" y vemos q pasa...
 # ./cxstart.sh
 >>> Inits Conexant AccessRunner <<<time>>> Loading firmware...
 Conexant AccessRunner microcode upload program. 6/9/2003
 Josep Comas <jcomas>
 See credits in documentation
 
 I found ADSL modem with VendorID = 0586 & ProductID = 330a
 Loading and sending /usr/sbin/cxfirm4.bin...
 Firmware is sent!
 Setting configuration...
 Waiting ADSL line is up (until 90 seconds)...
 .......
 ADSL line is up (Downstream 1024 Kbits/s, Upstream 256 Kbits/s)
 time to remove modules driver
 time to remove modules driver
 checking remove modules
 >>> Loading driver...
 Launching driver in normal mode...
 /usr/sbin/cxload.sh successful
 Setting PPP over Ethernet...
 >>> Setting PPPoE <<<Loading>>> Loading ppp_generic...
 >>> Loading br2684ctl...
 Conexant AccessRunner ioctl call. 6/9/2003
 Josep Comas <jcomas>
 See credits in documentation
 I found ADSL modem with VendorID = 0586 & ProductID = 330a
 RFC1483/2684 bridge: Interface "nas0" created sucessfully
 RFC1483/2684 bridge: Communicating over ATM 0.8.32, encapsulation: LLC
 RFC1483/2684 bridge: Interface configured
 >>> Activating interface...
 >>> Activating send/receive data...
 >>> Loading pppd daemon...
 ...Connected!
 /usr/sbin/cxnet4up.sh successful

Otros kernels

Bueno, este es un agregado que agregue despues de hacer la guia, aca les dejo como levantar el modem con otros kernels, supongo que servira para todos, yo probe con el 2.6.17.11 (el ultimo estable a la fecha 05-09-06)..

Bueno, para empezar yo trabajo con slackware 10.2, consiganse los paquetes para su distribucion... en slackware los consiguen en su ftp.. Bajensenlo e instalenlo..

Los unicos requisitos son estos:

Networking options
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] Asynchronous Transfer Mode (ATM)
USB support
<*> Support for USB
[*] Preliminary USB device filesystem
<M> EHCI <---- Este no se sies necesario.
<M> UHCI
<M> OHCI

Si necesitan el RFC1483/2684:

Networking options
[*] Asynchronous Transfer Mode (ATM)
[*] Classical IP over ATM

Si necesitan PPP sobre Ethernets:

Networking options
[M] RFC1483/2684 Bridged protocols
Network Device Support
<M> PPP (point-to-point protocol) support
<M> PPP Deflate compression
<M> PPP over Ethernet (EXPERIMENTAL)

Si es PPP sobre ATM:

Network Device Support
<M> PPP (point-to-point protocol) support
<M> PPP Deflate compression
<M> PPP over ATM

IMPORTANTE Y copiar el archivo que se encuentra en el .tar.gz cxacru-630-C1 en la carpeta firmware cxfirm4.bin a la carpeta de firmware segun corresponda renombrado el cxfirm4.bin a cxacru-fw.bin

En algunas distros son

-Slackware 10.2 /usr/lib/hotplug/firmware renombrandolo como cxacru-fw.bin -ubuntu 6.06 / 6.10 /lib/firmware/version_del_kernel renombrandolo como cxacru-fw.bin

Sin este paso las cosas no funcionan

Ahora compilen todoy reinicien con el nuevo kernel (doy por entendido que saben compilar y arrancar el nuevo kernel).

Ahora solo queda levantar la interfaz nas0 y vincularla con ppp0 para que haga la conexion..

Aca les dejo un script que yo puse en rc.local...

modprobe br2684
br2684ctl -b -c 0 -a 8.35
ifconfig nas0 up

con esto ya estaia preparado.. queda hacer el vinculo con ppp0.

Para esto usamos la herramienta pppoe

Hacemos un: pppoe -I nas0 con lo que le decimos que vincule el ppp0 con nas0.

Y eso es todo, creo que debera servir con otras versiones de kernels... Si tienen alguna duda o algo no quedo muy claro pregunten en el foro y les ayudamos.

Agradecimientos

  • Gracias a todas las personas que colaboraron en esto.. primero ante todo, a Vndecid por haber aportado la guia en el foro del kernel 2.6.10, gracias a Pixis5, Richard y a mariux por su ayuda al igual que a todos los demas, y gracias a mi por haberme tomado el tiempo de armar este how to jeje. Gracias a todos y espero que les haya servido como ami.

Salu! y Suertes!

--DeuX 21:43 5 sep 2006 (ART)

Herramientas personales