En un artículo anterior expliqué cómo configurar el video Intel i915 con KMS en una HP Pavilion dm4. Esta vez explicaré cómo configurar el Touchpad Synaptics de esa misma laptop.

Leer el manual

Lo primero que debes hacer si deseas configurar correctamente el Touchpad es leer el manual (RTFM).
$ man synaptics

Yo configuré el touchpad a mi gusto, así que puedes probarlo y si no te gusta lo adaptas al tuyo. Sin embargo es una tarea de ensayo y error que no podrás completar a menos que conozcas todas las opciones que tienes disponibles.

Dependencias

Lo único que necesitamos es un Xorg bien configurado y los drivers synaptics. Para instalar los drivers ejecutamos:

En Debian:
# aptitude install xserver-xorg-input-synaptics


Entender cómo funciona el Touchpad

Básicamente no es un Touchpad, es un ClickPad y eso lo hace un poco especial. ¿Diferencias? Pues la superficie táctil también funciona como botón, que actua como uno u otro (left, right) dependiendo de la zona que se presione. No tenemos un área táctil con unos botones separados, tenemos con todo incluido, eso debe quedar muy claro.



Configuración

Xorg provee una serie de plantillas predeterminadas para la configuración de dispositivos. Estas plantillas se encuentran en /usr/share/X11/xorg.conf.d/ y basta con copiar a /etc/X11/xorg.conf.d/ la que necesitemos y comenzar a modificarla. Xorg se encargará de cargar estos valores luego de los valores predeterminados. Para nuestro caso usaremos la plantilla 50-synaptics.conf.

# mkdir /etc/X11/xorg.conf.d/
# cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/

Lo que haremos será modificar el InputClass para agregar los parámetros que deseamos configurar. En el manual de synaptics tenemos bien documentados cada una de las opciones con su descripción y posibles valores.

Mi configuración quedó así:
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "Protocol" "auto-dev"
Option "SHMConfig" "true"
# Edges
Option "LeftEdge" "1500"
Option "RightEdge" "5200"
Option "TopEdge" "1350"
Option "BottomEdge" "3500"
# Finger press
Option "FingerLow" "28"
Option "FingerHigh" "35"
Option "FingerPress" "70"
# Taps time
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "MaxDoubleTapTime" "180"
Option "SingleTapTimeout" "180"
Option "ClickTime" "100"
Option "FastTaps" "0"
# Emulate
Option "EmulateMidButtonTime" "75"
Option "EmulateTwoFingerMinZ" "70"
Option "EmulateTwoFingerMinW" "5"
# Scrolling
Option "VertScrollDelta" "100"
Option "HorizScrollDelta" "0"
Option "VertEdgeScroll" "1"
Option "HorizEdgeScroll" "0"
Option "CornerCoasting" "0"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
# Pointer speed
Option "MinSpeed" "0.5"
Option "MaxSpeed" "7.0"
Option "AccelFactor" "0.35"
Option "TrackstickSpeed" "0"
Option "EdgeMotionMinZ" "29"
Option "EdgeMotionMaxZ" "59"
Option "EdgeMotionMinSpeed" "1"
Option "EdgeMotionMaxSpeed" "40"
Option "EdgeMotionUseAlways" "0"
# Scrolling flags
Option "UpDownScrolling" "0"
Option "LeftRightScrolling" "0"
Option "UpDownScrollRepeat" "0"
Option "LeftRightScrollRepeat" "0"
Option "ScrollButtonRepeat" "100"
# Touchpad mouse on/off
Option "TouchpadOff" "0"
Option "GuestMouseOff" "0"
# Dragging
Option "LockedDrags" "0"
Option "LockedDragsTimeout" "5000"
# Corners
Option "RTCornerButton" "0"
Option "RBCornerButton" "2"
Option "LTCornerButton" "0"
Option "LBCornerButton" "1"
# Tap
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
# Click
Option "ClickFinger1" "1"
Option "ClickFinger2" "0"
Option "ClickFinger3" "0"
# Circular
Option "CircularScrolling" "0"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "0"
Option "CircularPad" "0"
# Palm
Option "PalmDetect" "1"
Option "PalmMinWidth" "7"
Option "PalmMinZ" "40"
Option "CoastingSpeed" "0"
# Grab
Option "GrabEventDevice" "1"
Option "TapAndDragGesture" "1"
# Area
Option "AreaLeftEdge" "0"
Option "AreaRightEdge" "0"
Option "AreaTopEdge" "0"
Option "AreaBottomEdge" "3500"
EndSection

Section "InputClass"
Identifier "Ignore mouse devs"
MatchDevicePath "/dev/input/mouse*"
Driver "synaptics"
Option "Ignore" "on"
EndSection

Actualización: Acá pueden ver la configuración actual que tengo en mi repo github

No explicaré en detalle cada una de las opciones (para eso está el manual de synaptics), solo explicaré las más relevantes o las "problemáticas". Lo primero es ignorar las pulsaciones en el área de los botones. Para eso definimos el rango de acción del dispositivo (límites):

# Edges
Option "LeftEdge" "1500"
Option "RightEdge" "5200"
Option "TopEdge" "1350"
Option "BottomEdge" "3500"

# Area
Option "AreaLeftEdge" "0"
Option "AreaRightEdge" "0"
Option "AreaTopEdge" "0"
Option "AreaBottomEdge" "3500"

Colocando el límite inferior (BottomEdge y AreaBottomEdge) en 3500 evitamos que el cursor se mueva al pasar sobre el área de botones. Estableciendo el límite derecho (RightEdge) a 5200 evitamos que el cursor se mueva en la columna derecha (para habilitar la zona de scrolling vertical). La imagen a continuación ilustra estos ajustes:



El dispositivo solo tiene un botón y a simple vista no encontré la forma de configurarlo para que funcione como ambos. Estuve compilando el driver synaptics con un patch para agregar el soporte de clickpads pero no he logrado generar el .ko, así que simplemente dejé su funcionamiento por defecto (left click) y configuré el click izquierdo con tap, el doble click con doble tap y el click derecho con tap de dos dedos.

Eso podemos verlo en:

# Tap
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"

El botón para activar/desactivar el clickpad tampoco pude hacerlo funcionar pero creo que es cuestión de seguir trasteando hasta lograr una solución. Además de eso, el resto de la configuración es el ajuste de valores para la sensibilidad, aceleración y velocidad del puntero, pero eso lo dejo como tarea para el lector.

Tarea para la casa

Una de las herramientas más importantes para lograr una efectiva configuración es synclient. Gracias a esta herramienta pude determinar las coordenadas que definen los límites de mi dispositivo (que en las imágenes de arriba están marcados con azul y rojo) y verificar los valores de configuración

Usando el siguiente comando podemos verificar la actividad del touchpad en vivo:
$ synclient -m 10

La salida debería ser algo como:
   time     x    y   z f  w  l r u d m     multi  gl gm gr gdx gdy
874.169 5392 4317 3 0 0 0 0 0 0 0 00000000
874.269 5392 4317 0 0 0 0 0 0 0 0 00000000
874.670 5392 4317 1 0 0 0 0 0 0 0 00000000
874.770 5392 4317 7 0 0 0 0 0 0 0 00000000
874.870 4143 1708 9 1 11 0 0 0 0 0 00000000
874.970 4225 1811 3 0 0 0 0 0 0 0 00000000
875.070 4225 1811 2 0 0 0 0 0 0 0 00000000

Donde:
  • x, y: definen las coordenadas de la pulsación
  • z: la presión aplicada
  • f: el número de dedos tocando la superficie
  • w: es una medida del ancho del dedo
  • l,r,m: el estado de los botones left, right y middle

Para más información:
$ man synclient

Espero que con esta guía puedas configurar tu ClickPad y usarlo decentemente. Me queda pendiente por investigar la función de deshabilitar el touchpad mientras se escribe, los botones left-right y el botón para activar. Cuando lo logré postearé nuevamente :)

Fuentes:
Es esta receta explicaré como configurar y activar el KMS (Kernel Mode Setting) con el driver Intel i915 en una HP Pavilion dm4 . Las instrucciones están hechas para Debian Wheezy (testing a la fecha) y requiere de un kernel >= 2.6.29.

Instalar dependencias

Suponiendo que tenemos Xorg instalado y corriendo (quizás funcionando con el driver vesa) procedemos instalar el driver intel y sus dependencias:
# aptitude install libgl1-mesa-glx libglu1-mesa xserver-xorg-video-intel mesa-utils

Activar el KMS

Luego vamos al archivo /etc/modprobe.d/i915-kms.conf y agregamos la línea:
options i915 modeset=1

Regeneramos la imagen del kernel con:
# update-initramfs -u

Editamos el archivo /etc/default/grub y modificamos esta línea:
GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.modeset=1 video=LVDS-1:e"

El parámetro i915.modeset=1 habilita el KMS al momento del booteo y para que la pantalla no se quede en negro luego de cargar el módulo, debemos agregar el parámetro video=LVDS-1:e.

Es importante no cargar ningún otro driver para framebuffer que no sea el de Intel y eliminar de los parámetros de booteo cualquier opción del tipo vga=xxx o video=xxx.

El parámetro video=LVDS-1:e tiene una razón de ser muy particular. El BIOS de esta máquina tiene un bug; cuando inicia, indica erróneamente que la tapa de la laptop está cerrada. El kernel, basándose en esa información, manda a apagar la pantalla y por eso todo se queda en negro, no es que se congela ni que deja de funcionar. Pueden corroborar esto cerrando y abriendo la tapa de la laptop cuando se apaga. Verán que el video vuelve mágicamente y que el equipo no se había detenido, seguía funcionando pero a ciegas.

Es bien conocido que el kernel no usa el BIOS para casi ninguna de sus tareas, sin embargo a partir del kernel 2.6.32 los desarrolladores decidieron "escuchar" al BIOS en este tipo de eventos, así que hasta que no se masifique el patch que corrige la situación debemos aplicar este correctivo.

Si desean más información pueden revisar el reporte y la resolución del bug en Launchpad o el reporte del error en fredesktop.org

Luego de ese paréntesis técnico continuamos con nuestra configuración. Reconfiguramos el grub para que se apliquen los cambios anteriores:
# update-grub

Configuración de Xorg

Lo siguiente es crear y personalizar el archivo de configuración de Xorg.

A partir de la versión 1.8, Xorg ya no necesita archivos de configuración. En lugar de eso intenta detectar y configurar todo el hardware (video y dispositivos de entrada) por si mismo. Sin embargo existen casos especiales que requieren algunos "ajustes". Este es uno de esos casos.

Procedemos entonces a detener el servidor X. Si tenemos un entorno de escritorio basta con detener el gestor de sesión (gdm, kdm, slim, xdm, etc), sino matamos las X.

Hecho esto pasamos a ejecutar:
# Xorg -configure

Eso debería generarnos un archivo xorg.conf.new que servirá como base. A ese archivo le editamos la sección "Device" para que nos quede algo como:
Section "Device"
Option "DRI" "True"
Option "Tiling" "True"
Option "XAANoOffscreenPixmaps" "True"
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Y agregamos al final del archivo la siguiente sección:
Section "Extensions"
Option "Composite" "enable"
EndSection

Observen que indicamos el driver de video y algunas opciones para mejorar el desempeño gráfico. Si conocen otras opciones (que apliquen para tarjetas Intel) también pueden agregarlas acá.

Con esto terminamos nuestra configuración del servidor X.

Reiniciar

Reiniciamos y ya deberíamos disfrutar de nuestro video usando KMS. Verán que la transición entre modos de video es casi instantánea y el parpadeo se redujo considerablemente. Además de que compiz y todas esas yerbas aromáticas se ven con una suavidad asombrosa.

Deshabilitar el KMS

Si desean deshabilitar el KMS basta con desactivar el modeset en la línea:
GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.modeset=0 video=LVDS-1:e"

Reconfiguramos el grub:
# update-grub

Y KMS desactivado.

Espero que esta receta les haya servido de ayuda. En un próximo post explicaré cómo configurar el Touchpad Synaptics.

Fuentes:

El envenenamiento de tablas ARP es sumamente sencillo desde Linux y básicamente lo que hacemos es que le decimos a nuestro computador que responda arbitrariamente a determinadas ARP broadcast enviadas por el switch/router con su dirección MAC, creando así una entrada falsa en las tablas ARP.

Lo que hablaremos en este articulo es como duplicar lo que logra la aplicación wifikill para Android pero bajo Linux.

Envenenamiento de talbas ARP desde Fedora Linux

Negación de servicio usando envenenamiento de tablas ARP.

En ocasiones desearíamos poder desconectar a alguien en particular de la red, bien sea por que se están consumiendo todo el ancho de banda con sus descargas, por que tienen puesta una emisora de radio de internet con música que no nos gusta desde hace cuatro días o simplemente por divertirnos un rato.

Antes de comenzar con los ejemplos, necesitamos instalar arpspoof que en Fedora es parte de dsniff. Anteriormente he hablado de como instalar aplicaciones en Fedora usando la interfaz gráfica, incluso hice un video tutorial pero como estaremos usando la linea de comandos, vamos a hacerlo en esta misma, abran una consola y ejecuten como root:

yum install dsniff -y

Desconectar a un host especifico.

Desconectar a ese roommate fastidioso es sumamente fácil, solo debemos conocer su IP dentro de la red local y ejecutar:

arpspoof -i wlan1 -t 192.168.168.1.3 192.168.1.1

En este ejemplo asumimos que la interfaz de red es wlan1, el IP del host a desconectar es 192.168.168.1.3 y el gateway de la red es 192.168.1.1


Desconectarlos a todos.

Si desconectar a un host en especifico te pareció sencillo, desconectarlos a todos es aun mas fácil. Veamos este ejemplo:

arpspoof -i wlan1 192.168.1.1

Al igual que en el ejemplo anterior asumimos que la interfaz de red es wlan1 y que el gateway es 192.168.1.1 pero omitimos el host por lo que arpspoof asume que son todos los hosts los que queremos bloquear.


NOTA: Este articulo debe ser visto como un tutorial con fines didácticos, no soy responsable por como UDs. Usan estas herramientas. Tengan en cuenta que en algunos lugares el interrumpir comunicaciones en redes publicas puede ser considerado ilegal.

Hace poco que Linus Torvalds anuncio el Kernel 3.0 y ya se esta haciendo merge para la versión 3.2. Muchos tienen la duda de que mejoras hay en estas nuevas versiones del Kernel pero la realidad es que pocas distribuciones de Linux usan las versiones mas recientes del Kernel, excepto por Fedora Linux que saldrá dentro de pocos días con la versión 3.1.X.

Fedora 16 (Verne) viene con el kernel 3.1

Fedora 16 contara con el Kernel 3.1, es decir, mejor soporte para las tarjetas de vídeo integradas de AMD/ATI, Intel y Nvidia, soporte para la arquitectura OpenRISC, el Nintendo Wii y NFC. Buenas noticias para aquellos que tomaron mi concejo y compraron netbooks con chipset AMD Zacate E-350 (como la Lenovo x120e) y usan Fedora 16 mientras que los usuarios de Ubuntu tendrán que esperar por lo menos cinco meses antes que Canonical decida liberar una actualización del Kernel.

La versión marcada como 'estable' Fedora 16 sera liberado el dia 8 de Noviembre del 2011, mientras tanto pueden descargarla en su fase 'Beta' desde: http://fedoraproject.org/en/get-prerelease

Alguna vez haz querido sacar a alguien de la red WFI donde estas? bien sea simplemente por jugar o el típico 'si no es para mi, tampoco para ti!' como cuando alguien consume todo el ancho de banda descargando necedades. Ahora no tienes que usar la laptop/computadora para esto.

La aplicación wifikill permite desconectar a quien desees de la red WIFI usando envenenamiento de tablas ARP

La aplicación WiFiKill para usuarios con root en su dispositivo Android busca en tu red por dispositivos conectados y luego te da las opciones de desconectar a alguien en particular o de desconectarlos a todos. Aquí les dejo unas capturas de pantalla desde mi HTC Evo 4G:

Wifikill nos permite elegir a quien afectar con este ataque al ARP tables

Wifikill nos permite elegir a quien afectar con este ataque a las tablas ARP.

Solo el iPhone sin acceso a internet, sigue conectado pero no logra comunicarse

Solo el iPhone sin acceso a internet, sigue conectado pero no logra comunicarse.

Dejando a todos sin acceso a internet, siguen conectados pero no logran comunicarse

Dejando a todos sin acceso a internet, siguen conectados pero no logran comunicarse.



Probé esta aplicación por sugerencia de Daniel Velazco en un Ale's House y funciono sin problemas... desde entonces me he divertido un par de veces en un café cercano a mi casa.

La aplicación podía ser descargada del Google Play Store también conocido como Android Market pero por lo que veo justo ahora que estoy a punto de publicar este articulo, esta ha sido excluida. El autor de la aplicación la tiene disponible para que la descarguen en formato APK desde su foro.

Recuerden que en algunos países es ilegal obstruir la libre comunicación y que el uso de WikiKill y su responsabilidad recae solo en ustedes (yo me lavo las manos).

un sistema que estoy haciendo sale el siguiente error... image:

Bueno, tratando de instalar el phpmyadmin para hacer unas pruebas para un sistema que estoy haciendo sale el siguiente error:

``` Not Found The requested URL /phpmyadmin/ was not found on this server ```
buscando información encontré en [http://sliceoflinux.com](http://sliceoflinux.com/2009/06/19/instalar-phpmyadmin-en-ubuntu-9-04-server-paso-a-paso/ "http://sliceoflinux.com/2009/06/19/instalar-phpmyadmin-en-ubuntu-9-04-server-paso-a-paso/")la solución al problemita y es el siguiente:
``` echo "Include /etc/phpmyadmin/apache.conf" | sudo tee -a /etc/apache2/apache2.conf ```
despues de hacer eso solo debemos reiniciar el apache con:
``` /etc/init.d/apache2 restart ```
Actualizamos la pagina y WIIIINNN... Ya tenemos el phpmyadmin funcionando...

De prototipos rápidos para aplicaciones serias

Tipos opcionales de Dart le permiten prototipo de forma rápida y luego revisar que el código sea más fácil de mantener.

Dondequiera que usted necesite un código estructurado

Usted puede utilizar el mismo código Dart en la mayoría de los navegadores web modernos (Chrome, Safari 5 +, Firefox 4 +) y en los servidores. Buscar el apoyo del navegador más breve.

Familiar pero nuevo

Código de dardo debe resultarle familiar si usted sabe un idioma o dos, y se puede utilizar la prueba del tiempo las características tales como las clases y el cierre. Nuevas características de Dart que sea más fácil para usted para desarrollar y mantener software. Dart se encuentra todavía en las primeras etapas de desarrollo, así que por favor, eche un vistazo y dinos lo que piensas.

Pagina principal del proyecto: http://www.dartlang.org/

Bueno, buscando información de como cambiar el background que trae por defecto el LightDM (btw, para saber que es el ligthDM clic aqui) el cual dure un rato buscando y comparando los métodos para cambiarlo decidí quedarme con el que sale en OMGubuntuel cual es el siguiente:

Abrimos consola y colocamos:

``` gksu gedit /etc/lightdm/unity-greeter.conf ```
Lo que vamos a editar esta después de la linea que dice:
``` [greeter] ```
Y "SOLO" debemos poner el nombre de la imagen que queremos que sea el fondo vean la imagen de abajo para que tengan una idea :D ![cambiar backgroud LightDM](http://cdn.omgubuntu.co.uk/wp-content/uploads/2011/09/Screenshot-at-2011-09-30-15-45-54-500x412.png "cambiar backgroud LightDM")

youtube-dl is a small command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.x (x being at least 5), and it is not platform specific. It should work in your Unix box, in Windows or in Mac OS X. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.[0]

Bueno, el problema al usarlo fue el siguiente:

``` ERROR: no fmt_url_map or conn information found in video info ```
googleando un poco me tope con esto \[1\] donde mucha gente indicaba que presentaba el mismo problema y revisando un poco me tope con este [comentario](https://github.com/rg3/youtube-dl/issues/108#issuecomment-1730675 "https://github.com/rg3/youtube-dl/issues/108#issuecomment-1730675")diciendo que hay una nueva version validando la que yo instale
``` youtube-dl --version ```
decia que tenia la version de fecha 2011.01.30 y por eso era el error solo me toco hacer en consola el update del paquete de la siguiente forma:
``` youtube-dl --update ```
y tengo la del 2011.09.30 ahora si puedo bajar los videos sin ningun problema... Btw, les comento que para bajar los videos de mejor calidad debe usar esto:
``` --max-quality=.mp4 ```
y luego la url del video Bueno, espero que les sea util!! \[0\] [https://github.com/rg3/youtube-dl](https://github.com/rg3/youtube-dl "https://github.com/rg3/youtube-dl")