Archive for the ‘debian’ Category

Problema con touchscreen de Openmoko Freerunner bajo Debian

Friday, April 23rd, 2010

He tenido la oportunidad de jugar un poco con un Openmoko (prestado), el cual tiene instalado Debian Sid; el caso es que al actualizarlo el touchscreen dejó de funcionar correctamente.

Lo curioso es que el calibrador funcionaba como se debe:

apt-get install libts-bin
TSLIB_CALIBFILE=/etc/pointercal TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CONSOLEDEVICE=none ts_calibrate

Probando un parche propuesto al archivo de configuración /etc/X11/xorg.conf en el bug 517307 de Debian, funcionó correctamente.

-	Option		"Device"		"/dev/input/event1"
+	Option		"TslibDevice"		"/dev/input/event1"

La recomendación es siempre hacer un backup de la memoria antes de actualizar para evitar dolores de cabeza :D

Activando soporte Oracle Instant Client + PHP5 en Debian Linux

Friday, November 27th, 2009

Para conectarse a una base de datos Oracle con PHP 5, se puede hacer a través del "Oracle Instant Client" y el modulo oci8 de pear.

Primero se debe descargar los paquetes "Basic" y "SDK" desde http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. En mi caso, los archivos fueron

  • instantclient-basic-linux32-10.2.0.3-20061115.zip
  • instantclient-sdk-linux32-10.2.0.3-20061115.zip

Creamos directorios y descomprimimos

# mkdir -p /opt/oracle/instantclient
# cd /opt/oracle/instantclient
# unzip instantclient-basic-linux32-10.2.0.3-20061115.zip
# unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip

Agregamos las librerías de oracle a las librerías del sistema

# echo /opt/oracle/instantclient >> /etc/ld.so.conf
# ldconfig

Creamos los vínculos simbólicos en caso de que el comando anterior no lo haya hecho:

# cd instantclient_10_2
# ln -s libclntsh.so.10.1 libclntsh.so
# ln -s libocci.so.10.1 libocci.so

Instalamos paquetes necesarios para la configuración del módulo oci8, entre ellos Pear

# apt-get install php-pear php5-dev build-essential

En teoría el comando pecl install oci8 debería de funcionar, pero aparentemente no puede trabajar con las librerías de Oracle Instanclient, así que procedemos a ejecutar los pasos manualmente

# mkdir -p /usr/local/src
# cd /usr/local/src
# pecl download oci8
# tar xfz oci8-1.3.5.tgz
# cd oci8-1.3.5
# phpize
# ./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient/instantclient_10_2
# make
# make install

El nombre del archivo oci8-1.3.5.tgz cambiará dependiendo de nuevas versiones

Luego activamos el módulo oci8 en el archivo php.ini (/etc/php5/apache2/php.ini and /etc/php5/cli/php.ini), con la siguiente línea:

extension=oci8.so

Este paso tarde o temprano tendrá que ejecutarse, asi que mejor de una vez configuramos el archivo  tnsnames.ora

#  mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin

Editamos el tnsnames.ora de acuerdo a nuestras necesidades.

# vi /opt/oracle/instantclient/instantclient_10_2/network/admin/tnsnames.ora

Ahora se procede a reiniciar Apache y listo :) , podemos auxiliarnos de phpinfo() para comprobar que el módulo oci8 está cargado.

Detalle de la instalación de snmpd en Debian

Saturday, November 14th, 2009

La instalación y configuración del servicio de snmp es de lo más sencillo, pero en mi caso personal se complicó más de la cuenta en un servidor Debian.

El caso era que no funcionaba snmpwalk desde ningún otro host que no fuera el propio servidor, para lo cual revisé y modifiqué numerosas veces /etc/snmp/snmpd.conf , además de hacer múltiples pruebas para ver si había problemas con el tráfico UDP.

La solución vino del lugar más inesperado, en específico del archivo /etc/default/snmpd el cual contiene la siguiente línea:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

Ese 127.0.0.1 hace que el servicio solamente funcione en localhost , ignorando cualquier directiva agentaddress que pudiera estar en /etc/snmp/snmpd.conf .

Como se puede sospechar, la solución es un

# sed -i -e 's/127.0.0.1//g' /etc/default/snmpd

Lo que me llama la atención es la posible intención de la persona que mantiene este paquete,  al hacer un cambio de este tipo sin ninguna notificación al momento de instalar snmpd.

Será que no estoy acostumbrado al modo Debian de hacer las cosas?

apt : Recommends

Wednesday, April 29th, 2009

En Debian GNU/Linux, cuando se desea instalar un paquete, por ejemplo Gnome,  agrega a la lista de paquetes a instalar un sinfin de programas que no tienen ni la mas mínima relación o que se desconoce porque razón lo desea instalar.

En el caso de hacer un apt-get install gnome , software como rhythmbox,  rpm, wodim, wpasupplicant, sane-utils, p7zip, liferea entre muchos muchos otros que NO SON NECESARIOS para utilizar Gnome  se ven instalados.

La verdad que tener que instalar todo ese software, porque alguien pensó que era una buena idea™ incluirlo es realmente muy molesto.

La instalación del sinfin de software se debe a los Recommends , que según la documentación de Debian son paquetes que deberían de ser instalados siempre a menos que sea una instalación excepcional.

Pero existe una "solución" a este inconveniente, tal como la mencionó un tal rmayorga.

# apt-config dump |  grep Reco |  sed 's/1/0/' > /etc/apt/apt.conf.d/02user

lo que deja una línea similar a APT::Install-Recommends "0"; en el archivo /etc/apt/apt.conf.d/02user .

La diferencia es notoria, con el apt-get install gnome :

Antes:

0 upgraded, 842 newly installed, 0 to remove and 0 not upgraded.
Need to get 592MB of archives.
After this operation, 1588MB of additional disk space will be used.

Después:

0 upgraded, 494 newly installed, 0 to remove and 0 not upgraded.
Need to get 366MB of archives.
After this operation, 952MB of additional disk space will be used.

Tip en la línea de comandos de Debian

Sunday, February 22nd, 2009

En la mayoría de las distribuciones GNU/Linux lo siguiente nos funcionará en una línea de comandos:

$ ls [PgUp] me muestra $ ls bleh/

Si lo sigo presionando me saldrán los comandos que hayan comenzado con "ls", en conjunto con PgDn se podrá "avanzar" o "retroceder". Esto funciona para cualquier comando que hayamos digitado en la consola y es algo muy útil por ejemplo en comandos extensos que hayamos digitado alguna vez.

En Debian no viene activado por defecto, desconozco el porqué, pero es fácil de corregir.

En el archivo /etc/inputrc modificamos la siguientes líneas:

# alternate mappings for "page up" and "page down" to search the history
# "e[5~": history-search-backward
# "e[6~": history-search-forward

por

# alternate mappings for "page up" and "page down" to search the history
"e[5~": history-search-backward
"e[6~": history-search-forward

Fácil cierto?

Error en init scripts en Debian

Monday, February 2nd, 2009

Modifico una línea de una zona de un servidor BIND en un Debian etch, e intento "recargar" la configuración.

Lo siguiente sucede:

proxy:~# /etc/init.d/bind9 reload
rndc: connect failed: connection refused
proxy:~# /etc/init.d/bind9 stop
Stopping domain name service: namedReloading Squid configuration files.
done.
rndc: connect failed: connection refused
.
proxy:~# ps -fe | grep bind
bind     18649     1  0 Jan30 ?        00:00:00 /usr/sbin/named -u bind
root     32723 32134  0 11:51 pts/0    00:00:00 grep bind
proxy:~# /etc/init.d/bind9 stop
Stopping domain name service: namedrndc: connect failed: connection refused
.
proxy:~# ps -fe | grep bind
bind     18649     1  0 Jan30 ?        00:00:00 /usr/sbin/named -u bind
root     32731 32134  0 11:52 pts/0    00:00:00 grep bind
proxy:~# killall named
proxy:~# ps -fe | grep bind
root     32734 32134  0 11:52 pts/0    00:00:00 grep bind
proxy:~# /etc/init.d/bind9 start
Starting domain name service: namedReloading Squid configuration files.
done.
.
proxy:~#

Si, actualicé el caché de los repositorios.
Si, es 9.3.4-2etch4
Al revisar el init script en la sección de reload se ve el comando /usr/sbin/rndc reload >/dev/null , interesante ver que nunca investigan si existe el pid.
Y luego me dicen "¿Porqué no utilizas Debian?"

Leyendo Imágenes de nero .nrg en GNU/Linux

Wednesday, June 11th, 2008

Cuando nuestros colegas windozeros nos envían imágenes de CD es muy común que utilicen el software Nero para crearlas el cual genera archivos con extensión .nrg que no es legible directamente por el comando mount o los comandos para copia de CDs.

Pero existe un sencillo programa que permite convertir imágenes .nrg a .iso , la instalación es tan sencilla como:

Gentoo # emerge app-cdr/nrg2iso

Debian # apt-get install nrg2iso

Su utilización es igual de sencilla:

$ nrg2iso archivo.nrg archivo.iso

Y nos mostrará la siguiente salida:

|=========================>[100%]
archivo.iso written : 731492508 bytes

Listo!, podemos montar la imagen o quemarla.

Ndiswrapper en tarjeta wireless Atheros AR5007 sobre HP DV6770se

Sunday, April 6th, 2008

Sucede que la nueva laptop DV6770se tiene una tarjeta wireless Atheros AR5007, pero al ejecutar un lscpi tengo la siguiente salida:

# lspci | grep -i wireless
03:00.0 Ethernet controller: Atheros Communications, Inc. AR5006EG 802.11 b/g Wireless PCI Express Adapter (rev 01)

La salida del lspci la reconoce incorrectamente, aún ocupando un kernel 2.6.24 y pciutils 2.2.7-r1 . He leído que en otros sistemas la salida del lspci es la siguiente:

Atheros unknown device 001c (rev 01)

Esto me puso a dudar si efectivamente había un driver trabajando para madwifi, tropezando con el siguiente link : http://madwifi.org/ticket/1679 lo que en resumidas cuentas menciona que solo hay soporte para x86, por lo que para esos casos de emergencia me dispuse a configurar ndiswrapper:

Obteniendo Archivos

Se debe de obtener los archivos inf, los cuales he subido en http://vostorga.org/files/ar5007eg-64-0.2.tar.gz ,

$ wget -c http://vostorga.org/files/ar5007eg-64-0.2.tar.gz

Procedemos a descomprimirlos....

$ tar xvfz ar5007eg-64-0.2.tar.gz
ar5007eg-64-0.2/
ar5007eg-64-0.2/ar5007eg/
ar5007eg-64-0.2/ar5007eg/net5211.inf
ar5007eg-64-0.2/ar5007eg/net5211.cat
ar5007eg-64-0.2/ar5007eg/ar5211.sys
ar5007eg-64-0.2/README

Instalando ndiswrapper

Debemos de instalar el módulo de ndiswrapper para realizar esta operación, en mi caso basta con

# emerge net-wireless/ndiswrapper

En debian o similares bastará con

#apt-get install ndiswrapper

Hay que notar que para que lo anterior tenga éxito necesitamos las fuentes del kernel, por consecuencia cada vez que recompilemos el kernel deberemos de reinstalar el módulo.

Procedemos a instalar los drivers a través del comando

# ndiswrapper -i ar5007eg-64-0.2/ar5007eg/net5211.inf

La cual da una salida similar a:

installing net5211 ...
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
.........

Verificamos que se haya instalado correctamente

# ndiswrapper -l
net5211 : driver installed
device (168C:001C) present

Levantamos el módulo haciendo

#modprobe ndiswrapper

Verificando interfaz

Luego verificamos con los comandos que estamos acostumbrados con wireless

#iwconfig

wlan0 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


Visualización de utilización de ancho de banda con NTOP

Wednesday, January 30th, 2008

Muchas veces hemos querido conocer de una manera fácil y rápida la utilización de ancho de banda de cada usuario en la LAN de la oficina, la casa, redes públicas etc., con el propósito de detectar cuellos de botella en nuestro acceso compartido a Internet, a menudo causado por usuarios utilizando media docena de programas P2P...., para lo cual podemos disponer de una herramienta denominada ntop.

Ntop es una herramienta que nos muestra gráficamente la utilización del ancho de banda, al mismo estilo que el conocido comando top, el cual se accede a través de un navegador web.

Ntop tiene múltiples funciones y solo mencionaré algunas:

  • Muestra tráfico de acuerdo a los protocolos utilizados
  • Recopila información sobre el usuario de una IP (direcciones de correo utilizadas, utilización de ancho de banda por hora, identificación de sistema operativo, ...)
  • Soporta los protocolos IPv4/IPv6, IPX, AppleTalk, Netbios entre otros
  • Utilización de gráficos
  • Utilización de bases de datos RRD
  • Soporte para múltiples interfaces de red
  • Cuenta con más de 10 años de desarrollo

Su instalación es sencilla (obviamente en el proxy/router)

Debian: apt-get install ntop

Gentoo: emerge net-analizer/ntop

Ntop no tiene un archivo central de configuración, sino que sus opciones se especifican en tiempo de ejecución, regularmente la distribución donde lo utilicemos tiene una forma básica de configurar la interfaz/interfaces de red que se utilizarán, por ejemplo dpkg-reconfigure ntop en Debian, para obtener más info de las opciones podemos revisar el buen man ntop.

Y para verlo en acción, dejo 3 capturas de pantalla

thumb-ntop1.png

thumb-ntop2.png

thumb-ntop3.png

Utilizando túnel ssh para acceder a X

Friday, January 18th, 2008

Como administrador de servidores el 99% de las tareas puede ser hecha desde una consola, pero en ese 1% restante podemos necesitar de una interfaz gráfica. Para acceder al X de un servidor remoto podemos utilizar VNC, XDMCP, entre otros pero enfrentaremos un problema si solamente tenemos acceso a ese equipo a través del puerto de SSH (regularmente el 22), situación que me sucedió y explico como hacerle frente. El primer requisito es que el servidor al cual queremos acceder gráficamente tenga instalado x11vnc el cual no es más que un servidor VNC para X, instalarlo es tán fácil como:

Debian: apt-get install x11vnc

Gentoo: emerge x11-misc/x11vnc

Luego hacemos un tunel a la conexión vnc ejecutando: ssh -t -L 5901:localhost:5900 usuario@servidor

Ya logueados en el server ejecutamos: x11vnc

Por último ejecutamos en la máquina local un visor VNC, por ejemplo: vncviewer localhost:1

Listo! Ya tenemos acceso gráfico al servidor remoto, es de notar que al momento de ejecutar x11vnc este se ejecuta sin contraseña asi que hay que tomar las precauciones del caso; el propio x11vnc en su salida muestra como utilizar contraseñas.