Mostrando entradas con la etiqueta howtos_gnu/linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta howtos_gnu/linux. Mostrar todas las entradas

viernes, 24 de julio de 2015

Configurar las brightness keys en Kali Linux

Recientemente he tenido que cambiar de portátil, y esta vez (y por el momento) me he decidido por instalarle Kali Linux. La verdad es que me sorprendió ver que funcionaba *casi* todo recién instalda Kali, pero una de las cosas que no funcionaban eran las teclas de brillo o iluminación de pantalla (también conocidas como screen brightness keys o brightness buttons). Después de darle un par de vueltas, encontré dos formas fáciles de solucionarlo, la mía y una un poco mejor ;)

La primera forma que encontré de solucionarlo -la mía- fue modificar directamente los valores del gnome settings daemon power a través de un pequeño script. El script lo he colgado en mi github https://github.com/rubenhortas/gnome_brightness_keys y lo podéis utilizar libremente.

Para utilizarlo sólo hay que guardarlo en un directorio en el que tenga permisos de ejecución, y asignar los comandos "brightnessControl up" (para aumentar el brillo) y "brightnessControl down" (para bajar el brillo) a las teclas a través del propio menú de gnome (Aplicaciones > Herramientas del sistema > Preferencias > Configuración del sistema > Teclado > Atajos > Combinación personal).

Haciéndolo de esta forma las teclas van a funcionar, pero no nos va a salir el indicador de brillo en la pantalla cada vez que cambiemos el brillo.

La solución que encontré para que las teclas funcionen y muestre el indicador de cambio de brillo en pantalla ha sido instalar xdotool y asignar loscomandos "xdotool key XF86MonBrightnessUp" (para subir el brillo) y "xdotool key XF86MonBrightnessDown" (para bajar el brillo) a las teclas.

Con cualquiera de estas dos soluciones tendremos las teclas de brillo funcionando.

Enjoy! ;)

martes, 22 de julio de 2014

configurar tp-link TL-WN725N v2 con wpa2 y dhcp en una raspberry pi con raspbian


Raspberry Pi es un ordenador de tamaño reducido (aproximadamente del tamaño de una tarjeta de crédito). Su consumo de 2.5W (modelo A) o 3.5W (modelo B) y sus características hacen de él un aparato muy versátil.


Cuando compré la raspberry, también compré el adaptador nano usb wifi TP-LINK TL-WN725N, con el objetivo de poder conectar la raspberry a una red inalámbrica cuando fuese necesario.

Actualmente, hay dos versiones de este adaptador: La v1 y la v2. Mientras que la v1 funciona directamente, para conseguir que funcione la v2 hay que instalar el driver. Para conectarnos con la raspberry pi a una red con DHCP protegida con WPA2-PSK utizando el adaptador nano usb wifi TP-LINK TL-WN725N bajo raspbian hay que realizar los siguientes pasos:

  1. Descargar e instalar el driver
    1. Averiguar la versión del kernel de raspbian

      Para concer la versión del kernel que está utilizando raspbian ejecutamos el comando:

      $ uname -r

    2. Descargar el driver

      La lista más completa de drivers la he encontrado en el blog de mendrugox, en la entrada: TP-LINK TL-WN725N v2 working on Raspberry Pi (Raspbian), donde se encuentran una lista con el driver para cada kernel y las instrucciones de instalación.

    3. Descomprimir el archivo

      Las últimas versiones del driver continen un fichero de módulo de kernel linux (.ko) y un fichero de firmware (.bin).

    4. Instalar el fichero de módulo de kernel linux

      # mv fichero.ko /lib/modules/version_del_kernel/kernel/drivers/net/wireless

    5. Instalar el fichero de firmware

      # mv fichero.bin /lib/firmware/rtlwifi/

    6. Añadir el módulo al kernel

      # depmod -a # modprobe 8188eu

      *Si al instalar el driver aparece el mensaje "Exec format error" es que la versión del driver no es la correcta para el kernel.

    7. Configurar la carga automática del módulo

      Editar el fichero /etc/modules (como root) y añadir la línea: 8188eu

    8. Reiniciar la raspberry

      # sudo reboot

  2. Configurar la red wifi
    1. Añadir la configuración al fichero /etc/network/interfaces

      Editar el fichero /etc/network/interfaces (como root) y añadir las siguientes líneas:

      allow-hotplug wlan0
      iface wlan0 inet manual
      wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
      iface default inet dhcp

      Consultar la información sobre la red

      # iwlist scan

      Este punto es muy importante. Con este comando se podemos consultar toda la información sobre una red wifi al alcance, por si tenemos alguna duda. Los puntos más importantes son los que nos ofrecen información sobre el tipo de cifrado utilizado:

      Group Cipher
      Pairwise Ciphers
      Authentication Suites

    2. Generar la clave WPA-PSK

      Vamos a generar una clave cifrada, para no dejar la clave de la red en plano en el fichero de configuración.

      # wpa_passphrase essid passphrase

      Anotamos la línea: psk=...

    3. Configurar wpa_supplicant

      Editar el fichero de configuración /etc/wpa_supplicant/wpa_supplicant.conf (O el que hayamos indicado en /etc/networking/interfaces) y añadir las siguientes líneas:

      network={
      ssid= nuestro_essid
      scan_ssid=1
      psk=clave_wpa_psk_generada_antes
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      }

      *En este apartado es dónde cobran importancia los datos sobre el cifrado de la red que hemos apuntado antes. Las configuraciones varían dependiendo del tipo de cifrado utilizado. Se puede encontrar más información en el man de wpa_supplicant

    4. Levantar la interfaz de red

      # ifup interfaz_de_red

Notas:

El driver USB utiliza memoria del kernel, y cuando el tráfico es muy alto, esta memoria se agota y causa cuelgues. Para solucionarlo hay dos alternativas:

  1. Adelantar la solicitud de memoria de página

    Para esto hay que editar el fichero /etc/sysctl.conf y modificar el valor de la línea

    vm.min_free_kbytes = 8192

    para dejarla:

    vm.min_free_kbytes = 16384

  2. Limitar el ancho de banda

    Esta opción es la menos apetecible. Pero cuando no hay otra alternativa... Podemos limitar cómodamente el ancho de banda de una tarjeta de red podemos utilizar wondershaper.

    # wondershaper wlan0 kbps_bajada kbps_subida

Enjoy!

Fuentes

sábado, 12 de julio de 2014

monitor dual en xfce4

En ocasiones, a algunos nos resulta útil y cómodo conectar un monitor externo a nuestro portátil. Para otros es la configuración habitual.

Los que utilizamos XFCE4 como entorno de escritorio, nos encontramos con un problema al conectar un monitor externo a nuestro portátil: Para XFCE4 el monitor principal siempre es el que se encuentra a la izquierda. Lo cual puede llegar a ser incómodo si queremos que nuestro monitor principal sea el de la derecha, como es mi caso.

Cuando conecto un monitor externo al portátil, utilizo la pantalla del portátil como monitor principal y el externo como secundario, para lo que surja. Mi idea es: Poder trabajar cómodamente en mi portátil, y, aprovechando que el monitor externo es más grande, poder utilizarlo para colocar en él el navegador, pdfs, vídeos...

Actualmente, mi monitor externo se encuentra situado a la izquierda de mi portátil. El problema es que, al tomar XFCE4 el monitor izquierdo como el principal, tenía que atravesar con el ratón los dos monitores para acceder a los paneles.

Una solución sería configurar el monitor externo como si se encontrase situado a la derecha del portátil. Pero es antiintiutivo, y he de decir, que para mi, demasiado incómodo. La idea de mover las aplicaciones y el ratón hacia la derecha para que aparezcan en el monitor de la izquierda, es algo que no me gusta. Prefiero mover las cosas que quiero visualizar en el monitor de la izquierda hacia la izquierda. Lógico, no? Para conseguir esto, basta con configurar un par de cosas, xrandr y los paneles de xfce:

  • xrandr
    xrandr --output VGA1 --auto --left-of LVDS1 *Siendo LVDS1 el monitor del portátil y VGA1 el monitor externo. *Este comando se pude guardar en un script para ejecutarlo cuando convenga o al inicio, si es la configuración habitual
  • Los paneles de XFCE y elegir la opción
    Ir a Menú>Configuración>Panel y elegir la opción: "Salida: LVDS1"

Enjoy!

domingo, 16 de febrero de 2014

compartiendo archivos en red con NFSv4 en debian

NFS (Network File System) es un protocolo utilizado para compartir archivos en red. Posibilita que sistemas distintos, conectados a la misma red, puedan acceder a ficheros remotos como si fuesen locales. Este protocolo está incluido por defecto en los sistemas operativos UNIX y en la mayoría de distribuciones GNU/Linux.

NFS es un protocolo cliente-servidor. El servidor comparte los recursos y el cliente (o clientes) puede acceder a los recursos. El acceso a los recursos es totalmente transparente para el cliente y todas las operaciones son síncronas. Es decir, una operación sólo retorna cuando el servidor ha completado todo el trabajo asociado.

La versión 4 de NFS (NFSv4) fue publicada en abril de 2003 y *no* es compatible con las versiones anteriores.

El uso de NFS, presenta una serie de ventajas e inconvenientes que tendremos que tener presentes antes de decidirnos a implementar esta tecnología:

Ventajas

  • Fácil de instalar y configurar
    Respecto a la instalación: Todos los archivos necesarios deberían estar disponibles en los repositorios de la distribución, llegando a estar instalado por defecto en muchas de ellas.
    Respecto a la configuración: En el lado del servidor, editando un único fichero se definen los recursos a compartir, las direcciones IP que pueden acceder a dicho recurso y los permisos que los clientes tendrán sobre éste. En la parte del cliente (si queremos que los recursos remotos se monten automáticamente, por ejemplo durante el arranque) sólo tendremos que editar el fichero /etc/fstab.
  • Más rápido que SSH
    NFS llega a ser un 30% más rápido que SSH
    *Aunque en las pruebas que yo he realizado se aproximaba más al 25% (sin optimizaciones).
    *Después de configurar correctamente los usuarios, en mis pruebas, sí que resulta un 30% más rápido. Además consume la mitad de CPU que SSH.
  • Fácil de utlizar
    Si nos encontramos en un escenario donde la persona que utiliza la máquina cliente es un usuario normal, al poder montar el recurso compartido como si fuese un recurso local más, su acceso será trivial y el usuario no tendrá la necesidad de complicarse aprendiendo a utilizar tecnologías como SSH, FTP, rsync o similares.

Desventajas

  • NFSv4 no es compatible con las versiones anteriores
    En la realidad nos encontramos con que, en algunos casos, se siguen utilizando NFSv2 y NFSv3.
  • Transmisión en plano
    NFS no va cifrado. En caso de encontrarnos en una red no fiable, o sobre la que pueda llegar a ser objetivo de ataques, sería más conveniente utilizar SSH, que al ir cifrado añade una capa de seguridad a las transmisiones.
  • Restricciones de acceso en base a la IP El servidor restringe el acceso a los recursos en base a la dirección IP de los clientes, pero estas direcciones pueden ser falsificadas con relativa facilidad. Una buena alternativa a esto sería utilizar SSH con claves RSA y/o un firewall bloqueando las falsificaciones de IP (ip spoofing).
  • El acceso de root
    Si el servidor NFS está mal configurado, un cliente que utilice el usuario root para acceder al recurso podrá acceder a todos los archivos, ya que el servidor confía en el nombre de usuario que le da el cliente.

Configurando NFSv4

El servidor

  1. Instalar nfs-kernel-server
    $ sudo aptitude install nfs-kernel-server *NFS se basa en RPC. Si no disponemos de un gestor de paquetes o éste no instala RPC, deberemos instalarlo manualmente.
  2. Editar los ficheros /etc/default/nfs-kernel-server y /etc/default/nfs-common
    Editar estos ficheros sólo debería ser necesario en caso de disponer (en el servidor) de un firewall basado en puertos (port-based firewall), del protocolo de autenticación Kerberos o de querer securizar NFS. Estos ficheros son auto explicativos, por lo que no voy a detallar su configuración. En https://wiki.debian.org/SecuringNFS podremos consultar más información sobre cómo securizar el servidor NFS.
  3. Configurar el fichero /etc/exports
    En este fichero se configurarán los directorios compartidos (exportados). La sintaxis es simple:
    /foo/bar maquina1(opcion1,opcion2,...) maquina2(...) ... Como podermos ver en los ejemplos de /etc/exports: /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) Para conocer en detalle las opciones disponibles, y su funcionamiento, podemos consultar el man, donde también podremos encontrar opciones para mejorar el rendimiento. $ man exports
  4. Reiniciar el servidor
    Una vez que los cambios están hehos, deberemos aplicarlos, bien reiniciando el servidor:
    $ sudo /etc/init.d/nfs-kernel-server start O bien, mefiante el comando exportfs:
    $ sudo exportfs -r

El cliente

  1. Instalar el paquete nfs-common $ sudo aptitude install nfs-common
  2. Montar el recurso remoto
    Podemos montar el recurso remoto manualmente, mediante el comando mount: $ sudo mount -t nfs servidor:/ /foo/bar * A mount le podremos pasar todas las opciones que consideremos oportunas.

    O, también, podremos añadir el recurso remoto en el fichero /etc/fstab para montarlo más cómodamente o durante el arranque: servidor:/ /foo/bar/ nfs opciones 0 0 * servidor: El nombre del servidor (si lo tenemos añadido en hosts), la URI o la dirección IP del servidor.
    * /foo/bar: El punto de montaje local.
    * opciones: Opciones de montaje.

Enjoy!

lunes, 10 de febrero de 2014

reparando errores del disco duro (gnu/linux)


¿Quién no ha sufrido algún error de disco duro alguna vez? Muchos optan por rendirse ante esta situación, aunque, en realidad, en muchos casos la información puede llegar a recuperarse totalmente, o podemos llegar a ganar algo de tiempo extra de utilización para ese disco. ¿Y quien no quiso en esa situación más tiempo para poder realizar una copia de seguridad o para poder seguir utilizando el equipo mientras no tiene otro disco?


Cuando hablamos de erroes en discos duros, lo primero que tenemos que hacer es distinguir entre errores lógicos y físicos. Los errores lógicos son los producidos a nivel de software (un superbloque corrupto, una partición eliminada, etc), mientras que los errores físicos son aquellos que se producen a nivel de hardware, daños directos en el disco (sectores, platos o mecanismos dañados).

Errores lógicos

Los errores lógicos suelen ser los más fácilmente recuperables, mientras no se haya formateado la partición. En este último caso ya tendríamos que utilizar herramientas específicas de recuperación de datos y ver qué información se puede salvar.
Dentro de los errores más comunes que nos encontramos en este apartado se encuentran tablas FAT o superbloques corruptos, particiones eliminadas, o sectores de arranque dañados o eliminados. Para reparar este tipo de errores mi herramienta preferida es testdisk. Testdisk es capaz de solucionar todos estos problemas (y algunos más) en un tiempo espectacularmente breve y, todo ello, siendo multiplataforma. Incluso dando soporte a sistemas RAID. En alguna ocasión, para estas tareas, también he utilizado gparted (que además dispone de una distribución en modo live). Y, aunque ha funcionado correctamente, he de confesar que me sentí un poco como Indiana Jones cuando cambiaba la estatuilla de oro por un saco de arena ;)

Errores físicos

Dentro de los errores físicos, principalmente nos podemos encontrar dos escenarios: Un disco duro con errores graves o un disco duro con algunos sectores dañados.

Si nos encontramos en el primer caso (un disco duro con el motor quemado o con platos rallados), lo único que podríamos hacer es sustituir estas piezas. Para ello habría que recurrir a empresas especializadas y sería sustancialmente caro. Por lo que deberíamos evaluar si el coste compensa la recuperación de la información perdida.

Cuando nos encontramos en el segundo caso (un disco con sectores dañados), es obvio que el disco empieza a fallar, lo más probable es que el fallo total sea sólo cuestión de tiempo. Lo primero que deberemos hacer es una copia de seguridad (o backup). Lo segundo, intentar reparar los errores.

Para reparar este tipo de errores yo utilizo e2fsck en combinación con badblocks. Badblocks (incluido en el proyecto e2fsprogs) genera una lista de los sectores dañados de un disco. Su principal ventaja es que esta lista puede ser leída por otras herramientas y que puede trabajar conjuntamente con e2fsck. Utilizando e2fsck conjuntamente con badblocks mediante el comando: # e2fsck -c /foo/bar/ podremos localizar y aislar los sectores defectuosos del disco, añadiéndolos automáticamente al inodo bad block para que no puedan ser utilizados por ningún fichero. Con esto habremos ganado algo de tiempo y podremos seguir utilizando el disco, sin preocuparnos por la corrupción de datos hasta su próximo fallo o su fallo total.

Lo ideal es prevenir este tipo de fallos, y para ello es recomendable realizar tests periódicamente con smartctl y/o badblocks.
Smartctl (incluído en el paquete smartmontools) controla y monitoriza la información S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology), una tecnología incluida en la mayoría de los discos duros. En mi opinión, es recomendable complementar estos test con badblocks, ya que más de una vez S.M.A.R.T. me ha devuleto un estado correcto para un disco duro dañado.

Aunque los test realizados por smartctl, se pueden realizar "en caliente" y sobre particiones montadas, los tests basados en badblocks es recomendable realizarlos sobre particiones desmontadas. Aunque dependiendo del test y del caso en particular se podrían realizar sobre particiones montadas en modo sólo lectura ("read only" o "ro").

*La duración de estos test va a depender de diversos factores. Smartctl dispone de test rápidos y tests largos, mientras que la duración de los test realizados por badblocks va a depender de la cantidad de datos almaceados en el disco.

Happy recovering! ;)

domingo, 15 de diciembre de 2013

ver la televisión en ordenadores viejos con gnu/linux (SIN FLASH)

A día de hoy, es normal que las televisiones emitan su programación online. El problema viene cuando nuestro ordenador es viejo y/o utilizamos como sistema operativo GNU/Linux. Por una parte, si el ordenador es viejo, es poco potente y los requisitos que impone Adobe no permiten instalar Flash Player en el equipo*. Por otra parte, están las trabas que Adobe nos pone a los usuarios de GNU/Linux.

* Hay algunos usuarios que optan por instalar versiones antiguas de Flash Player. Esto supone un gran fallo de seguridad. Puesto que son versiones obsoletas, con numerosas vulnerabilides reportadas y, en muchos casos, explotadas con éxito.

En mi caso, el equipo que utilizo como sobremesa, es muy viejo. Se trata de un Duron a 1.3Ghz con Debian GNU/Linux como sistema operativo, por lo que ya no podría instalar Flash Player. Aunque tengo el sistema operativo [muy] optimizado, probé algunas alternativas (gnash, TVenLinux...) y no conseguí, con ninguna, unos resultados satisfactorios.

Después de analizar el problema, he probado a saltarme los "intermediarios" y he conseguido el resultado esperado, poder ver la televisión online desde mi viejo equipo.

El problema

El problema es el siguiente: Para ver una televisión online se necesitan bastantes "intermediarios", un plugin de flash que estará dentro de un javascript, que estará dentro de una página web, que estará dentro de un navegador... Demasiada CPU requerida. Un equipo con una potencia limitada es, simplemente, incapaz.

La solución

mplayer (en mi caso sin interfaz) reproduciendo el streaming de vídeo directamente.
mplayer es muy ligero, y es capaz de reproducir emisiones realizadas a través del protocolo RTMP. RTMP es un protocolo diseñado por Macromedia (que ahora pertenece a Adobe) para transmitir vídeo, audio y datos a través de internet. Así que, básicamente, con mplayer podremos reproducir cualquier contenido que se pueda visualizar con Flash Player (sí, incluso vídeos de youtube).

Conseguir la dirección del streaming mediante RTMP es un proceso trivial utilizando algún sniffer como Wireshark o tcpdump. Las complicaciones pueden aparecer después, según el tipo de seguridad que implemente la web (ID, tokens...). En este último caso, se podría utilizar rtmpdump para capturar el streaming a un fichero, y, luego, reproducir éste con mplayer.

Una vez obtenida la dirección, sólo tendremos que pasársela a mplayer como argumento.

Para agilizar el proceso he creado un pequeño script en python. Como esto es simplemente una prueba, sólo he añadido algunos de los principales canales de televisión online, que no presentaban mayor complicación en lo referente a la obtención de la URL del RTMP. He subido el script a mi cuenta en github, por si queréis probarlo, modificarlo, y/o añadirle algo: https://github.com/rubenhortas/pytv.

Ventajas

Ver de esta forma la televisión online, presenta varias ventajas, entre ellas:

  • Tendremos televisión en nuestro viejo equipo >;)
  • No hay que utilizar Flash Player (gracias por tu soporte para gnu/linux, Adobe)
  • Menor consumo de CPU.
    Aún en equipos que dispongan de la suficiente potencia, la reducción de uso de CPU es considerablemente notable.
  • Emisión ininterrumpida (sin cortes).
    Es decir, que aunque no haya emisiones disponibles vía web, por lo que he podido comprobar, para nosotros sí estará disponible.

Así que, si eres de los que, como a mi, nos gusta tener ruido de fondo mientras realizamos alguna tarea que no requiera mayor anteción, o simplemente te gustaría ver alguno de tus programas favoritos en tu viejo equipo...

Enjoy!

domingo, 1 de diciembre de 2013

configurar la isight y el micrófono de un macbook en debian



La verdad es que yo no era de los que ponían el trozo de cinta tapando la cámara. Como no la necesitaba, directamente no le instalaba el driver. Y el micrófono, siempre en mute. Pero por causalidades de la vida, he tenido que configurar las dos cosas. Así que, aquí dejo un howto rapidito ;)




iSight

Para configurar la iSight, después de leerme unos cuantos post, he llegado a este: http://askubuntu.com/questions/100527/how-to-fix-webcam-on-macbook-pro-5-5, que funciona perfectamente. Y por eso he decidido copiarlo, reproducirlo, ampliarlo, traducirlo, adaptarlo y referenciarlo aquí ;)

1) Encontrar el driver para iSight de Mac OS X

  • Si tenemos OS X instalado
    Con la partición de OS X montada (en este ejemplo en /mnt/osx), copiarlo a algún directorio del /home (por ejemplo) donde queramos trabajar
    $ sudo /mnt/macosx/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport /home/rubenhortas/descargas/isight
  • Si no tenemos OS X instalado
    Averiguar de qué modelo de macbook se trata:
    $ sudo dmidecode | grep -i "product name"
    Una búsqueda rápida en google del tipo "isight driver macbook " nos devolverá unos cuantos resultados. Yo he usado este driver en un macbook 4,1: dl.getdropbox.com/u/332246/AppleUSBVideoSupport . Aunque en principio es para un macbook 5,5, en el 4,1 funciona perfectamente.

2) Instalar isight-firmware-tools
Este paquete contiene herramientas para extraer el firmware del driver de la iSight, instalar y configurar todo lo necesario para configurar el firmware cuando sea necesario.
$ sudo aptitude install isight-firmware-tools

2) Copiar el driver a /lib/firmware
$ sudo cp /home/rubenhortas/descargas/isight/AppleUSBVideoSupport /lib/firmware/

3) Instalar el firmware:
$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport

4) Añadir el módulo a acpi-support
$ sudo vim /etc/default/acpi-support
Buscar "MODULES" y transforarlo en: MODULES="isight_usb"
*En mi caso no estaba esa sección, así que la añadí al final.

5) Averiguar el modelo de la iSight
$ lsusb | grep -Po '(?<=:)(\d+)(?=.*iSight)'
Esto nos devolverá el ID de la iSight. Hay que recordar/apuntar el número. En mi caso es la 8300.

6) Añadir las reglas udev
$ sudo vim /etc/udev/rules.d/isight.rules
Añadir:
ACTION=="add", SYSFS{idVendor}=="05ac", SYSFS{idProduct}=="8300", RUN+="/usr/lib/udev/ift-load --firmware /lib/firmware/isight.fw"
*Reemplazar "8300" por el ID de la iSight que corresponda.

7) Apagar

8) Encender y reiniciar

9) Probar
Ya se puede probar la cámara con skype, cheese, ...

Micrófono (con alsa)

Recuerdo que hace años, cuando instalé debian gnu/linux en esta máquina, los canales estaban desactivados ("muted"), por defecto. La verdad es que no sé si a día de hoy sigue siendo el caso. Pero, por si caso, explico los canales que hay que activar para tener el micrófono funcionando.

1) Ejecutar alsamixer
$ alsamixer

2) Activar el sonido de "Mic"
Seleccionar "Mic" y activar el sonido (si es necesario) pulsando la tecla 'm':

3) Activar el sonido de los dispositvos de captura
Pulsar F4 para ver los dispositivos de captura "Capture", y activarles el sonido (tecla 'm'):


*"Mic Boost" amplía el nivel de captura del micrófono. Si está activado y muy alto, producirá ruídos molestos para la persona que nos escuche.

*Sin tener activado el canal "Digital" no se escuchará el micrófono. Tenerlo muy alto pruducirá ruídos molestos para la persona que nos escuche.

4) Pruebas
Para probar el micrófono podemos recurrir a cualquier programa, por ejemplo skype o hangouts, o utilizar las herramientas de alsa.

Utilizando las herramientas de alsa:

  • Gabar el sonido a un fichero wav:
    $ arecord -f cd -D hw:0 -d 10 test.wav

    *Si esto no funciona, hay que probar con la interfaz de PCM "plughw"
    $ arecord -f cd -D plughw:0 -d 10 test.wav
  • Reproducir la grabación:
    $ aplay test.wav
    *Borrar el fichero al finalizar


Ahora que están la iSight y el micrófono funcionando, por seguridad, es recomendable tapar la cámara con un trozo de cinta adhesiva y desactivar el sonido del micrófono. Nunca se sabe qué puede pasar >;).

Enjoy!

Fuentes:

domingo, 15 de septiembre de 2013

ssh sin contraseña, utilizando claves rsa

Supongamos que tenemos dos equipos entre los que nos conectamos habitualmente utilizando ssh.El equipo1 (10.0.0.1) y el equipo2 (10.0.0.2).

Al conectarnos con mucha frecuencia, introducir la contraseña cada vez que nos conectamos se convierte en una labor repetitiva, cansina y en una pérdida de tiempo. Para poder conectarnos entre ellos de forma cómoda y segura, podemos hacerlo utilizando claves rsa, en vez de contraseña.


Esquema de los equipos y sentido de la conexión ssh
Esquema de los equipos y sentido de la conexión ssh

Para poder conectarnos mediante ssh utilizando las claves rsa, en lugar de tener que introducir la contraseña:

En el equipo1 creamos las claves rsa pública y privada:

rubenhortas@equipo1:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rubenhortas/.ssh/id_rsa): [ENTER]
Enter passphrase (empty for no passphrase): [ENTER*]
Enter same passphrase again: [ENTER*]
Your identification has been saved in /home/rubenhortas/.ssh/id_rsa.
Your public key has been saved in /home/rubenhortas/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
The key's randomart image is:


< Que te lo voy a decir ;)>
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
*Dejad la passphrase en blanco, porque si no la va a pedir cada vez que nos conectemos al equipo2 por ssh

Copiamos la clave pública al equipo2:

rubenhortas@equipo1$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.2
The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.
RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
rubenhortas@10.0.0.2's password: [CONTRASEÑA EQUIPO2]

Por último nos conectamos al equipo2 por ssh, y comprobamos que no nos pide la contraseña.

Enjoy!

domingo, 10 de marzo de 2013

manejar varias interfaces de red con firestarter e iptables


Por casualidades (o causalidades) de la vida, llevo una temporada usando firestarter como firewall. Firestarter es una GUI para configurar de forma sencilla iptables. Como con todo, después de usarlo un tiempo, surge una lista de pros y contras, en la que yo destacaría:





Pros:

  • Sencillez: Se configura a través de un asistente y diálogos de prefrencias. Definir reglas y políticas se convirte en algo trivial.
  • Buenos defaults: Creo que tiene una buena configuración por defecto, y suficiente para la mayoría de equipos de escritorio. Aunque siempre se pueden añadir y modificar reglas y políticas.
  • Daemon: Se ejecuta como daemon, y se puede configurar para que se inicie/pare al conectarse a internet o al renovar la sesión DHCP.
  • Icono: El icono (opcional) en el área de notificación. Es imposible pasar algún evento por alto (aunque puede llegar a distraer).

Contras:

  • Interfaces: Firestarter permite configurar un dispositivo de red conectado a internet y un dispositivo de red conectado al área local. El problema está en que, dependiendo de la configuración de la red, la interfaz puede ser la misma, o puede no ser suficiente.

Para configurar otra interfaz hay que añadir manualmente las reglas mediante iptables. Pero, después de añadir las reglas, todo lo que pase por esa interfaz se guardará en los logs*.
El peligro está en que si esta nueva interfaz tiene mucho tráfico, los logs pueden crecer GBs, llegando a saturar la partición donde se almacenan.

Hay una forma de solucionar esto, añadiendo las reglas necesarias en /etc/firestarter/user-pre.
Por ejemplo, si firestarter está controlando una interfaz de red inalámbrica (wlan0), para permitir todo el tráfico a través de una interfaz de red cableada (eth0), hay que añadir:

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

*Llegados a este punto, he de decir que para evitar saturar los logs lo he intentado todo, o, por lo menos, todo lo que se me ocurrió. He intentado añadir reglas con -m limit, --limit, --limit-burst, LOG, añadir las reglas a las creadas por firestarter... Pero todo se seguía guardando en los logs.
Si conoces otra forma de evitarlo, agradecería un comentario ;)

domingo, 23 de septiembre de 2012

protege tu grub

La configuración por defecto de GRUB permite que cualquier persona con acceso físico a la máquina, pueda acceder a él y editarlo, pudiendo así obtener una GRUB shell. El problema aparece cuando esa persona tiene ciertos conocimientos y se hace con una root shell, como explican en flu-project en el artículo "El Sticky Keys (sethc.exe) de GNU/Linux".

No es un fallo de seguridad, como bien aclaran en flu-project y el proyecto GNU. Se deja así para facilitar la recuperación de sistemas estropeados, lo cual se consiera la opción más razonable para la mayoría de sistemas. Ya que una persona con acceso físico a la máquina podría utilizar distintas técnicas para comprometerla. De todas formas, en GNU, reconocen y advierten de que en ciertos entornos es conveniente bloquear el cargador de arranque. Así que, si no os fiais del entorno en el que puede acabar vuestro ordenador, bloqueadlo ;)

Cómo podemos bloquear el GRUB?

En dos sencillos pasos:


1. Generar una contraseña de forma segura:

$ grub-mkpasswd-pbkdf2

2. Editar el fichero /etc/grub.d/40_custom y añadir dos líneas:

set superusers="nombreUsuario"
password_pbkdf2 nombreUsuario grub.pbkdf2.sha512.password.increiblmente.larga.que.generamos.antes

Si la opción --unrestricted no es usada en las entradas de grub (y no es añadida por defecto), sólo los usuarios especificados en la lista de superusers podrán editarlo.

Fuentes:

domingo, 8 de abril de 2012

activar los botones apagar, reiniciar, suspender e hibernar en debian xfce4 + xdm, editando un par de líneas


Si tienes xfce4 con xdm como display manager, te habrás encontrado con que los botones apagar y reniciar están sombreados ( "greyed out" / "greyed" ) o deshabilitados.

En mi caso la documentación de xfce4 no funcionó, ni las soluciones alternativas propuestas en los wikis de xfce4, qué decir de soluciones (a veces un tanto esotéricas) vistas a lo largo de una interminable lista de foros... Al final, después de mucho insistir y probar, encontré la solución.

Los botones apagar, reiniciar, suspender e hibernar, se pueden activar sólamente editando un par de ficheros relativos a policykit.

(Sí, es cierto, hay que tener instalado policykit, consolekit y upower)

Botones apagar y reiniciar


Tenemos que editar el fichero org.freedesktop.consolekit.policy en /usr/share/polkit-1/actions/ (como root)

rubenhortas@blog:~$ sudo vim /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Y añadir:<allow_any>yes</allow_any> al final de la sección <default> en las secciones "Stop the system" y "Restart the system"





No lo he añadido en las secciones para cuando hay múltiples usuarios en el sistema, por razones obvias ;)


Suspender e Hibernar


Tenemos que editar el fichero org.freedesktop.upower.policy en /usr/share/polkit-1/actions

rubenhortas@blog:~$ sudo vim /usr/share/polkit-1/actions/org.freedesktop.upower.policy

Añadir <allow_any>yes</allow_any> al final de la sección <default> en las secciones "Suspend the system" e "Hibernate the system"


Inmediatamente después de guardar los cambios estarán activos

domingo, 1 de abril de 2012

instalar torrentflux-b4rt + transmissioncli + lighttpd + sqlite en un seedbox

Si alguno tiene un seedbox, está sopesando la posibilidad de adquirir uno, o quizá de montarse uno a nivel doméstico, puede que le interese esto.

La idea es montar un servidor de torrents (en un entorno sin X) ligero y fácilmente manejable (incluso multiusuario) a través de una interfaz web.

Después de ojear las alternativas, ventajas/desventajas, consumo de recursos y rendimiento, para este ejemplo, me he decidido por montar torrentflux-b4rt + lighttpd + sqlite + transmissioncli.

Ahora sólo hay que instalarlos todos y ponerlos a trabajar como un equipo! ;)

Instalando las aplicaciones


Lo primero que tenemos que hacer es instalar las aplicaciones que vamos a necesitar:
  • lighttpd
  • Servidor web muy ligero. Optimizado para entornos dónde la velocidad es importante.
  • sqlite
  • Sistema de gestión de base de datos pequeño y ligero.
  • php5 (cgi + cli + sqlite)
  • python

Y también instalaremos unas cuantas herramientas que nos permitirán extender las funcionalidades de torrentflux-b4rt.
  • bzip2
  • Para comprimir/descomprimir archivos
  • unrar
  • Para descomprimir archivos .rar
  • unzip
  • xdeview
  • Decodificador para archivos codificados en formato: uuencode, xxencode, BASE64, «quoted printable» y BinHex. !La documentación que he visto por ahí, requiere uudeview, pero ahora se encuentra en el paquete xdeview.
  • cksfv
  • Verificación siemple de archivos.

Para instalar todo:

rubenhortas@blog:~$ sudo aptitude install lighttpd sqlite php5-cgi php5-cli php5-sqlite python bzip2 unrar unzip uudeview cksfv


Activar el soporte de PHP5 en lighttpd


Para esto tendremos que editar un par de archivos (como root):
  1. fichero php.ini

  2. rubenhortas@blog:~$ sudo vim /etc/php5/cgi/php.ini

    En este fichero tenemos que buscar la línea ";cgi.fix_pathinfo = 1" y descomentarla. Para descomentarla basta con quitar el ';'. También se puede pegar una nueva línea "cgi.fix_pathinfo = 1".

  3. fichero lighttpd.conf

  4. rubenhortas@blog:~$ sudo vim /etc/lighttpd/lighttpd.conf

    En este fichero hay que añadir unas cuantas líneas.

    1. Añadir la línea "mod_fastcgi" en la sección "server.modules"
    2. Añadir las líneas:
      fastcgi.server = (".php" => ((
                        "bin-path" => "/usr/bin/php5-cgi",
                        "socket" =>"/tmp/php.socket"
                        )))
      
      al final del archivo.

Hay que reiniciar lighttpd para que coja los cambios:

rubenhortas@blog:~$ sudo /etc/init.d/lighttpd restart

Comprobar que lighttpd y php están funcionando


Para comprobar si lighttpd está funcionando, ponemos la dirección ip del seedbox (o el nombre ,si tiene) en la barra de direcciones de nuestro navegador. Si vemos la página "placeholder page" está funcionando.
Para comprobar si php está funcionando podemos crear un fichero /var/www/info.php que sólo contenga la siguiente línea:
<?php phpinfo(); ?>
Si está todo correcto saldrá la informacíón del sistema al acceder a "http://ip.del.seedbox/info.php".
Ahora, es recomendable borrar los dos ficheros (lighttpd.html e info.php) y crear otro index.html.

Instalar y configurar torrentflux-b4rt


Descargar la última versión de: http://developer.berlios.de/project/showfiles.php?group_id=7000&release_id=14392

!En este howto, la versión usada será torrentflux-b4rt_1.0-beta2.tar.bz2
Para bajarlo elegimos la versión, hacemos clic en el enlace, se abre una nueva pestaña y dónde pone "Problems with the download? Please use this direct link, or try another mirror." copiamos el enlace al que apunta "direct link" y descargamos con wget.

rubenhortas@blog:~$ wget http://downloads.sourceforge.net/project/tf-b4rt.berlios/torrentflux-b4rt_1.0-beta2.tar.bz2

Descomprimimos el archivo:

rubenhortas@blog:~$ tar jxvf torrentflux.tar.bz2

Creamos el directorio dónde va a trabajar torrentflux-b4rt:

rubenhortas@blog:~$ sudo mkdir /var/www/torrentflux

Le damos permisos sobre el directorio al usuario www-data, que va a ser el que maneje torrentflux-b4rt, y necesita permisos para crear la bases de datos, archivos, etc...

rubenhortas@blog:~$ chown -R www-data:www-data /var/www/torrentflux/

rubenhortas@blog:~$ chmod -R 664 /var/www/torrentflux/

Copiamos el contenido del directorio "html/" de torrentflux-b4rt al directorio donde va a estar instalado

rubenhortas@blog:~$ sudo cp -r torrentflux-b4rt_1.0-beta2/html/* /var/www/torrentflux/

Ahora configuramos torrentflux-b4rt, desde la propia interfaz web, introduciendo "http://ip.del.servidor/torrentflux/" en la barra de direcciones del navegador. La configuración es del tipo "siguiente, siguiente" ;)

!La configuración mediante el interfaz web, en principio, no debería dar ningún problema. Pero a veces da problemas con la base de datos. Lo primero es comprobar que el usuario www-data tenga permisos sufcientes sobre el directorio donde está instalado torrentflux-b4rt. Si los tiene y tenemos problemas creando la base de datos, lo único que tenemos que hacer es crearla con sqlite:

rubenhortas@blog:~$ sqlite torrentflux.db

Sólo crearla, inmediatamente después salimos. Las tablas ya las va a crear automáticamente torrentflux-b4rt.
sqlite> .exit


Instalando transmission


El último paso que nos queda es instalar el cliente encargado de manejar los torrents. Torrentflux-b4rt soporta varios, para este artículo he elegido transmissioncli, por estar perfectamente integrado y ser muy ligero.
Bajamos el código fuente de transmission de http://www.transmissionbt.com/download/.
Para que torrentflux-b4rt pueda manejar transmission, necesita una versión parcheada de éste, el último parche es para la 1.06, así que una vez en la página, seleccionamos "Older tarballs" y la bajamos

rubenhortas@blog:~$ wget http://download-origin.transmissionbt.com/files/transmission-1.06.tar.bz2 Que es la última para la que hay parche

Descomprimimos el paquete

rubenhortas@blog:~$ tar jxvf transmission-1.06.tar.bz2

Y lo parcheamos. Para parchearlo vamos al directorio dónde hayamos descomprido el fichero de torrentflux-b4rt

rubenhortas@blog:~$ cd ruta/al/fichero/torrentflux/clients/transmission

Descomprimimos el fichero que hay dentro:

rubenhortas@blog:~$ tar jxvf Transmission-1.06_tfCLI-svn3356.tar.bz2

Y aplicamos los parches de torrentflux-b4rt para transmissioncli

rubenhortas@blog:~$ cp torrentflux-b4rt_1.0-beta2/clients/transmission/Transmission-1.06_tfCLI-svn3356/cli/* transmission-1.06/cli/

!Suponiendo que hayamos descomprimido los dos archivos en el mismo directorio
Y ahora compilamos transmission. Para compilarlo es necesario instalar las dependencias de transmission:

rubenhortas@blog:~$ sudo aptitude install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libappindicator-dev

Entramos al directorio y compilamos

rubenhortas@blog:~$ cd /descargas/transmission...

rubenhortas@blog:~$ ./configure -q && make -s

rubenhortas@blog:~$ make

rubenhortas@blog:~$ sudo make install

Y el resultado, al entrar en http://ip.del.seedbox/torrentflux es...

domingo, 4 de marzo de 2012

configurar el teclado de un macbook en debian



Un error un poco molesto que me encontré después de instalar debian en el macbook, es que había dos teclas cambiadas. Concretamente la tecla con los carácteres 'ºª\' y la tecla con los carácteres '<>'

Para solucionarlo, basta con crear un archivo, por ejemplo, en el home, llamado .xmodmap y añadir las siguientes líneas:



!Intercambio de teclas
keycode 94 = masculine ordfeminine masculine ordfeminine backslash backslash
keycode 49 = less greater bar brokenbar

Por último, hay que añadir el comando "xmodmap /ruta/al/archivo/.xmodmap" a los programas que se ejecutan al inicio de sesión y solucionado ;)

sábado, 19 de noviembre de 2011

grub2, grub rescue

A veces pasa que por cualquier motivo (normalmente por nuestra culpa...) grub falla. Si es un fallo de grub, tenemos "suerte", grub nos proporciona una serie de herramientas con las que podremos solucinarlo.
(Si al arrancar la pantalla se queda en negro, o con un cursor parpadeando, lo más probable es que no sea un fallo de grub)

Uno de los problemas más comunes, es que grub no sea capaz de encontar su propio directorio (o que falle a cargar el módulo normal), pero el bootloader es capaz de encontrar el disco. Si es el caso, veremos el archiconocido y googleado prompt: grub rescue>

Tranquilos! No os pongáis a tostar live-cds de ubuntu como locos, que no hace falta ;)

Para recuperar el grub desde aquí, sólo hay que seguir 3 sencillos pasos:

  • grub rescue> set prefix(hdX,Y)/boot/grub
  • Cambiando la X por la letra que corresponda al disco duro y la Y por el número de la partición "/" (root / raíz) desde la que arrancaba antes
  • grub rescue > insmod (hdX,Y)/boot/grub/normal.mod
  • grub rescue > normal

Ahora debería arrancar ;)

Hay que tener en cuenta que el teclado se pone en modo americano, con la siguiente correspondencia de teclas:


tecla que buscamos -> tecla donde está
= -> ¿
( -> )
) -> =
/ -> -

Una vez arrancada nuestra distro, tenemos que arreglar el problema con grub de una vez por todas:

# grub-install --recheck /dev/sdX

Y el problema debería quedar solucionado ;)

Fuentes:

miércoles, 27 de agosto de 2008

mplayer mediante ssh

Pongámonos en el supuesto caso, de que estamos en un ordenador 'A' que es portátil y que estamos tirados en cama por alguna razón queremos ver un vídeo en otro ordenador 'B' que es nuestro sobremesa se encuentra en otro lugar y sólo es accesible a través de ssh, cómo podemos ver un vídeo (en este caso a pantalla completa) en el ordenador 'B'?
Una vez conectados por ssh ejecutamos:
$ DISPLAY=:0 mplayer -fs video

jueves, 24 de abril de 2008

debian a pantalla completa con parallels en un macbook

Para solucionar el error de resolución de pantalla que da parallels al querer ejecutar a pantalla completa (full screen) debian virtualizada en un macbook sólo hay que editar el xorg.conf y añadir las siguientes líneas dentro de la sección Screen

SubSection "Display"
    Modes "1280x800"
EndSubSection


Guardar cambios y reiniciar las x

jueves, 3 de enero de 2008

gtalk con centericq

Me dejo aquí a modo de post-it cómo hay que configurar una cuenta jabber en centericq para conectar a gtalk :P

puerto: 5223
servidor: talk.google.com
seguro:

viernes, 28 de septiembre de 2007

backuping

Muchas veces me han preguntado de qué forma hacía las copias de seguridad (backups) y muchísimas veces hemos hablado de este tema e intercambiado formas y manías... La verdad es que hay muchísimas formas de hacerlos y cada uno elige la que más le conviene, la mía consiste en hacer backup incremental de un directorio donde almaceno las cosas más importantes en un disco duro externo mediante rsync por lo menos una vez al mes.

Así que en resumen, lo que tengo es un alias para no tener que escribir toda la línea del rsync (viva la vagancia! ;D)

alias backup="rsync -q -r -t -o -g -p --delete /mnt/almacen/DIRECTORIO /mnt/disco/"

Y cuando quiero hacer un backup simplemente monto el disco externo en /mnt/disco y ejecuto el alias

$ time backup

*Uso time para ver cuanto tiempo tarda

Luego desmonto y desconecto el disco ;)

martes, 4 de septiembre de 2007

optimizando debian al máximo

Para los que tengais algún cacharro viejo y querais darle algún uso (más allá de servidor casero o criador de polvo) diré que optimizando "un poco" debian consume aproximadamente 20Mb de ram, con una resolución de 1024x768. Mi equipo en cuestión, imac g3 bondi blue, consta de 233Mhz, 64Mb de ram, y 4'3gb de HD y optimizado se puede usar diariamente sin (más o menos) perder la paciencia, Para que os hagais una idea... Hasta veo divx! :D

- Cómo puedo optimizarlo yo también?
Pueeeeeeees... Manos a la obra!

En mi caso he partido de una instalación de debian etch netinstall para ppc para conseguir que no sólo consumiese pocos recursos sino que también consumiese poco disco. Así que una vez instalado el sistema base...:

- Quitar noatime de las particiones

Linux graba cuando fueron creados los archivos y cuando fue su última modificación, poniendo noatime en nuestros sistemas de fichero conseguimos que no lo haga con el consecuente ahorro de escrituras/lecturas en disco, para hacer esto puedes modificar los parámetros de montaje de los sistemas de fichero en la instalación del sistema o más tarde editando el fstab y añadiendo la opción noatime (para la swap no hace falta):

# vim /etc/fstab

Y añadirlo en las opciones:

/dev/hda4 / ext3 noatime,errors=remount-ro 0 0

javier:
Si estás utilizando ese mini sistema como servidor (lo digo porque con las X de hoy en día, por mucho ION que le pongas se arrastrará) no es conveniente añadir la opción de noatime, ya que así dejas de tener información valiosa como la que esa directiva te priva, sobretodo en temas de forensics o simplemente al hace reports.



- Desactivar las consolas virtuales

Las consolas virtuales son las de alt+Fx, normalmente están sin usar, así que podemos desactivarlas todas y dejar una por si acaso, para desactivarlas hay que editar el fichero inittab y comentar unas líneas:

# vim /etc/inittab

Comentar las líneas de las tty, recordad dejar al menos una!, algo parecido a:


#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6


- No instalar ningún display manager (kdm, gdm, xdm...)

Parece que no, pero se ahorra "mucha" memoria evitando el uso de un display manager, sin el display manager podemos iniciar sesión en consola y lanzar el entorno gráfico de forma manual con el comando startx (Si tuviésemos varios habría que poner startENTORNO, pero como es un howto para máquinas poco potentes asumo que solo vamos a instalar uno).

- Instalar una interfaz ligera

Después de instalar x-window-system-core deberíamos instalar una interfaz... Hay un montón de interfaces ligeras: fluxbox, fvwm, fvwm-crystal, icewm, xfce4... Yo he escogido xfce4, consume solo 9Mb más de ram que fluxbox o fvwm-crystal y para lo que quería yo me venía mejor por ser gtk.

- Reducir el consumo de swap

Cuando una máquina cae en el swapping empieza el estrés, todo va infinitamente lento y más en este tipo de máquinas que ya son lentas por naturaleza más... Para evitar el consumo de swap a la ligera podemos editar el fichero swappiness que controla la tendencia del kernel al swapping (por defecto es de 60).

# echo 10 > /proc/sys/vm/swappiness

- Reconfigurar la calidad del color del entorno gráfico

Nosotros no podemos distinguir entre 16bits y 24bits, pero nuestra tarjeta gráfica sí...

# dpkg-reconfigure xserver-xorg


- "Capar" los servicios que no usamos

Digo capar porque basta con quitarles los permisos para que no se ejecuten al inicio, así si capamos alguno que no debemos o necesitamos uno más adelante podemos darle permisos y ejecutarlo a mano, como los servicios son muchos y varían dependiendo de la máquina que cada uno utilice el google para saber cuales puede capar.

Ir al directorio init.d

$ cd /etc/init.d


Ver qué servicios se ejecutan al inicio

$ ls


Capar los servicios que no usemos

# chmod 000 <>

javier:
La eliminación de servicios que no se usan ha de hacerse de otra forma: quitar permisos en /etc/init.d no es el camino porque impides que se ejecuten y, si tu mismo quieres arrancar un servicio en un momento determinado te tocará otorgar de nuevo permiso de ejecución (o lectura macho, que has puesto un chmod 000 xDD). Lo que has de hacer es eliminar el enlace simbólico del servicio en su runlevel correspondiente. En Gentoo sería en /etc/runlevels, en Debian o CentOS (por ejemplo) se hace en /etc/rcX.d, siendo la X el runlevel.


*Actualizado (06/09/2007):


- Activar DMA

DMA es el acceso directo a memoria, los dispositivos lo usan para poder leer/escribir sin depender de la cpu, si podeis lo deberíais activar en disco duro y cdrom.

Instalar hdparm:

# apt-get install hdparm


Consultar la información del dispositivo

# hdparm /dev/hda

Si aparece 'using_dma = 1 (on)', sino podemos activarla temporalmente con el comando:

# hdparm -d1 /dev/hda

Para activar el DMA siempre hay que editar el fichero /etc/hdparm.conf y descomentar las líneas del dispositivo y de hdparm.

Abrir el archivo para editar

# vim /etc/hdparm.conf


Buscar la sección del dispositivo

#/dev/hda {
# mult_sect_io = 16
# write_cache = off
# dma = on
#}



Dejarla:

/dev/hda {
# mult_sect_io = 16
# write_cache = off
dma = on
}


Guardar y reiniciar.

*Actualizado (14/09/2007): He añadido unos matices que dejó javier en los comentarios que me parecen interesantes y que debrería haber puesto :P

Si conoceis algún "truco" más que no haya puesto dejadlo como comentario y lo iré añadiendo al post, todos los agradeceremos ;D

miércoles, 29 de agosto de 2007

conky, double buffering en xfce4

Pues trasteando como siempre he decidido instalar conky en mi imac g3 (233Mhz + 64Mb de ram) en xfce4... Así que...

# apt-get install conky
$ conky

Pero... Cual es mi sorpresa al ver que...

*@imac:~$ conky
Conky: drawing to root window
Conky: failed to set up double buffer
Conky: drawing to single buffer


Así que después de varios intentos he decidido pasar un ratito en google con su consecuente gratificación :D
Después de ver un gritón* de enlaces y casi 100 gritones de posts he dado con la solución en: http://ubuntuforums.org/showthread.php?t=205865&highlight=conky :)

En resumen, hay que...:

- Instalar wmctrl (una herramienta en línea de comandos para interactuar con los gestores de ventanas compatibles con la especificación EWMH/NetWM)

# apt-get install wmctrl

- Editar el /etc/X11/xorg.conf y añadir en la sección "Modules":
"Load "dbe"

- Editar el .conkyrc y modificar/añadir las siguientes líneas:
own_window yes
own_window_type override
own_window_transparent yes

Después de reiniciar todo el sistema al lanzar conky funciona a la perfección :D

*Gritón: gag de Futurama