lunes, abril 03, 2006

[LINUX.Net]Guia Definitiva para instalar modem Zyxel Prestige 630-c1 Usb en Ubuntu Breezy 5.10

Para instalar el modem zyxel prestige 630-c1 en ubuntu linux 5,10 (recopilada por un monton de lados, limpia, finalizada y testeada en un ubuntu desde 0 por Muadiv)

Los archivos necesarios son:

1. cpp-3.4_3.4.4-6ubuntu8_i386.deb

2. gcc-3.4_3.4.4-6ubuntu8_i386.deb

3. gcc-3.4-base_3.4.4-6ubuntu8_i386.deb

4. libatm1-dev_2.4.1-17_i386.deb

5. libusb-dev_0.1.10a-17ubuntu1_i386.deb

6. cxacru-630-new2.tar.gz

7. modulo-630-c1.tar.gz

8. br2684ctl



Una vez que tenemos todo esto descargado lo tiramos a un disquete o un pendrive, arrancamos Ubuntu y en nuestra carpeta de usuario (/hombre/nombre_de_usuario) que se puede encontrar en el menu Lugares >> Carpeta personal creamos dos carpetas. En la primera que llamaremos "gcc-3.4" copiamos los archivos 1, 2, 3 y 8. En otra carpeta que llamaremos "zyxel" copiamos el resto de los archivos, es decir, los archivos 4, 5, 6 y 7.

Y ante todo, para poder hacer el make, entren al manejador de paquetes SYNAPTIC y pongan en buscar “linux-headers” , van a salir tres cosas para instalar, y las instalan a las tres, de lo contrario no podran hacer el make luego.

Lo primero que haremos es solucionar el error que se produce al tratar de hacer el make del modulo ya que según entiendo el kernel fue compilado con gcc 3.4 y la version que viene en Breezy es la 4.0. Como los modulos necesitan ser compilados en la misma version que se compilo el kernel se produce esta falla.

- Entramos a la carpeta gcc-3.4:
Código:
cd ~/gcc-3.4

- Ejecutamos estos comandos
Código:
sudo apt-get install build-essential

Y debieramos ver algo como esto (cuando nos pida la opinio sobre algo digasmole que si):
Código:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
binutils dpkg-dev g++ g++-4.0 gcc gcc-4.0 libc6-dev libstdc++6-4.0-dev linux-kernel-headers make
Paquetes sugeridos:
binutils-doc debian-keyring gcc-4.0-doc lib64stdc++6 manpages-dev autoconf automake1.9 libtool flex bison gcc-doc
gcc-4.0-locales libc6-dev-amd64 lib64gcc1 glibc-doc libstdc++6-4.0-doc stl-manual
Paquetes recomendados
libmudflap0-dev
Se instalarán los siguientes paquetes NUEVOS:
binutils build-essential dpkg-dev g++ g++-4.0 gcc gcc-4.0 libc6-dev libstdc++6-4.0-dev linux-kernel-headers make
0 actualizados, 11 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0B/10,2MB de archivos.
Se utilizarán 41,9MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? s

Preconfigurando paquetes ...
Seleccionando el paquete binutils previamente no seleccionado.
(Leyendo la base de datos ...
57077 ficheros y directorios instalados actualmente.)
Desempaquetando binutils (de .../binutils_2.16.1-2ubuntu6_i386.deb) ...
Seleccionando el paquete linux-kernel-headers previamente no seleccionado.
Desempaquetando linux-kernel-headers (de .../linux-kernel-headers_2.6.11.2-0ubuntu13_i386.deb) ...
Seleccionando el paquete libc6-dev previamente no seleccionado.
Desempaquetando libc6-dev (de .../libc6-dev_2.3.5-1ubuntu12_i386.deb) ...
Seleccionando el paquete gcc-4.0 previamente no seleccionado.
Desempaquetando gcc-4.0 (de .../gcc-4.0_4.0.1-4ubuntu9_i386.deb) ...
Seleccionando el paquete gcc previamente no seleccionado.
Desempaquetando gcc (de .../gcc_4%3a4.0.1-3_i386.deb) ...
Seleccionando el paquete libstdc++6-4.0-dev previamente no seleccionado.
Desempaquetando libstdc++6-4.0-dev (de .../libstdc++6-4.0-dev_4.0.1-4ubuntu9_i386.deb) ...
Seleccionando el paquete g++-4.0 previamente no seleccionado.
Desempaquetando g++-4.0 (de .../g++-4.0_4.0.1-4ubuntu9_i386.deb) ...
Seleccionando el paquete g++ previamente no seleccionado.
Desempaquetando g++ (de .../g++_4%3a4.0.1-3_i386.deb) ...
Seleccionando el paquete make previamente no seleccionado.
Desempaquetando make (de .../archives/make_3.80-9_i386.deb) ...
Seleccionando el paquete dpkg-dev previamente no seleccionado.
Desempaquetando dpkg-dev (de .../dpkg-dev_1.13.10ubuntu4_all.deb) ...
Seleccionando el paquete build-essential previamente no seleccionado.
Desempaquetando build-essential (de .../build-essential_11.1_i386.deb) ...
Configurando binutils (2.16.1-2ubuntu6) ...

Configurando linux-kernel-headers (2.6.11.2-0ubuntu13) ...
Configurando libc6-dev (2.3.5-1ubuntu12) ...
Configurando gcc-4.0 (4.0.1-4ubuntu9) ...
Configurando gcc (4.0.1-3) ...

Configurando make (3.80-9) ...

Configurando dpkg-dev (1.13.10ubuntu4) ...
Configurando libstdc++6-4.0-dev (4.0.1-4ubuntu9) ...
Configurando g++-4.0 (4.0.1-4ubuntu9) ...
Configurando g++ (4.0.1-3) ...

Configurando build-essential (11.1) ...

Luego le damos:
Código:
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

y debieramos ver lo siguiente:
Código:
** Packages in archive but missing from override file: **
cpp-3.4 gcc-3.4 gcc-3.4-base

Wrote 3 entries to output Packages file.

Ahora editamos las fuentes de Ubuntu:
Código:
sudo gedit /etc/apt/sources.list

Y en el archivo que se nos abre agragamos la siguiente linea:
Código:
deb file:///home/nombre_de_usuario/gcc-3.4 ./
donde "nombre_de_usuario" debe ser reemplazado por su usuario (en mi caso como se abran dado cuenta es muadiv...)

Luego guardan los cambios al archivo, lo cierran y actuatilizamos la lista de fuentes:
Código:
sudo apt-get update

Debieramos ver lo siguiente:
Código:
Ign file: ./ Release.gpg
Ign file: ./ Release
Ign file: ./ Packages
Leyendo lista de paquetes... Hecho

Ahora instalamos gcc-3.4:
Código:
sudo apt-get install gcc-3.4

Y debieramos tener esto en la consola (cuando nos pregunte algo le decimos que si):
Código:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
cpp-3.4 gcc-3.4-base
Paquetes sugeridos:
gcc-3.4-doc libc6-dev-amd64
Se instalarán los siguientes paquetes NUEVOS:
cpp-3.4 gcc-3.4 gcc-3.4-base
0 actualizados, 3 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0B/2355kB de archivos.
Se utilizarán 8720kB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? s
AVISO: ¡No se han podido autenticar los siguientes paquetes!
gcc-3.4-base cpp-3.4 gcc-3.4
¿Instalar estos paquetes sin verificación [s/N]? s

Preconfigurando paquetes ...
Seleccionando el paquete gcc-3.4-base previamente no seleccionado.
(Leyendo la base de datos ...
59200 ficheros y directorios instalados actualmente.)
Desempaquetando gcc-3.4-base (de .../gcc-3.4-base_3.4.4-6ubuntu8_i386.deb) ...
Seleccionando el paquete cpp-3.4 previamente no seleccionado.
Desempaquetando cpp-3.4 (de .../cpp-3.4_3.4.4-6ubuntu8_i386.deb) ...
Seleccionando el paquete gcc-3.4 previamente no seleccionado.
Desempaquetando gcc-3.4 (de .../gcc-3.4_3.4.4-6ubuntu8_i386.deb) ...
Configurando gcc-3.4-base (3.4.4-6ubuntu8) ...
Configurando cpp-3.4 (3.4.4-6ubuntu8) ...
Configurando gcc-3.4 (3.4.4-6ubuntu8) ...

Por ultimo editamos de nuevo la lista de fuentes:
Código:
/etc/apt/sources.list
, borramos lo que habiamos insertado anteriormente y actualizamos las fuentes nuevamente,
Código:
sudo apt-get update

Ahora si podemos comenzar con el proceso similar al que se hacia en Hoary, entramos a la carpeta zyxel y descomprimimos ya sea por consola o desde Nautilus los dos archivos .gz que estan ahi. Con esto obtenemos dos nuevas carpetas, modulo-630-c1 y cxacru-630-new.

Instalamos los paquetes necesarios. libusb y libatm1 ya vienen instalados en Breezy por lo que solo hay que instalar estos "dev"
Código:
sudo dpkg -i *.deb

Obtenemos lo siguiente:
Código:
Seleccionando el paquete libatm1-dev previamente no seleccionado.
(Leyendo la base de datos ...
73028 ficheros y directorios instalados actualmente.)
Desempaquetando libatm1-dev (de libatm1-dev_2.4.1-17_i386.deb) ...
Seleccionando el paquete libusb-dev previamente no seleccionado.
Desempaquetando libusb-dev (de libusb-dev_0.1.10a-17ubuntu1_i386.deb) ...
Configurando libatm1-dev (2.4.1-17) ...
Configurando libusb-dev (0.1.10a-17ubuntu1) ...

Entramos a la carpeta del modulo:
Código:
cd modulo-630-c1
y ejecutamos
Código:
make

Debieramos tener la siguiente respuesta:
Código:
make modules -C /lib/modules/2.6.12-9-386/build SUBDIRS=/home/muadiv/zyxel/modulo-630-c1
make[1]: Entering directory `/usr/src/linux-headers-2.6.12-9-386'
CC [M] /home/muadiv/zyxel/modulo-630-c1/speedtch.o
Building modules, stage 2.
MODPOST
CC /home/muadiv/zyxel/modulo-630-c1/speedtch.mod.o
LD [M] /home/muadiv/zyxel/modulo-630-c1/speedtch.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.12-9-386'

Luego:
Código:
sudo cp speedtch.ko /lib/modules/2.6.12-9-386/kernel/drivers/usb/atm/

Nos movemos al directorio del cxacru
Código:
cd ..
cd cxacru-630-new
sudo mkdir /etc/cxacru
sudo make

y tenemos lo siguiente:
Código:
cd init && make clean
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/init'
rm -f cxload cxioctl cxloaddbg cxloaddbgt
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/init'
cd bridged && make clean
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/bridged'
rm -f br2684ctl
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/bridged'
cd init && make && make install
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/init'
gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I../include -lusb -lpthread cxload.c -o cxload
cxload.c: En la función ‘load_firmware’:
cxload.c:758: aviso: el puntero que apunta en el paso del argumento 3 de ‘send_block’ difiere en signo
gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I../include -lusb -lpthread cxioctl.c -o cxioctl
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/init'
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/init'
install -c -m 755 -p cxload cxioctl /usr/sbin
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/init'
cd firmware && make
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/firmware'
mkdir -p /etc/cxacru/
install -c -m 644 -p cxfirm4.bin /etc/cxacru/
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/firmware'
cd scripts && make
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/scripts'
mkdir -p /etc/cxacru
install -c -m 755 -p cxload.sh cxunload.sh cxstart.sh cxstop.sh /usr/sbin
install -c -m 755 -p service/cxacru /etc/cxacru/cxacru.service
if [ ! -f /etc/cxacru/cxacru.conf ]; then install -c -m 644 -p config/cxacru.conf /etc/cxacru; 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 `/home/muadiv/zyxel/cxacru-630-new/scripts'
cd bridged && make && make install
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/bridged'
gcc -O2 -Wstrict-prototypes -fomit-frame-pointer -pipe -march=i686 -Wall -DLINUX -I/lib/modules/2.6.12-9-386/build/include br2684ctl.c -o br2684ctl -latm
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/bridged'
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/bridged'
install -c -m 755 -p br2684ctl /usr/sbin
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/bridged'

Para que el modem se conecte automaticamente al iniciar:
Código:
sudo make add_service

de donde obtenemos:
Código:
cd scripts && make add_service
make[1]: Entering directory `/home/muadiv/zyxel/cxacru-630-new/scripts'
install -c -m 755 -p service/cxacru /etc/cxacru/cxacru.service
if [ -f /etc/debian_version ]; then install -c -m 755 -p service/cxacru /etc/init.d/cxacru; update-rc.d cxacru defaults; update-rc.d -f atm remove; else if [ -f /etc/redhat-release ]; then install -c -m 755 -p service/cxacru /etc/rc.d/init.d/cxacru; chkconfig --add cxacru; else if [ -f /etc/SuSE-release ] ; then install -c -m 755 -p service/cxacru /etc/init.d/cxacru; install -c -m 755 -p service/cxacru /etc/rc.d/cxacru; insserv cxacru; else if [ -f /etc/slackware-version ] ; then if grep -q -E "^ */usr/sbin/cxstart.sh *$" /etc/rc.d/rc.local; then cd /etc/rc.d; cp -f rc.local rc.local.tmp; echo "/usr/sbin/cxstart.sh" >> rc.local.tmp; mv -f rc.local.tmp rc.local; fi fi fi fi fi
Adding system startup for /etc/init.d/cxacru ...
/etc/rc0.d/K20cxacru -> ../init.d/cxacru
/etc/rc1.d/K20cxacru -> ../init.d/cxacru
/etc/rc6.d/K20cxacru -> ../init.d/cxacru
/etc/rc2.d/S20cxacru -> ../init.d/cxacru
/etc/rc3.d/S20cxacru -> ../init.d/cxacru
/etc/rc4.d/S20cxacru -> ../init.d/cxacru
/etc/rc5.d/S20cxacru -> ../init.d/cxacru
Removing any system startup links for /etc/init.d/atm ...
make[1]: Leaving directory `/home/muadiv/zyxel/cxacru-630-new/scripts'

Aqui no hay que preocuparse por un demonio que causa problemas y al que se le hace mencion en otras guias, el script anterior lo remueve automaticamente.

Actualizamos la lista de los modulos con:
Código:
sudo depmod -a

Luego ejecutamos:
Código:
sudo gedit /etc/cxacru/cxacru.conf
y donde dice VPI=8 y VCI=38 o algo asi ingresamos los siguientes valores
VPI=0
VCI=33 (estos datos son para mas que todo para córdoba, con telecom)
y luego ejecutamos
sudo cxstart.sh

Si la Providencia nos acompaña debieramos tener:
Código:
>>> Inits Conexant AccessRunner > Loading firmware...
Conexant AccessRunner microcode upload program. 6/9/2003
Josep Comas
See credits in documentation

I found ADSL modem with VendorID = 0586 & ProductID = 330a
Loading and sending /etc/cxacru/cxfirm4.bin...
Firmware is sent!
Setting configuration...
Waiting ADSL line is up (until 90 seconds)...
..............
ADSL line is up (Downstream 128 Kbits/s, Upstream 64 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 br2684 kernel module...

>>> Loading br2684ctl...
Conexant AccessRunner ioctl call. 6/9/2003
Josep Comas
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...
The file /etc/ppp/peers/dsl-provider does not exist. Please create it or use
a command line argument to use another file in the /etc/ppp/peers/ directory.
/usr/sbin/cxnet4up.sh successful

Para terminar:
Código:
sudo pppoeconf

Y con esto ya deberia funcionar si aparece un dispositivo llamado “nas0”. Luego ponganle que si en todas las pantallas

Esta guia en realidad es otra que yo saque de alguno de los miles de sitios a los que consulte con este tema, nada mas que corregida con algunos pasos que le faltaban.
Si luego de hacer todo esto deciden actualizar ubuntu, cuando quieran conectarse no podran, y tendran que hacer algunos de los pasos de nuevo.

Saludos y espero que les haya servido...(Aclaración, en Dapper Drake, todavia no funciona, pero si en Breezy)

By: Muchos y correcciones de Muadiv
http://www.muadiv.com.ar
linux@muadiv.com.ar