Mostrando entradas con la etiqueta usb. Mostrar todas las entradas
Mostrando entradas con la etiqueta usb. Mostrar todas las entradas

01 abril 2008

Livebox en Ubuntu

Hoy traigo un artículo, espero que de interés para la comunidad. Hace unos meses instalé ese armatoste denominado Livebox por los distribuidores de adsl Orange. Además de ser bastante feo es enorme [vamos que no hay forma de camuflarlo en sitio alguno] y me dio más de un quebradero de cabeza, llamadas a soporte incluidas [el famoso 902 de las narices]. Finalmente logré conectar con cable de red ethernet, con más trabajo que nada, pero ese fue el primer paso. Ya tenía conexión.

Seguidamente le tocó el turno a los demás equipos wifi de la casa. Un detalle de vital importancia: para activar cualquier tarjeta inalámbrica que pretendamos conectar al router wifi, debemos pulsar inmediatamente antes el famoso botoncito Nº 1 del lateral del Livebox, lo que nos permitirá enlazar con nuestro equipo wifi y así entrar en la red inalámbrica Livebox. Eso no fue mucho problema para el portátil que usa chipset Atheros ni para los otros equipos con chipset rt61 e ipw3945. La verdad que este mecanismo de seguridad por hardware se me antoja bastante adecuado para evitar que algún vecino se nos cuele en la red sin nuestro permiso.

Ahora la dificultad estaba en el dispositivo wifi usb que acompaña al pack de Orange y que quería hacer funcionar con Ubuntu Feisty. Probé de mil maneras, con drivers para Linux, intersil, prism54 y no sé que más y tras muchas vueltas encontré una solución.

La "tarjetilla" usb que trato de instalar es una Inventel UR054G (R01) v1.1 con ID 1435:0427 y que puedes comprobar conectándola en tu equipo y ejecutando en terminal el comando lsusb.

Para configurarla he probado de todo, ya que monta un chipset de la familia Prism54, y de hecho en el kernel creo recordar que se cargaban los módulos islsm y los prism54usb que no funcionan adecuadamente [hablo de memoria pero la cosa va por ahí, así que ejecutando el comando lsmod sabremos exactamente cuáles son los que corresponden]. La he probado con Gutsy y funciona con los drivers nativos [creo que eran los p54usb] pero al rato se cuelga el equipo. Así que, igualmente recomiendo Ndiswrapper, que tan buenos resultados ha demostrado con Feisty.

Me decidí por Ndiswrapper y todo ha funcionafo de forma muy estable. Procedí a editar como root el archivo /etc/modprobe.d/blacklist con el comando gksudo gedit /etc/modprobe.d/blacklist y añadí las siguientes líneas de texto:

# tarjeta usb inventel con chipset prism54usb
blacklist islsm_usb
blacklist islsm_device
blacklist islsm
blacklist islsm_pci
blacklist crc_ccitt

# tarjeta usb inventel con chipset prism54usb
blacklist prism54usb
blacklist prism54common

Si tu caso fuese el famoso del Thomson TG123g, que al parecer usa el chipset rtl8187 [busca y trata de localizarlo con el comando lsmod e intenta bloquear la carga del mismo como he explicado anteriormente añadiéndolo a la "lista negra", ya que de lo contrario te puedes encontrar con dos módulos intentando gestionar la tarjeta y eso no te funcionaría].

Si deseas usar Ndiswrapper bajo Ubuntu Gutsy [conozco usuarios que lo han probado y les funciona correctamente], debes añadir al archivo blacklist una nueva línea con el contenido blacklist p54usb. Sospecho que igual es necesario una segunda línea extra, blacklist p54common. Así evitamos que se cargue el módulo que gestiona la tarjeta en esta versión de Ubuntu, con lo que tendremos disponible el módulo de Ndiswrapper listo para ser instalado en el núclñeo de nuestro sistema. Esto lo comento para aquéllos usuarios que, como es mi caso, la tarjeta se les cuelga después de estar funcionando un buen rato.

Ahora estoy probando Ubuntu Hardy 8.04 64-bit y he añadido al mencionado archivo de la "lista negra" las dos líneas antes comentadas:

# tarjeta usb inventel con chipset islsm
blacklist islsm_usb
blacklist islsm_device
blacklist islsm
blacklist islsm_pci
blacklist crc_ccitt

# tarjeta usb inventel con chipset prism54usb
blacklist prism54usb
blacklist prism54common

# tarjeta usb inventel con chipset p54usb
blacklist p54usb
blacklist p54common

Supongo que en Ubuntu Hardy sólo se necesitan estas dos últimas líneas para evitar la carga del driver, ya que funciona desde un principio pero al rato se vuelve inestable y deja de funcionar la red wifi.

Guardo los cambios, reinicio el sistema e instalo Ndiswrapper [si dispones de conexión, usa Synaptic e instala los tres o cuatro paquetes que te aparecen, ya que Ndisgtk te puede ayudar a instalar el driver si eres novato en esto de Linux]. Si no dispones de conexión en el equipo, habilita como repositorio el propio CD de Ubuntu que creo recordar los tiene disponibles [desde Synaptic entras en el menú Configuración > Repositorios y marcas la opción "Instalable desde CD-ROM/DVD"]. O si lo prefieres puedes bajarte los paquetes desde los repositorios oficiales de Ubuntu vía navegador e instalarlos posteriormente. Ojo, que la versión para Feisty es la 1.38 y no te garantizo que cualquier otra te vaya a funcionar. También puedes compilar el módulo desde las fuentes.

Ahora cargo el driver para Windo$ del CD de Livebox [en concreto en la carpeta de drivers llamada Prism y seleccionamos aquéllos que se corresponden con prisma02]. Búscala y la copias con los tres archivos que contiene a tu escritorio Ubuntu e instálalos usando la aplicacción Ndisgtk, disponible en el menú "Sistema > Administración > Windows Wireless Drivers". Si quieres seguir una guía sobre cómo instalar desde Ndiswrapper, busca en la receta que yo mismo usé [cómo instalar driver con Ndiswrapper].

Configurado el dispositivo usb wifi, debes conectar con la señal de Red desde el menú principal Sistema > Administración > Red. Ojo con el tipo de cifrado, wep, wpa y las claves. Yo lo tengo con cifrado wpa [más seguro] y funciona sin problemas, aunque te digo que me costó bastantes horas de quebrarme la cabeza con el puñetero [1ª acepción del diccionario Real Academia de la Lengua] dispositivo. Cuando quieras lanzar la conexión debes pulsar el "botoncito 1" que está en el frontal del Livebox [de los dos que hay, creo que era el de la izquierda]. Este interruptor de hardware [es una buena opción para proteger tu red de invitados no deseados] y ahora lanzas la conexión desde tu sistema Ubuntu para la tarjetilla usb mencionada al principio.

Ubuntu Hardy Heron, ¿32 ó 64-bit?

Bueno, pues me decidí por la opción de 64-bit. Ya se sabe, más potencia y mejor rendimiento. Pero mi gozo en un pozo. No encontré el driver por ningún lado. Ni siquiera en el sitio oficial de la tarjeta wifi usb, Inventel UR054g. Lo intenté con un supuesto driver para 64-bit que encontré en el CD y el sistema se me "colgó". Reinicié y un estupendo "kernel panic" me hizo desistir del invento. No hubo forma de arrancar ni siquiera a prueba de errores (recovery mode).

Así que voy a esperar un par de días para instalar la versión definitiva de Hardy Heron en su modalidad de 32-bit y ya os cuento.

Y como ya han pasado bastantes días pues os comento cómo marcha todo. Efectivamente, instalé la versión de 32-bit y todo volvió a la normalidad. El driver p54usb no es lo suficientemente estable para manejar la conexión, aunque reconozco que va bastante bien [hasta que dice basta y no responde más que con una desinstalación y posterior reinstalación en caliente]. Así que instalo el driver prisma02 bajo Ndiswrapper y todo perfecto. Sólo un pequeño detalle. Cuando entro en mi escritorio Gnome, debo reiniciar los servicios de red desde un terminal mediante el comando sudo /etc/init.d/networking restart y conecta de forma estable sin dificultad. Supongo que bastaría crear un pequeño script y ejecutarlo al inicio, una vez que se cargan todos los módulos y servicios para entrar al sistema con la conexión puesta.

Suerte y a por todas

03 diciembre 2007

Tarjeta USB de Imagenio

¡¡¡ COMPROBADO - FUNCIONA !!!

[Receta aplicada sobre un sistema limpio y recién instalado]

Se trata de dar cobertura al dispositivo wifi que proporciona Imagenio y que responde por las siguientes características: adaptador USB inalambrico Amper Arcadyan Technology Corporation WN4501H. El chipset es exactamente el zd1211b, como se puede ver en el sitio oficial y queda identificado por el código 083a:e501 del fabricante Accton Technology Corp.

Antes de nada debemos asegurarnos de que no se cargue ningún otro módulo para gestionar la tarjeta, por lo que se debe editar el archivo blacklist con el comando sudo gedit /etc/modprobe.d/blacklist y una vez que se ha editado el archivo blacklist, se debe añadir al final del mismo la siguiente línea, blacklist zd1211rw con lo que se evitará la carga de ese módulo. Si anteriormente hubiésemos intentado la conexión con Ndiswrapper, se añadirá una nueva línea blacklist ndiswrapper, con lo que evitaremos que ese módulo se cargue igualmente en nuestro sistema. Ahora hay que reiniciar y comprobar con el comando lsmod que ninguno de los dos módulos, zd1211rw y ndiswrapper, aparecen cargados en el kernel de nuestro sistema.

Un par de comentarios previos. Es posible que no se necesite bajar las fuentes del kernel y que sea suficiente con las cabeceras, asíq ue este primer intento se llevará a cabo solamente con lo que tenemos en el sistema "tal cual". El módulo a compilar es el zd1211b [esto lo comento porque hay pequeñas modificaciones en el proceso si el módulo fuese el zd1211].

Comprobado: Es necesario instalar las fuentes del kernel (linux-source). No ha colado lo de la compilación con las headers. Para ello se pueden descargar de los repositorios de Guadalinex [o de Ubuntu si fuera el caso], simplemente hay que buscarlas con Synaptic o bien desde terminal con apt-get e instalarlas. Si no se dispone de conexión bajo Guadalinex se pueden descargar desde otro equipo o sistema operativo, aunque lo mejor es ir al repositorio oficial. Una vez descargadas se copian al escritorio de Guadalinex desde donde se pueden instalar fácilmente con un doble clic sobre dicho archivo o desde un terminal con el comando:

sudo dpkg -i /home/tu_usuario/Desktop/linux-source-2.6.17_2.6.17-10.33_all.deb


Si el nombre de las fuentes o la versión de las mismas fuese otro, hay que usar el que corresponda en ese caso.

Lo más probable es que te cree un archivo comprimido en el directorio /usr/src, por lo que debes entrar en ese directorio con el comando cd /usr/src y descomprimir con el comando

sudo tar xvfj linux-source-2.6.17-bla-bla-bla.tar.bz2

pero si el archivo fuese del tipo linux-source-2.6.17-bla-bla-bla.tar.gz debes ejecutar el comando

sudo tar zxvf linux-source-2.6.17-bla-bla-bla.tar.gz

Una vez instaladas las fuentes se requieres también instalar las cabeceras [linux-headers], pero teniendo en cuenta que Guadalinex incorpora además las cabeceras del kernel instaladas de serie [al menos en la versión v4, no sé sin la v4.1 estarán ya disponibles], nos aseguramos que hay creado un enlace simbólico desde el archivo /lib/modules/2.6.17-10-generic/build hacia /usr/src/linux-headers-2.6.17-generic y otro desde/usr/src/linux hacia /usr/src/linux-2.6.17. Si no fuera así hay que crearlos con los dos comandos siguientes:

sudo ln -s linux-source-2.6.17-bla-bla-bla linux

sudo ln -s /usr/src/linux-headers-2.6.17-bla-bla-bla /lib/modules/2.6.17-bla-bla-bla/build

La existencia o no de esos enlaces, que no archivos, se puede comprobar con el explorador de archivos, Nautilus, y el botón derecho del ratón sobre el mencionado archivo para ver sus propiedades. Está claro que bla-bla-bla es una cadena de caracteres que desconozco pero puede ser “generic” o algo parecido.

Preparado ya el sistema para compilar, el paso siguiente es bajar los drivers del sitio oficial y las instrucciones sobre cómo instalarlos. Ahora conviene hacer una lectura pausada del documento para detenernos en sus apartados 2 y 3. Reproduzco seguidamente el texto del mismo:

2. Building the device driver

In this section, we will describe how to build our ZD1211 Linux driver under the Linux operating system.

2.1 Package Extraction

The first thing one should do is to uncompress this package by tar. After untaring this package, you can see the source files. One should change directory into this directory for proceeding the next step.

El paquete descargado se puede extraer directamente situando el puntero del ratón sobre él y clicar con el botón derecho del ratón para elegir "Extraer aquí", o bien desde un terminal ejecutando el siguiente comando

tar zxvf /ruta_archivo/ZD1211LnxDrv_2_21_0_0.tar.gz

Ahora desde el terminal nos movemos hasta el directorio creado al descomprimir el archivo, mediante el uso del comando cd por lo que se puede ejecutar el comando cd /ruta_archivo/ZD1211LnxDrv_2_21_0_0 [está claro que ruta_archivo se refiere a la ruta donde se encuentra el directorio creado al descomprimir el archivo de los drivers].

Hecho ésto hay que realizar antes un pequeño ajuste, como se describe a continuación:

2.2 Build and install the driver

The package contains drivers for ZD1211 and ZD1211B. If you doesn’t have specified request, both of them will be installed.

Under the extracted directory, there is a Makefile in it. Because our driver can support for kernel 2.4 and kernel 2.6, there are two sets of rule in the Makefile. One has to modify the Makefile according to the path of “kernel source tree” and the version of the kernel in your system. In the Makefile, you may see the following statements,

# if the kernel is 2.6.x, turn on this

#KERN_26=y

#KERNEL_SOURCE=/usr/src/linux-2.6.7

# if the kernel is 2.4.x, turn on this

KERN_24=y

KERNEL_SOURCE=/usr/src/linux-2.4.20-8

If you want to build the kernel under the kernel of 2.4.x, one has to set the variable KERN_24=y and comment the KERN_26=y like that as the example above and modify the variable KERNEL_SOURCE to the path which you install the kernel source. After doing these things, one just need to type the make, and the driver module will be generated and installed.

Se trata de editar con Gedit o cualquier otro editor de texto [bastará con hacer doble clic con el puntero del ratón sobre el archivo Makefile] el archivo Makefile y proceder a realizar ciertas cambios en él. En el texto en inglés se describen varias situaciones, pero puede ser suficiente modificar sólo la línea 20 del archivo Makefile que tenemos en la carpeta donde se ha descomprimido el driver dejándola así:

KERNEL_SOURCE=/usr/src/linux

Ahora se guardan los cambios y seguimos con las instrucciones descargadas:

2.3 Install individual driver

If you only need driver of ZD1211 or ZD1211B, you can issue :

make clean

make ZD1211REV_B=0 (0 for ZD1211, 1 for ZD1211B)

make ZD1211REV_B=0 install (0 for ZD1211, 1 for ZD1211B)

to install the driver.

Así pues llegado a este punto hay que ejecutar los siguientes comandos:

make clean

make ZD1211REV_B=1

sudo make ZD1211REV_B=1 install

3. Getting Start

3.1 Load the driver

Generally, the driver is automatically loaded when the zd1211 dongle inserts. If not, one can use the modprobe –v zd1211(or zd1211b) to load our driver. In order to check whether our driver is loaded successfully, one can use the “lsmod” for this check. If our driver is loaded successfully, the following messages should be seen

...

zd1211 183576 0 (unused)

...

Please note that the 183576 may not be the same as that in your system.

Aquí se informa de que el driver debe estar ya cargado, pero si no fuera así, se procede ejecutando el siguiente comando:

modprobe –v zd1211b

Se puede comprobar si está cargado mediante el comando lsmod que debe mostrarnos una lista de los módulos cargados en el kernel en la que debe aparecer el nuestro, zd1211b. Este es un buen momento para comprobar que no hay ni rastro del módulo zd1211rw, instalado de serie en el sistema, ya que de lo contrario habría que bloquearlo añadiéndolo a blacklist como se indica en el principio.

He supuesto que no ha habido ningún inconveniente en la compilación. Si no ocurriese ésto, hay que informar de los mensajes de error advertidos. Si todo fue bien, hay que proceder a la configuración de la red inalámbrica desde el menú Sistema > Administración > Red donde debes proporcionar todos los datos de conexión de una forma sencilla mediante una interfaz gráfica bastante intuitiva. La otra opción consiste en usar desde un terminal las opciones que maneja el comando iwconfig.

CONFIGURAR LA CONEXIÓN POR LÍNEA DE COMANDOS

Si decides configurar la conexión manualmente, abre un terminal y teclea el comando iwconfig. De esta forma reconocerás la interfaz de la tarjeta wireless con un nombre específico, en nuestro caso como eth1. Ahora tratamos de identificar las redes disponibles que tenemos a nuestro alcance con el comando sudo iwlist eth1 scan, entre las que debe estar la nuestra. Conviene apuntar la ESSID de nuestra conexión si es que no la sabemos, ya que luego nos hará falta. Si no admite el escaneo, consulta con tu proveedor de acceso a Internet para informarte de cuáles son los datos de la Essid y la clave, si es que no los conoces. En Imagenio y en Orange se puede consultar en la base del router.

Con la ESSID y la contraseña de acceso inalámbrica proporcionada por Telefónica [o el proveedor que corresponda] hay que ejecutar en un terminal los siguientes comandos, uno tras otro:

sudo ifconfig eth1 up
sudo iwconfig eth1 essid nombre_de_tu_red_wifi
sudo iwconfig eth1 key s:tu_contraseña
sudo dhclient eth1


Si conectas con IP estática en lugar de modo dhcp, la secuencia de comandos ejecutados en terminal quedaría de este modo:

sudo ifconfig eth1 up
sudo iwconfig eth1 essid nombre_de_tu_red_wifi
sudo iwconfig eth1 key s:tu_contraseña

sudo
ifconfig 192.168.1.X netmask 255.255.255.0 broadcast 192.168.1.255
sudo route add default gw 192.168.1.1

[192.168.1.X es el número IP asociado a tu máquina por lo que si no fuese ese debes usar el que corresponda en tu caso]. Finalmente, si la contraseña wep no está en modo ascii, sino hexadecimal, la línea donde aparece tu contraseña debe quedar así:
sudo iwconfig eth1 key tu_contraseña. Hasta aquí todo bien. Reinicia el equipo y ya deberías tener conexión.

SI A PESAR DE TODO NO LOGRAS CONECTAR


Con lo hecho hasta ahora debería ser suficiente para conectar, pero por razones poco claras, esta información que debe quedar almacenada en el archivo
/etc/network/interfaces desaparece en cada reinicio, con lo que se requiere cargarla cada vez que arrancamos el equipo. Para automatizar el proceso vamos a crear un script, mediante un archivo de texto, por lo que vas a abrir el editor de texto favorito [Gedit es el habitual] y vas a copiar el siguiente contenido:

#!/bin/bash

sudo ifconfig eth1 up
sudo iwconfig eth1 essid nombre_de_tu_red_wifi
sudo iwconfig eth1 key s:tu_contraseña
sudo dhclient eth1


Si conectas con IP estática en lugar de modo DHCP, el texto quedará de esta otra forma:

#!/bin/bash

sudo ifconfig eth1 up
sudo iwconfig eth1 essid nombre_de_tu_red_wifi
sudo iwconfig eth1 key s:tu_contraseña
sudo
ifconfig 192.168.1.X netmask 255.255.255.0 broadcast 192.168.1.255
sudo route add default gw 192.168.1.1

[192.168.1.X es el número IP asociado a tu máquina por lo que si no fuese ese debes usar el que corresponda en tu caso]. Finalmente, si la contraseña wep no está en modo ascii, sino hexadecimal, la línea donde aparece tu contraseña debe quedar así: sudo iwconfig eth1 key tu_contraseña.

Ahora lo guardas en tu escritorio con el nombre conecta.sh y a continuación lo copias o, directamente lo mueves, como root con el comando sudo mv /home/tu_usuario/Desktop/conecta.sh /etc/init.d y, finalmente, moviéndote al directorio donde ha sido copiado [recuerda que debes usar el comando cd /etc/init.d/ para cambiar al directorio elegido] le otorgas permiso de ejecución con el comando sudo chmod 0755 /etc/init.d/conecta.sh

Para finalizar, tecleas en el terminal sudo update-rc.d conecta.sh defaults, con lo que añades un enlace a ese archivo desde el sistema de inicio.

Por último, reinicias para aplicar cambios y ya tienes configurada tu conexión wifi en tu Ubuntu/Guadalinex. Si quieres desconectar la conexión, ejecuta el comando sudo ifdown eth1.

Un consejo, no hagas demasiado caso del asistente para redes Network Manager, ya que no gestiona demasiado bien el uso del módulo zd1211b.

Que nadie se asuste por la extensión de esta guía, ya que en realidad es bastante más corta de lo que parece.

Suerte y hasta pronto :-)