Feeds:
Entradas
Comentarios

Hoy vamos a ver como utilizar el modem USB 3G  Sony Ericson MD300 provisto por CTI en Argentina para conectarse a internet por medio de las redes de telefonía celular.

Este modem funciona muy bien en GNU/Linux (aunque la gente de CTI diga lo contrario 😛 ), particularmente utilizo kubuntu 8.10 (kernel 2.6.27-11).

El modem utiliza el protocolo ppp para establecer un enlace punto a punto contra un host de CTI, el que hace de gateway para nosotros proporcionandonos el tan ansiado acceso a internet.

Los pasos a seguir para configurar el modem son los siguientes:
1) Crear el archivo /etc/udev/rules.d/50-md300.rules y agregar el siguiente contenido en el mismo:

ACTION!=”add”, GOTO=”3G_End”
BUS==”usb”, SYSFS{idProduct}==”d0cf”, SYSFS{idVendor}==”0fce”, PROGRAM=”/bin/sh -c ‘echo 3 > /sys/%p/device/bConfigurationValue'”
LABEL=”3G_END”

NOTA: Cuidado con las comillas si copian y pegan!!!!,
tienen que borrarlas y escribirlas de nuevo en caso 
de que les dé error de sintaxis el udev.
Seguramente en muy poco tiempo este paso ya no sea 
necesario, dado que en futuras versiones este  archivo
ya puede venir por defecto. Por el momento hay que
crearlo.

2) Instalar gnome-ppp

sudo apt-get install gnome-ppp

3) Crear ó modificar el archivo $HOME/.wvdial.conf  y poner el siguiente contenido:

[Dialer Defaults]
Modem = /dev/ttyACM0
ISDN = off
Modem Type = USB Modem
Baud = 460800
Init = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,”IP”,”internet.ctimovil.com.ar”
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = 3616
Username = ctigprs
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = off
Idle Seconds = 0
Auto DNS = off
;Domain =
;Nameserver = 170.51.255.100
;Nameserver2 =
;Minimize = off
;Dock = on
;Do NOT edit this file by hand!

NOTA: este archivo solo funcinará con la empresa CTI, para otras empresas hay que cambiar algunos datos (datos que debería proveer el ISP )


4) Creamos el archivo /etc/ppp/ip-up.d/gateway  y 
le  ponemos lo siguiente:

#!/bin/sh
route add default gw 10.64.64.64


5) Seteamos los permisos para este archivo:

sudo chown root:root /etc/ppp/ip-up.d/gateway

sudo chmod 755 /etc/ppp/ip-up.d/gateway



6) Agregamos a nuestro usuario a los grupos dialout y dip

sudo adduser $USER dialout

sudo adduser $USER dip



7) Cerramos la sesión y la volvemos a abrir 
(esto es para que tome los nuevos grupos a los que pertenece el usuario)


8) Listo!!!
Ahora podemos abrir la aplicación gnome-app y  con solo poner
 conectar deberíamos salir navegando sin problemas :D . 
Bueno, espero que a alguién le sirva, se aceptan mejoras y
comentarios.
Anuncios

Ayer me encontré con un pendrive, del que sospechaba que tenía ciertos sectores defectuosos en el disco, dado que muchas veces que guardaba archivos en el mismo, al leerlos, estos estaban corruptos.

Buscando como testear el pendrive, me encontré con una aplicación que se llama badblocks, que como su nombre lo indica, se encarga de buscar bloques defectuosos en las particiones o en discos.

La forma de usar esta aplicación es muy simple, solo basta con ejecutar

sudo badblocks /dev/sdX

donde sdX es el nombre del dispositivo, en mi caso sdb.

Esto realizará el testeo y mostrará los errores que encuentre. En el caso de que la partición ó el disco (en este caso un pendrive) no contenga errores, no mostrará nada en la salida.

Badblocks tiene un montón de opciones (man badblocks para más info 😉 ), una de las interesantes es -o, que nos permite guardar la lista de bloques malos en un archivo, el que luego puede ser pasado como parámetro al programa mkfs para decirle que, a la hora de crear el filesystem, no utilice dichos bloques 😉 .

En definitiva, los pasos para detectar y no utilizar bloques malos en un dispositivos, son los siguientes (Ojo!!!, esto borrará el contenido completo del dispositivo!!!):

# busca bloques malos y los lista en un archivo
sudo badblocks -o bloquesmalos /dev/sdX
# Crea el filesystem, ignorando los bloques malos.
sudo mkfs.vfat -l bloquesmalos /dev/sdX

(Donde sdX es el dispositivo en cuestión)

y listo 😀 .

SuperKaramba es una herramienta que permite fácilmente crear elementos interactivos en un escritorio KDE. Estos programas interactivos están normalmente incrustados en el fondo del escritorio y no molestan en la vista normal del mismo (Fuente).

Este fin de semana, sin ganas de hacer otra cosa, me puse a jugar un poco con esto. Buscando por todos lados, no puede encontrar un elemento que me permita ver las conexiones entrantes y salientes de mi máquina, así que me decidí a hacer uno propio, después de todo no pintaba muy difícil. Como siempre, empecé por buscar si había algo hecho, y lo más cercano que encontré fue logtail, así que lo baje y basandome en los beneficios que me da la licencia GPL, me puse a examinar su código. Cambien una línea acá, puse otra línea allá… termino andando… pero como siempre, uno no esta conforme con su obra :D, así que refactorize un poco la cosa, y como resultado tuve la versión 0.5 de netstat ( así decidí llamarlo, no soy muy creativo 😀 ).

Buscando un poco, encontré como subirlo a kde-look (que es de donde lo descarga superkaramba). Así que lo subí a eso de las 22hs del día domingo. Mi sorpresa fué el día lunes, cuando a eso de las 9hs revisé el estado de las descargas, y me había encontrado con que ya tenía 80 descargas 😀 . Eso me motivó a seguir jugando con netstat, y le agregué un par de gráficas, imagen de fondo y demás yerbas, con lo cual surgió la versión 0.9, que es la actual.

Resumiendo, el fin de semana no fue “taaan” poco  productivo como pensaba 😀 .

URL de netstat: http://kde-look.org/content/show.php/Netstat?content=83874

La versión 3 del navegador libre mas conocido se ha propuesto establecer un record Guinness para “el mayor número de descargas de un software en 24hs”.

Para esto, la gente de firefox apuesta a la predisposición de los usuarios, para que estos realicen la descarga el mismo día (día al que denominaron “Download Day 2008”). De modo de sincronizar esta tarea, la gente de mozilla ha puesto una página donde podemos dejar una dirección de mail en la cual nos notificarán el día de la descarga, de modo que todos los usuarios podamos realizar la descarga el mismo día.

Hablando un poco de la versión 3, puedo decir que trae un par cosas interesantes, como son la posibilidad de agregar un link a marcadores con un solo click en la barra de dirección, también tiene una barra de direcciones inteligente, la cual nos permite buscar en URLs ya accedidas, agregando simplemente un fragmento de la URL . También dicen (esto no es taaan notorio), que tiene un mejor rendimiento en el uso de memoria RAM y que se ha mejorado la velocidad de navegación.

Más info en http://www.spreadfirefox.com/es-ES/worldrecord

Hoy subí a googlecode, el software que desarrolle para mi proyecto final de carrera.

El software se llama Centralized Packages Manager, esta bajo la licencia GPLv3, y su función es la de permitir, de forma centralizada, establecer y controlar el software que debe estar instalado en cada uno de los host tipo Debian GNU/Linux de una red.

Para esto, en un host central (por medio de un frontend gráfico basado en Qt), se puede seleccionar para cada host tipo Debian GNU/Linux que se desee de la red, que paquetes debe tener instalados y cuales no. En este host central se generan por cada uno de estos host, tres listas de paquetes (MustHave, MayHave, MayNotHave) que son utilizadas por pkgsync en cada uno de estos para establecer su configuración de paquetes. Luego, cada cierto tiempo, cada uno de los host consulta al nodo central su configuración, y se autoconfigura según lo establecido en este para el mismo.

El software fue desarrollado en python, utilizando ( o tratando de… ) el patrón de diseño MVC (model, view, controller). Para el modelo utilicé el ORM SQLObject y para las vistas utilicé la librería Qt ver 4, generando las interfaces por medio de QtDesigner.

Advierto a todo aquel que quiera colaborar con el proyecto (ojalá alguién se sume), NO SOY BUENO PROGRAMANDO, así que pido disculpas anticipadas si los ofendo con mi código….

Bueno, acepto puteadas, comentarios, colaboración y mejoras 😀

La url del proyecto es

http://code.google.com/p/cpackagesmanager/

y para hacer un checkout del proyecto y colaborar, la url del svn es:

https://cpackagesmanager.googlecode.com/svn/trunk

por lo que simplemente haciendo

svn checkout http://cpackagesmanager.googlecode.com/svn/trunk/ cpackagesmanager pueden descargarse el código desde el svn.

Que tan libre somos ?

Según Richard Stallman, la única manera de ser libre es no utilizar herramientas privativas, o sea, que no cumplan con las 4 libertades que han hecho del software libre lo que hoy es.

Para la gente de Debian, podemos medir que tan NO libre es nuestro sistema… y para eso tenemos nada mas y nada menos que al super “Virtual Richard M. Stallman” (como no podía ser de otra manera 😉 ), un paquete que nos brinda esta información.

Como siempre hacemos previamente:

apt-cache show vrms

Description: virtual Richard M. Stallman
The vrms program will analyze the set of currently-installed packages
on a Debian-based system, and report all of the packages from the
non-free tree which are currently installed.
.
Note that vrms is not limited to Debian systems only (which means that
it also works with Debian-derived distributions such as Ubuntu). It is
also not limited to Linux-based systems.
.
Future versions of vrms will include an option to also display text
from the public writings of RMS and others that explain why use of each
of the installed non-free packages might cause moral issues for some in
the Free Software community. This functionality is not yet included.

Ok, eso nos debería quitar las dudas respecto de que es lo que hace ese paquete. Para instalarlo hacemos

apt-get install vrms

y listo, después ejecutamos

vrms

y nos debería mostrar una salida como la siguiente

mboscovich@fuzzer2:~$ vrms
Non-free packages installed on fuzzer2

skype Free Internet Telephony – The whole world can talk for
sun-java6-bin Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-fonts Lucida TrueType fonts (from the Sun JRE)
sun-java6-jre Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-plugin The Java(TM) Plug-in, Java SE 6

Non-free packages with status other than installed on fuzzer2

kqemu-modules-2.6.18-4-68 ( dei) QEMU Accelerator modules for Linux 2.6.18 on P

6 non-free packages, 0.3% of 1902 installed packages.

Lo que me dice que 6 de 1902 paquetes instalados no son libres (0.3%), por lo que puedo decir que soy 99,7% libre o sea….. no soy libre ! 😦 . Voy a tener que replantearme el acceso a páginas que contengan java y voy a tener que dejar el skype 😦 .
Entre las opciones que todavía no tiene implementadas, pero que se prometen para próximas versiones, esta la opción -e (–explain) la cual dará una explicación de porque esa licencia no es libre ( escrita por RMS 🙂 ).

Así que nada, para aquellos que quieren saber que tan dependientes son de software no libre, espero que les sirva.

Si, así es, seguro alguna vez te toco encontrarte con una memoria rota. Bueno, si usas GNU/Linux considerate afortunado, porque las memorias que contienen sectores defectuosos pueden utilizarse sin ningún tipo de problemas. ¿Cómo?, simple, al kernel le podemos decir que no utilice los sectores defectuosos de la misma, por lo que el resto de la memoria puede utilizarse sin problemas.

Lo primero que tenemos que hacer es detectar los sectores defectuosos, para esto utilizamos el memtest86+, cuya instalación en Debian simplemente se reduce a hacer un

apt-get install memtest86+

Luego editamos el /boot/grub/menu.lst y descomentamos la siguiente línea

# memtest86=true

Guardamos y corremos lo siguiente

update-grub

Eso actualizará nuestro grub, y agregará la opción de memtest a éste.

El paso siguiente es reiniciar la máquina y elegir memtest86+ en el grub, con lo que empezamos a correr el testeo de memoria. Entre las opciones que debemos configurar en el memtest, esta el como informa los errores que encuentra, necesitamos que muestre los errores en el formato BadRam, el que luego veremos porque. Para esto simplemente nos vamos a la parte de opciones (presionamos la “c”), de ahí nos vamos “Error Report Mode ” (presionamos 5 ), y por últimos seleccionamos la opción “BadRam Patterns”. Listo, dejamos correr el test, en cuanto al tiempo que este debe correr, digamos que mientras más mejor, pero bueno, para tener un número les digo que sería bueno dejarlo corriendo unas 10 hs, por ejemplo toda una noche.

Pasadas estas 10hs de test, anotamos le reporte de errores, el que luego utilizaremos para decirle al kernel, que direcciones no utilice. En mi caso solo apareció un solo sector defectuoso, y el reporte solo tenía lo siguiente:

badram = 0x01c751f4,0xfffffffc

Tomamos nota de esto y presionamos escape para reiniciar (el test nunca termina, nosotros decidimos cuando es suficiente).

Ahora que ya tenemos el reporte, lo que tenemos que hacer es aplicarle un patch al kernel, y si señores, lamentablemente tendremos que compilar el kernel 😦 , pero no se desanimen, que es una tarea emocionante 🙂 .

Antes de continuar, les digo que no es recomendable compilar el kernel en la misma máquina que tiene las memorias defectuosas, por lo que sería bueno que los pasos siguientes se realizaran en otra máquina, y luego de que generemos el .deb con la imagen customizada del kernel y con el patch en cuestión, copiemos este .deb a la maquina con problemas, y lo ejecutemos allí.

El patch en cuestión se llama badram, y en Debian el paquete que lo contiene se llama kernel-patch-badram, por lo que hacemos

apt-get install kernel-patch-badram

Luego de instalar este paquete, debemos instalar los fuentes del kernel al cual le aplicaremos el patch, en mi caso uso el último disponible, el linux-sources-2.6.22, así que hacemos

apt-get install linux-source-2.6.22

Configuramos el kernel, para que trabaje en base a nuestro hardware, por lo que ya saben,

cd /usr/src
tar -xvfj linux-source-2.6.22.tar.bz2
cd linux-source-2.6.22
make xconfig

Elegimos las opciones que más se adecuen a nuestro hardware, entre las que estan el tipo de arquitectura y el procesador. No voy a entrar en detalle sobre esto, porque sería demasiado extenso, el tío google sabe un montón de esto, así que cualquier consulta sobre como elegir las opciones de configuración del kernel, estarán más que contestadas 😉 .

Después de que seleccionamos las opciones de nuestro kernel, pasamos a compilarlo, para lo que vamos a utilizar la herramienta make-kpkg, la que compilará y empaquetará el kernel nuevo (generará un .deb con el kernel que compilamos).

apt-get install kernel-package

luego ejecutamos

cd /usr/src/linux-source-2.6.22
make-kpkg –append-to-version=custom`date +%d%m%y` –initrd –added-patches badram kernel_image

NOTA: el `date +%d%m%y` es para que ponga la fecha de hoy, es a libre elección esto, yo prefiero ponerle fecha para después acordarme cuando lo compile.

Bueno, esperamos a que termine de compilar y empaquetar y listo, ya tenemos en /usr/src el paquete con nuestro kernel compilado, emparchado y empaquetado, en mi caso el .deb se llama linux-image-2.6.22.151007_2.6.22.151007-1.0.Custom_i386.deb.

Copiamos este .deb a la maquina con problemas, y lo instalamos simplemente haciendo

dpkg -i linux-image-2.6.22.151007_2.6.22.151007-10.00.Custom_i386.deb

Después editamos el archivo /boot/grub/menu.lst y a la línea del kernel nuevo le agreamos lo que nos genero el memtest86+, o sea, badram=0x01c751f4,0xfffffffc. En definitiva, la sección del kernel nuevo nos queda de la siguiente manera:

title Debian GNU/Linux, kernel 2.6.22.151007
root (hd0,4)
kernel /boot/vmlinuz-2.6.22.151007 root=/dev/hda5
ro badram=0x01c751f4,0xfffffffc
initrd /boot/initrd.img-2.6.22.151007
savedefaultListo, reiniciamos y elegimos el nuevo kernel, y ya estaremos usando solo la memoria sana 🙂 , para chequear que realmente haya tomado el parámetro de badram, hacemos un dmesg |less y nos debería aparecer algo como
Kernel command line: root=/dev/hda5 ro
badram=0x01c751f4,0xfffffffc
PAGE_OFFSET=0xc0000000
BadRAM option is =0x01c751f4,0xfffffffc
–> marking 0x01c751f4, 0xfffffffc [2]
0000000000001c75 =0000000000001c7

Si es así, felicitaciones!!!, reciclaste una memoria 🙂 .
Bueno espero que les sirva, y como siempre, se aceptan críticas, comentarios y mejoras.