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

8 de mayo de 2009

Huawei U1211 como modem en Linux

Estaba en búsqueda de algún teléfono móvil que me sirviera para navegar en internet, económico y que tuviera capacidades de modem, los elegidos fueron Motorola y Huawei. Me decidi por huawei, basicamente por costo y adicionalmente maneja la banda 3G.
La gran sorpresa es que no existen drivers o manejadores bajo linux, asi que me dedique a buscar en internet y los resultados fueron devastadores.
Basicamente voy a explicarles los pasos que realize y el respectivo test de velocidad:
Primero conectamos y verificamos que el dispositivo sea reconocido de forma generica.Una vez conectado ejecutamos lsusb -v |less y buscamos huawei.



Aqui buscamos dos parametros que son el codigo de vendedor y el codigo del producto.


Ahora bien Teniendo los codigos montaremos el modulo usbserial, (nota: para aquellos que estén usando ubuntu deben tener el ultimo kernel 9.04 instalados 2.6.28-12-generic, ya que la versiones de kernel anteriores usbserial no viene como modulo).

modprobe usbserial vendor=0x12d1 product=0x1008

Listo el pollo como decimos en Venezuela, ahora tendremos dos dispositivos nuevos llamados ttyUSB0 (el modem) y ttyUSB1 (no he averiguado que es).
De aqui en adelante es coser y cantar, usando el comando wvdialconf, debera reconocer el dispositivos antes mencionados y generara un archivo de configuracion /etc/wvdial.conf.
Deberan configurar este archivo con informacion adicional como el numero a discar, password, user, etc, solo voy a mostrarles mi archivos de configuracion para que tengan una idea, ya que buscando en Google hay in sinfin de opciones.
Lo que queria recalcar es como usar este dispositivo movil como model para conectarse a internet.
Aqui les dejo un test de velocidad que a mi parecer no esta nada mal para esta conectado en la banda 2G.



Aqui les dejo mi archivo de configuracion wvdial.conf

[Dialer digitel]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Abort on No Dialtone = off
Password = ''
Check Def Route = off
Phone = *99#
Idle Seconds = 0
Abort on Busy = off
;Minimize = on
Modem Type = Analog Modem
Stupid Mode = on
Baud = 9600
Auto DNS = on
Dial Command = ATM1L3DT
Auto Reconnect = off
Ask Password = off
Init = ATX3
ISDN = off
Dial Attempts = 1
Username = ''
;Dock = on
Carrier Check = on
Init3 = AT+CGDCONT=1,"IP","gprsweb.digitel.ve"
Modem = /dev/ttyUSB0


26 de mayo de 2007

Instalando VMware Server en Fedora Core 6

Existen muchos port sobre problemas en la instalacion de VMware Server sobre Fedora, muchos con trucos que no funcionan, sobre todo si posees las ultimas actualizaciones del Kernel con la ultima version de VMware Server. Supongo que han dado tantas vueltas en distintas paginas y conocen como efectuar la instalacion de VMware. Basicamente estos son los requerimientos o la instalacion que efectue en mi caso, por lo tanto voy a obviar muchos pasos e involucrarnos en concfreto al problema.

Requerimientos:

Kernel version: 2.6.20-1.2948.fc6
VMware server Version: 1.03 en formato RPM
Instalar kernel-devel y Xinetd.

Post Instalacion

Una vez instalados todos los requerimientos, debemos ejecutar vmware-config.pl
y por supueto, el error.
Este es parte de error que genera la configuracion :



Using 2.6.x kernel build system.
make: se ingresa al directorio `/tmp/vmware-config10/vmmon-only'
make -C /lib/modules/2.6.20-1.2948.fc6/build/include/.. SUBDIRS=$PWD
SRCROOT=$PWD/. modules
make[1]: se ingresa al directorio
`/usr/src/kernels/2.6.20-1.2948.fc6-i686'
CC [M] /tmp/vmware-config10/vmmon-only/linux/driver.o
In file included from
/tmp/vmware-config10/vmmon-only/linux/driver.c:80:
/tmp/vmware-config10/vmmon-only/./include/compat_kernel.h:21:
error: expected declaration specifiers or ‘...’
before ‘compat_exit’
/tmp/vmware-config10/vmmon-only/./include/compat_kernel.h:21:
error: expected declaration specifiers or ‘...’
before ‘exit_code’
/tmp/vmware-config10/vmmon-only/./include/compat_kernel.h:21:
aviso: el tipo de dato por defecto es ‘int’ en la
declaración de ‘_syscall1’
make[2]: *** [/tmp/vmware-config10/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config10/vmmon-only] Error 2
make[1]: se sale del directorio
`/usr/src/kernels/2.6.20-1.2948.fc6-i686'
make: *** [vmmon.ko] Error 2
make: se sale del directorio `/tmp/vmware-config10/vmmon-only'
Unable to build the vmmon module.
For more information on how to troubleshoot module-related problems,
please
visit our Web site at
"http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
Execution aborted.

Como se observa el error es causado en una de las cabeceras de vmmon de VMware, y eso es lo que vamos a solventar.

Codigo de la cabecera compat_kernel.h
A continuacion el codigo de la cabecera compat_kernel.h y la linea 21 resaltada en blanco. Lo que hacemos es colocarla como comentario, y solventado el problema. Es usado para procesadores de 64 bit y arm y provee un acceso a la funcion de salida Exit().




#ifndef
__COMPAT_KERNEL_H__
# define __COMPAT_KERNEL_H__
#include <asm/unistd.h>
/*
* Used by _syscallX macros. Note that this is global
variable, so
* do not rely on its contents too much. As exit() is only
function
* we use, and we never check return value from exit(), we
have
* no problem...
*/
extern int errno;
/*
* compat_exit() provides an access to the exit() function. It
must * be named compat_exit(), as exit() (with different
signature) is * provided by x86-64, arm and other (but not by
i386).
*/
#define __NR_compat_exit __NR_exit
//static
inline _syscall1(int, compat_exit, int, exit_code);

/*
* wait_for_completion and friends did not exist before 2.4.9.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 9)
#define compat_complete_and_exit(comp, status) complete_and_exit(comp,
status)
#else
/*
* See compat_wait_for_completion in compat_completion.h.
* compat_exit implicitly performs an unlock_kernel, in
resident code,
* ensuring that the thread is no longer running in module
code when the
* module is unloaded.
*/
#define compat_complete_and_exit(comp, status) do { \
lock_kernel(); \
up(comp); \
compat_exit(status); \
} while (0)
#endif
#endif /* __COMPAT_KERNEL_H__ */

Se preguntaran donde consigo este archivo.....
El mismo esta en un archivo comprimito tar llamado vmmon.tar, que instala vmware y en el caso de fedora es instalado en /usr/lib/vmware/modules/source/vmmon.tar, debemos descomrpimir este archivo en una carpeta temporal. Al descomprimirlo, buscar dentro de la carpeta vmmon_only/include el archivo compat_kernel.h y editarlo. En la edicion del archivo colocar como comentatio la linea 21, anteponiendo una doble barra de division (//).
Guardar la modificacion, empaquetar nuevamente directorio vmmon en formato tar y copiarlo nuevamente en /usr/lib/vmware/modules/source/vmmon.tar.
Ahora podemos ejecutar vmware-config.pl y responder a las preguntas que nos haga el instalador.

Esto es todo, si tienen alguna duda no duden en escribirme.
Share Up To 110 % - 10% Affiliate Program