Archive | Slackware RSS for this section

KVM y libvirt en Slackware

KVM (Kernel-based Virtual Machine) es una de las mejores soluciones para virtualización dentro del kernel de Linux, junto a libvirt, que no es mas que un conjunto de herramientas para administrar KVM, juntos son una poderosa combinación para poder trabajar en entornos de desarrollo o en producción.

KVM ya se encuentra habilitado en los kernels entregados por Slackware, por lo que solamente hay que corroborar que nuestra máquina tenga soporte para virtualización, como Intel-VT o AMD-V, aunque actualmente la mayoría de procesadores para PC de escritorio o laptops tienen éste soporte, pero podemos verificar las CPU flags de la siguiente manera:

Para procesadores AMD:

$ grep --color svm /proc/cpuinfo

Para procesadores Intel:

$ grep --color vmx /proc/cpuinfo

La salida de éstos comandos debe darnos información con las flags del CPU que tenemos disponibles, de lo contrario sabremos que no contamos con un procesador adecuado para virtualizar.

Instalación de un entorno libvirt

Para instalar libvirt en Slackware es necesario instalar previamente varias dependencias, lo que puede resultar tedioso si no tuviésemos a la mano el repositorio de SlackBuilds.org (SBo).

La instalación es simple, podemos descargar los slackbuilds o bien utilizar sbopkg, seguir las listas de dependencias e instalarlo, siempre recordando leer los README para evaluar la instalación de paquetes opcionales, en especial con el paquete netcat-openbsd que suele tener problemas con otros paquetes.

Es importante tomar en cuenta que el slackbuild de libvirt viene por defecto para usar el grupo users del sistema, pero yo recomiendo tener otro grupo específico para poder aislar a otros usuarios del uso y administración de libvirt y las máquinas virtuales. La mejor forma es crear un grupo y luego añadir a los usuarios que necesiten virtualizar a éste grupo:

# groupadd libvirt
# gpasswd -a nombre-usuario libvirt

El comando gpasswd agregará a el usuario que necesitemos al grupo libvirt, o bien podemos modificar el archivo /etc/group y agregarlo manualmente. Los usuarios deberán reiniciar su sesión para poder cargar los permisos.

Es recomendable instalar otras herramientas como virt-manager, que no es mas que un administrador gráfico para libvirt, pero necesita muchas otras dependencias de gnome.

Qemu se debe instalar para poder crear las máquinas virtuales o bien utilizar la alternativa de Xen, pero ésta ultima tiene la desventaja de que solamente se podrá instalar en sistemas de 64 bits. Es importante agregar qemu al mismo grupo de virtualización al momento de compilarlo (KVMGROUP=libvirt).

Algunas herramientas extras son openvswitch y usbredir, que pueden agregar muchas mas funcionalidades a la creación y uso de nuestras maquinas virtuales.

Cambiando la carpeta de almacenamiento de libvirt

Libvirt por defecto utilizará la carpeta /var/lib/libvirt/images como la carpeta para crear las imágenes de los discos de nuestras máquinas virtuales, pero algunas veces necesitamos que las imágenes las tengamos en una unidad aparte, o una partición con mucho mas espacio.

Lo primero es asegurarnos de crear la carpeta donde queremos almacenar las imágenes de los discos de las máquinas virtuales:

# mkdir /nueva/carpeta/para/imagenes

Los permisos de acceso son importantes a ésta carpeta, solamente root debe poder accederlas:

# chown root:root /nueva/carpeta/para/imagenes
# chmod 755 /nueva/carpeta/para/imagenes

Para cambiar el pool de almacenamiento principal de libvirt a otra localidad podemos hacer uso de la herramienta virsh:

# virsh pool-destroy default
# virsh pool-undefine default
# virsh pool-define-as --name default --type dir --target /nueva/carpeta/para/imagenes
# virsh pool-autostart default
# virsh pool-build default
# virsh pool-start default

Los comandos anteriores primero realizan una destrucción de la información del pool default, luego lo eliminan de las definiciones para las máquinas virtuales, para luego crear una nueva definición, con el mismo nombre “default”; luego coloca de nuevo el pool “default” para que se habilite automáticamente al iniciar el servicio de libvirt; el comando pool-build se encarga de crear la información de la nueva carpeta, colocando información de tamaño y permisos, importante para que el sistema pueda saber cuanto espacio tiene disponible para las máquinas virtuales; y por último se inicia el pool “default” para que pueda ser utilizado.

Ahora solo resta divertirse con la virtualización.

Cambio de etiquetas para pendrives desde línea de comandos

Al momento de comprar una pendrive (nueva memoria USB) siempre tenía el incoveniente de cambiarle la etiqueta, ésto no es tan fácil ya que Linux por defecto no usa sistemas de archivos FAT, por lo que no funciona un simple click derecho.

En cambio es mas fácil desde línea de comandos en un solo paso pero hay que configurar una aplicación:

Lo primero es tener instalado el paquete floppy, que en el caso de slackware viene por defecto en una instalación completa, y si por alguna razón no lo han instalado lo mejor será ir a la carpeta a/ del disco de instalación e instalar el paquete floppy.

Una vez instalado solo resta configurarlo adecuadamente, el archivo /etc/mtools.conf trae ya unos datos de ejemplo, lo que debemos agregar al final del archivo es una línea como la siguiente (editando como superusuario “root”):

drive p: file="/dev/sdb1"

donde “p” es el nombre de una unidad como en DOS, por ello va acompañado de “:” y puedes escoger el nombre de letra que desees; luego el argumento de file debe ser la dirección hacia el dispositivo que deseamos administrar con ésta herramienta, que para ejemplo he colocado /dev/sdb1, ya que actualmente los discos son numerados con la nomenclatura /dev/sdX#, siendo X una letra, comenzando por “a” según el disco físico y # el número de partición, por lo que hay que tener cuidado en conocer realmente que nomenclatura ha sido asignada a nuestra pendrive.

Una vez configurado el archivo, puede ser usado para cualquier otro dispositivo que sea reconocido con ésta nomenclatura.

Para finalizar debemos crear un archivo en nuestra carpeta de usuario (no root):

$ cd ~
$ echo "mtools_skip_check=1" >> .mtoolsrc

y ahora es tiempo de cambiar etiquetas a nuestras pendrives:

$ mlabel p:NombreUSB

donde “p:” es la unidad que configuramos previamiente y lo que sigue a continuación es el nombre de la pendrive, que no debe pasar de 11 caracteres.

Si deseamos ver los cambios solo debemos verificar con:

$ mlabel -s p:

KDE, cómo cargar scripts de usuario

KDE tiene tres carpetas esenciales para la carga de scripts:

  • Scripts que se cargan al inicio de KDE:  .kde/Autostart
  • Scripts que se pueden cargar antes de que todo KDE sea cargado, en especial si queremos que variables de entorno funcionen en todas las aplicaciones de KDE: .kde/env
  • Scripts que se carguen cuando cerremos la sesión: .kde/shutdown

Todos los scripts que coloquemos en éstas carpetas se ejecutarán en su debido momento, pero debemos tener el cuidado de que tengan permiso de ejecución pero que cumplan con los requisitos para que sean ejecutados sin indicar qué aplicación los interpretará.

Otros lugares interesantes por tener en cuenta en éste enlace de Linux From Scratch

GPG integrado con KDE en Slackware

Inicié a controlar mis gastos e ingresos por medio de KMyMoney, una herramienta que me la habían recomendado mucho, pero antes me encontré con muchas otras herramientas, como GnuCash, eqonomize, etc. pero lo primero que busqué fue que tuviera soporte para encriptar los datos.

Mi opción, conociendo sus características, fue KMyMoney, ya que se integra bastante bien con KDE, que es el escritorio que siempre me ha gustado utilizar en Slackware y utiliza GPG para encriptar los archivos.

El problema comienza con la configuración para que pueda abrir archivos encriptados, ya que GPG por defecto no se integra lo suficiente con los escritorios gráficos, es mas una herramienta de línea de comandos.

Para integrar correctamente cualquier aplicación que haga uso de GPG en un ambiente gráfico como KDE debe poder acceder a un agente que se encarga de intercambiar información entre la aplicación y el archivo cifrado por GPG.

Primero debe de asegurarse de tener configurado adecuadamente GPG, para ello vamos primero por el archivo de configuración de GPG ~/.gnupg/gpg.conf, el cual puede ser abierto con nano o vim:

$ cd ~
$ nano .gnupg/gpg.conf

y luego buscar si se tiene habilitada la opción use-agent

Ahora nos falta configurar el agente encargado de gestionar la información, en este caso pinentry que ya viene con slackware, para ello tenemos que crear o modificar el archivo ~/.gnupg/gpg-agent.conf verificando al menos tres líneas importantes:

pinentry-program /usr/bin/pinentry-qt4
no-grab
default-cache-ttl 300

La opción pintetry-program indica que programa utilizar, para kde es pinetry-qt4, existen para gtk y demás.
La opción no-grab para evitar que pinetry capture teclado y mouse, (no es algo que nos proteja de los keyloguers y demas)
La opción default-cache-ttl es el tiempo en segundos para mantener activa la contraseña.

Con ésto arreglado se puede proceder a realizar una prueba, para evaluar que todo vaya bien; en la línea de comandos ejecutamos lo siguiente:

$ gpg-agent --daemon

Nos debe devolver que se ha iniciado y nos dará unas variables para que los programas los utilicen, algo como:

GPG_AGENT_INFO=/tmp/....:7711:1

luego podemos matar el proceso con un simple killall

killall gpg-agent

Ahora es tiempo de configurar KDE

Solo resta agregar dos scripts, uno que se cargue antes de iniciar KDE para cargar las variables dadas por gpg-agent y otro para cerrar gpg-agent al terminar nuestra sesión. Los scripts se pueden crear en cualquier lado y con cualquier nombre, solo deben tener permiso de ejecución, y cargarlos desde el administrador de KDE en la sección Arranque y apagado.

Script de inicio, debe ser colocado con la opción Ejecutar en: Prenicio de KDE.

#!/bin/sh
# Inicio de gpg-agent para todo KDE

eval "$(gpg-agent --daemon)"

Script del final, se debe cargar con la opción Ejecutar en: Apagar

#!/bin/sh
# cierra toda instancia de gpg-agent que haya sido cargada con la sesión.

if [ -n "${GPG_AGENT_INFO}" ]; then
    kill $(echo ${GPG_AGENT_INFO} | cut -d':' -f 2) >/dev/null 2>&1
fi

Ahora solo falta salir de la sesión y reingresar.

Slackbuilds.org creciendo!!

SlackBuilds.org logoPara los que no conocían SlackBuilds.org, éste proyecto es un repositorio de Scripts de Bash, empaquetados con otros archivos, que generan paquetes binarios para Slackware, basándose en los scripts que Patrick Volkerding usa para crear la distribución; éstos scripts aparecieron por primera vez en la versión 3.1 de Slackware y que fue liberada en Octubre de 1996, según los Changelogs que aún se encuentran disponibles (Aunque puede que me equivoque).

El proyecto SlackBuilds comenzó el 6 de julio de 2006, con al rededor de 32 SlackBuilds ordenados en 10 categorías (información obtenida del Changelog), donde se podía encontrar SlackBuilds para OpenOffice, octave, wine, entre otros. todos ellos para la versión de Slackware 11, que no duró mucho tiempo para luego pasar a la versión 12.0. Leer Más…

Configuración de modem tigo

Después de un tiempo sin colocar un post, me decidí a escribir un post sobre como configurar un modem tigo HUAWEI  para Guatemala utilizando wvdial, probado con varios modems en especial para el modelo E160.

Para ello se necesita instalar dos paquetes, disponibles desde slackbuilds.org wvstreams y wvdial y ejecutar luego como root

# wvdialconf

y luego de que nos genere la configuración para nuestro modem podemos configurarlo como el siguiente ejemplo, ya sea añadiendo o modificando las líneas del archivo de configuración.

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,””,”broadband.tigo.gt”
Modem Type = Analog Modem
Phone = *99#
Modem = /dev/ttyUSB0
Username = tigo
Password = tigo
Baud = 460800

dependiendo de la velocidad del modem habrá que ajustarlo.

Para terminar solo deben ejecutar

# wvdial

Si les funciona la configuración para otros tipos de modem pueden dejar su comentario para ir incrementando la lista de modems que funcionan con estos datos.

Tuneando el XFCE

Después de andar por mucho tiempo en KDE me decidí a migrar a XFCE, además de que las ultimas actualizaciones de KDE 4.2.1 en Slackware-Current han estado dándome problemas.

Así que me puse la tarea de poner bonito mi XFCE, pero vi cierta dificultad al instalar temas obscuros donde las fuentes del menú de XFCE simplemente desaparecían en el fondo Blanco de éste, por lo que me decidí a encontrarle solución. Leer Más…