Mostrando las entradas con la etiqueta GNU/Linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta GNU/Linux. Mostrar todas las entradas

19 de agosto de 2010

ZoneMinder: Instalación y configuración



Introducción

ZoneMinder es un conjunto de aplicaciones de video vigilancia que permiten grabar y monitorizar cámaras IP, CCTV y Webcam conectadas a un equipo con GNU/Linux con soporte Video For Linux (V4L). Está formado de varios componentes y scripts escritos en Perl y PHP (para la interfaz web). Requiere, principalmente, del servidor de base de datos MySQL, servidor Web apache y ffmpeg.


Instalación

ZoneMinder no se encuentra en los repositorios de lenny, pero si se encuentra en squeeze desde donde pueden instalarse.

Primeramente, se deben instalar los servicios necesarios y algunos otros paquetes para una mejor administración:
# aptitude install apt-listbugs apt-file gpm vim less rcconf openssh-server
# aptitude install apache2 libapache2-mod-php5 libapache2-mod-auth-mysql php5 php5-mysql mysql-server mysql-client


Luego se instala ffmpeg:
# aptitude install ffmpeg

A continuación se instala ZoneMinder:
# aptitude install zoneminder

Esto instalará ZoneMinder y todas sus dependencias y creará la base de datos zm en MySQL.

Configuración

Agregar el usuario www-data al grupo video:
# gpasswd -a www-data video

Agregar un alias en apache para poder acceder a ZoneMinder desde el servidor web y se reinicia o se recarga la configuración de apache para que los cambios tengan efecto:
# ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
# /etc/init.d/apache2 restart (o apache2ctl restart)


Se configuran los permisos adecuados a /usr/bin/zmfix para que pueda ser leído y ejecutado por todos los usuarios:
# chmod 4755 /usr/bin/zmfix
# zmfix -a


Se asigna a www-data como el propietario del directorio temporal de ZoneMinder:
# chown www-data.www-data /usr/share/zoneminder/temp

Editar el archivo "/etc/sysctl.conf" y agregar las siguientes lineas (para 128MB de memoria compartida)
kernel.shmall = 134217728
kernel.shmmax = 134217728


Se descarga, descomprime y se copia cambozola al directorio "/usr/share/zoneminder/" para ver el streeming de las cámaras:
$ wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz
$ tar -xvzf cambozola-latest.tar.gz
# cp cambozola-0.76/dist/cambozola.jar /usr/share/zoneminder/


Luego, se habilita el cliente de streaming cambozola desde las opciones de la consola de administración de ZoneMinder (Options / Images / OPT_CAMBOZOLA).

ZoneMinder usa por default un usuario y contraseña débil para las query con la base de datos. Por ello, se recomienda cambiar el usuario y contraseña que usa ZoneMinder. Esto se hace editando el archivo "/etc/zm/zm.conf" y modificando las directivas ZM_DB_USER y ZM_DB_PASS:
# nano /etc/zm/zm.conf
ZM_DB_USER=nuevouser
ZM_DB_PASS=nuevopasswd


Una vez modificado se crea el usuario con su password en MySQL:
$ mysql -uroot -p
GRANT all ON zm.* to nuevouser@localhost IDENTIFIED BY 'nuevopasswd';
exit;


Otra configuración que se puede modificar es la ruta donde se guardarán los eventos e imágenes (quizá otro disco duro) modificando el enlace simbólico para que apunte a la nueva ruta:

# rm /usr/share/zoneminder/events
# rm /usr/share/zoneminder/images
# rm /usr/share/zoneminder/temp

# mkdir /ruta/nueva/images
# mkdir /ruta/nueva/events
# mkdir /ruta/nueva/temp

# ln -s /ruta/nueva/images /usr/share/zoneminder/images
# ln -s /ruta/nueva/events /usr/share/zoneminder/events
# ln -s /ruta/nueva/temp /usr/share/zoneminder/temp
# chown www.data.www.data -R /ruta/nueva/


Si ya se han agregado monitores, antes de eliminar los enlaces simbólicos hay que parar el servicio de ZoneMinder. Una vez creados los enlaces simbólicos se mueve el contenido de los directorios "/var/cache/zoneminder/" a la nueva ruta y se arranca el servicio ZoneMinder.

IMPORTANTE: Cuando se actualiza ZoneMinder mediante el sistema de paquetes, se eliminarán los enlaces que se acaban de crear y se crearán los que vienen por default. Por lo que hay que repetir los pasos, pero ANTES hay que tener mucho CUIDADO en mover los eventos de "/ruta/nueva/events" fuera de dicha ruta porque de lo contrario se eliminarán todos los eventos cuando se inicie ZoneMinder.


Conceptos e Información interesante

- Un monitor es la configuración de una cámara ya sea para monitorizar o grabar imágenes. Una vez configurado, si se hace de manera correcta, se habilita y la cámara es accesible se mostrará de color verde, de lo contrario se mostrará de color rojo o anaranjado.
- La consola de ZoneMinder es la interfaz Web
- Un evento es el registro generado por una cámara cuando se graban imágenes.
- Por default, cada 10 minutos (puede modificarse) se genera un nuevo evento que contiene las imágenes de la grabación.
- Las imágenes de los eventos se guardan en la carpeta "events/"
- Los filtros sirven para mostrar determinados eventos en base a parámetros configurables (fecha, causa, porcentaje en disco, id del monitor, etc). Viene incluido un filtro por default llamado PurgeWhenFull que elimina de manera automática los eventos antiguos cuando el disco duro llega al porcentaje configurado.


Configuración de las Opciones (Options) desde la consola de ZoneMinder

Se accede a estas opciones desde el link "options" en la consola principal de ZoneMinder. Si se realizan varias modificaciones se recomienda reiniciar ZoneMinder para evitar inconsistencia o perdida de datos. Se recomienda modificar al menos las siguientes opciones:

+ En la pestaña "System":
- La opción LANG_DEFAULT permite modificar el idioma. Se cambia al idioma al español (es_ar). Gran parte no está traducido al español, para continuar traduciendo hay que editar el archivo "/usr/share/zoneminder/lang/es_ar.php".
- La opción OPT_USE_AUTH debe marcarse para permitir autenticación de usuarios. Al guardar pedirá usuario y contraseña que por defecto son admin/admin. También aparecerá una pestaña llamada "Users" desde la cual se puede modificar la clave del usuario admin y crear nuevos usuarios con los permisos deseados.

+ En la pestaña Paths (Enlaces) se pueden modificar las rutas donde se almacenaran imágenes, sonidos etc.
DIR_EVENTS dejar events
DIR_IMAGES dejar images
PATH_ZMS No estoy seguro, por ahí leí que se modificaba por "/cgi-bin/zms", pero no estoy seguro, pues por default es "/cgi-bin/nph-zms".
PATH_LOGS Ruta donde se guardaran los logs. Recomiendo cambiar por "/var/log/zm" (por default trae /tmp)

+ En la pestaña "Web"
WEB_RESIZE_CONSOLE Desmarcarlo

+ En la pestaña "Images"
OPT_CAMBOZOLA marcarlo
PATH_CAMBOZOLA cambozola.jar (donde fue guardado anteriormente)
STREAM_METHOD Dejar jpeg, aunque no se si haya diferencia si se cambia por "mpeg", pues cuando lo hice no note ninguna diferencia.
PATH_FFMPEG Dejar /usr/bin/ffmpeg


Creación de usuarios

+ En la pestaña "Users" (Usuarios). Para que aparezca esta pestaña debe marcarse la opción "OPT_USE_AUTH" desde la pestaña "System".
- Se modifica el password de admin dando clic en el nombre del usuario. Se recomienda no eliminar la cuenta admin al menos hasta que sea creada otra cuenta con todos los permisos.
- Se crean más cuentas de usuario. Pueden crearse usuarios con los permisos siguientes:
Lenguaje para esa cuenta de usuario en particular
Stream (permite ver video en vivo de las cámaras
Events (permite ver o modificar o eliminar eventos)
Control (permite controlar cámaras)
Monitors (permite ver y editar monitores)
System (determina si el usuario puede ver o modificar las configuraciones del sistema. Como la de usuarios o del sistema completo)
Ancho de banda
Restringir a determinados monitores


Configuración de monitores

Pueden configurarse varios monitores por cámara y cada monitor tiene su propia configuración. A continuación se explican las principales:
>> Pestaña General
+ Source Type: Indica el tipo de cámara. Si la cámara está conectada localmente por USB, hay que elegir "Local".
Function: Indica la manera en que actuará. La opciones son las siguientes.
Monitor.- Se usa para monitorizar una cámara sin que genere eventos (no graba nada)
Modect.- Detección de movimiento. Se analizan todas las imágenes y cuando se detecta movimiento se generan eventos.
Record.- Genera eventos de manera continua, grabando en todo momento haya o no detección de movimiento
Mocord.- Es la combinación de Modect y Record.
Nodect.- No detecta.

+ Enable: Se marca si se desea habilitar el monitor.
+ Linked Monitors: Permite seleccionar otros monitores. Puede usarse para forzar a todas las cámaras a grabar cuando en dicho monitor se detecte movimiento
+ Maximum FPS: Permite limitar el número máximo de fotos que se guardarán de dicha cámara aún cuando esta permita un FPS mayor. Esta opción permite aligerar la carga del servidor sobre todo cuando se tengan varias cámaras configuradas. ZoneMinder no puede modificar el stream mjpeg que le pasan las cámaras IP. Algunas cámaras IP permiten modificar dicho FPS directamente en su configuración. Para usar esta característica (FPS) debe usarse el método "jpeg" en lugar de "mjpeg" (En la consola de Zm: Options, Images, STREAM_METHOD).
+ Alarm Maximum FPS : Permite sobreescribir el "Maximum FPS" cuando algo ocurra (como detección de movimiento)

>> Pestaña Source
Las opciones variaran según el Tipo de Origen configurado en la pestaña General.

Para una cámara conectada localmente, las opciones serían:
En la pestaña General.- Source Type: Local. Function: Monitor o lo que desee
En la pestaña Source.- Device Path: /dev/video0 o el dispositivo según sea el caso. Capture Method: Video for Linux version 2. Device Format: PAL. Capture Palette: YUYV.

Puede ver la lista de Hardware soportado incluyendo cámaras IP con sus configuraciones especificas en esta página.

Para la cámara IP D-Link DCS-2102 (que no viene incluida en la lista y cuando quise agregarla no pude porque necesitaba loguearme y las veces que intente registrarme no pude hacerlo) la configuración es la siguiente para el protocolo RTSP:
Source Type: ffmpeg
Source Path: rtsp://usuario:password@IPCamara/play2.sdp

>> Pestaña Misc
+ Event Prefix: Prefijo del nombre de los eventos.
+ Section Length: longitud de los eventos en segundos. Es recomendable que el valor sea entre 300 y 900 segundos (5 y 15 min). Por default son 600 segundos (10 minutos)


Agregar o modificar zonas

Por cada monitor que se crea, se genera automáticamente una zona. Una zona sirve para indicar que zona (área) de la toma se utilizará para generar eventos. Se puede acceder o agregar zonas desde la consola principal de ZoneMinder en la columna "Zones".

+ Name: Etiqueta de la zona
+ Type:
Active: Es la que se usa más frecuentemente y es definida por default con los monitores recién creados. Indica que la zona accionará una alarma en cualquier evento que ocurra dentro de la zona (dentro de los puntos).
Inclusive: Este tipo de zona puede usarse para activar su alarma solo cuando otra zona activa ha activado su alarma. Por ejemplo, si se desea monitorizar un cuarto en el cual hay una puerta, puede usarse una zona "Active" que cubra el área de la puerta y otra zona "Inclusive" que cubra el resto del cuarto.
Exclusive: Las alarmas serán accionadas solamente en esta zona si no se han accionado ningunas alarmas ya en zonas activas.
Preclusive:
Inactive: Este tipo de zona es lo opuesto a la zona activa. En este tipo de zonas no se reportarán nunca las alarmas. Puede usarse para zonas que no se deseen supervisar.
+ Presets: contiene una lista predefinida de algunas configuraciones comunes de la zona.
+ Units: Detalla si los siguientes opciones de configuración serán en porcentaje o en pixeles. Es recomendable usar el porcentaje inicialmente hasta comprender.
+ Alarm Colour:
+ Alarm Check Method: AlarmPixels o FilteredPixels
+ Min/Maximum Pixel Threshold:
+ Filter Width/Height: Se recomienda un numero pequeño (3 o 5)
+ Zone Area:
+ Min/Maximum Alarmed Area: valor de porcentaje o de pixeles mínimos de cambios (que se deben igualar o superar) para que entre la alarma. El máximo no debe ser excedido o se cancela la alarma Un valor mínimo adecuado puede ser entre 10 o 30 si hay poca o mucha luz.
+ Min/Maximum Filtered Area:
+ Min/Maximum Blob Area
+ Min/Maximum Blobs


Ver monitores

Para ver lo que está ocurriendo en un monitor hay que dar clic en el nombre del monitor ubicado en la columna "Name" desde la consola de ZoneMinder. Se abrirá una ventana con el monitor y en la parte de abajo se listarán los últimos 10 eventos ocurridos en ese monitor.


Filtrado de eventos

- En la consola principal de ZoneMinder se muestran varias columnas en las cuales se muestran el total de eventos de los monitores filtrados por hora, día, semana y mes.
- En la consola principal hay un botón llamado "Filters" que al dar clic en él nos muestra una ventana en la cual podemos crear nuestros propios filtros o modificar los existentes. Por default viene un filtro que elimina los eventos sin archivar cuando el espacio en disco duro llegue al %85.
- Los filtros constan de una o más condiciones que de cumplirse se aplican las acciones configuradas (ejecutar un comando personalizado, archivar, crear un video y/o eliminar los eventos) a los eventos involucrados.
- Para crear un filtro basta con elegir una(s) condición(es), especificar un valor y elegir la(s) acción(es) a aplicar.
- Los filtros automatizados se ejecutan en Perl y se analizan por fecha, por ello es importante usar en los campos tipo fecha formatos compatibles con PHP y Perl. Un ejemplo valido en ambos métodos es usar '-3 day' o similar.
- Un tipo de filtro especial es "Disk Blocks" y "Disk Percent" que no están relacionados con los eventos pero si con la partición del disco duro donde están almacenados los eventos. Estos permiten especificar una cantidad de uso de disco duro en bloques o en porcentaje devuelto por el comando "df" (se refiere a cantidad de espacio del disco duro usado y no el libre).
- Para asegurarse de que se apliquen los cambios se recomienda reiniciar el servicio de ZoneMinder.

Ejemplo de un filtro que elimina eventos sin archivar que tengan más de 30 días de haber sido creados:
[ ] and [< less than> -30 day] (otra opción es la siguiente línea que cambia "day" por "days")
[ ] and [< less than> -30 days]
Limit to first 5 results only
Delete all matches

Antes de guardar o ejecutar un filtro es recomendable dar clic en el botón "Submit" para checar que eventos se ven afectados con el filtro para evitar cometer errores y eliminar eventos indeseados.


Ver eventos

Para acceder a los eventos se hace desde la consola principal de ZoneMinder dando clic en la columna que muestra el total de eventos del monitor deseado filtrado por hora, día, semana o mes. Se abrirá una ventana que lista los eventos de dicho monitor. En esta ventana hay un link llamado "Show Timeline" que abre una ventana nueva que muestra los eventos en una linea del tiempo en forma gráfica. Stills es útil si el stream no funciona o no está soportado o se desea acceder a una foto en particular.

Cuando se accede a un evento particular, en la ventana hay varias opciones que permiten cambiar de nombre al evento, eliminarlo, editarlo (comentar sobre el mismo), exportarlo (para ser descargado), archivarlo, acceder a los frames (fotos individuales), crear un video (en mpeg) del evento. También hay un link llamado "Stills" (fotos) que se diferencia de "Frames" en que muestra thumbnails de las imágenes individuales del evento y al darle clic se abre la imagen en su tamaño normal. En cambio Frames lista las fotos mostrando el tiempo en el que ocurrió.

Archivar un evento significa que será guardado y no se mostrará en los listados normales de eventos. Es útil para guardar eventos que son importantes o que se desean proteger para que no sean borrados con los filtros automáticos. Una vez que el evento es archivado no puede eliminarse o desarchivarse accidentalmente cuando se estén viendo los eventos no archivados.

La opción que genera videos usa el codificador ffmpeg y por default los videos tienen la misma duración que el evento: pero pueden ajustarse antes de generar el video. Una vez generado el video podrá verse directamente, descargarse al equipo local y eliminarse del servidor una vez que no se requiera. El proceso de generación del video MPEG puede tardar algunos minutos.


LOGS

Como ya se comentó, desde las opciones de consola de ZoneMinder en la opción PATH_LOGS se puede especificar la ruta donde se guardaran algunos logs. Sin embargo una gran cantidad de logs se guardan en el archivo "/var/log/messages", para separar los logs de Zoneminder hay que editar el archivo "/etc/sysctl.conf" y agregar al inicio del archivo las siguientes líneas:
# Save ZoneMinder messages to zm.log
local1.* /var/log/zm/zm.log


Esto guardará los logs de Zoneminder etiquetados con local1 en "/var/log/zm/zm.log". Sin embargo esto no garantiza que todos los mensajes de ZoneMinder vayan a zm.log pudiéndose escapar algo a "/var/log/messages".


Otra información interesante

Si apache se colgara después de cierto tiempo por la cantidad de conexiones que se levantan y se tuviera que reiniciar el servicio a cada rato, sería necesario modificar lo siguiente en el archivo "/usr/share/zoneminder/ajax/stream.php":
if ( $numSockets === false )
Por:
if ( $numSockets === false || $numSockets < 1 )


Configurar cámara D-Link DCS-2102

+ Protocolo: RTSP (por el puerto 554)
Source Type: ffmpeg
Source Path: rtsp://usuario:passwd@IP/play2.sdp

Si se tiene configurado un firewall en el equipo, hay que abrir los siguientes puertos para que funcione la cámara:
554 por tcp y udp
5000-5020 udp


FUENTE:

Documentación oficial de ZoneMinder

27 de enero de 2009

Configuración de impresoras en GNU/Linux

Aunque en la actualidad la gran mayoría de las impresoras son compatibles con GNU/Linux, es recomendable estar completamente seguro de ello y verificarlo antes de comprar una. Esto se puede comprobar en "http://www.linuxfoundation.org/en/OpenPrinting". Una vez que sabemos que es compatible y el driver que utiliza se procede a comprarla.

En este caso se va a configurar una impresora Laser Samsung ML-2240 con los drivers que vienen incluido en el CD de la impresora.

Configuración de la impresora localmente mediante su CD

A continuación los pasos:
- Instalar cups:
# aptitude install cups
- Insertar CD
- Montarlo (si no se monta automáticamente) y ubicarse en el directorio Linux:
# cd /media/cdrom0/Linux
- Iniciar la instalación:
# sh install.sh
- Seguir las instrucciones

- Una vez finalizado estará configurada la impresora. Al acceder con en el navegador a "http://localhost:631" se puede configurar y administrar la impresora de manera avanzada.


Configuración de la impresora localmente mediante CUPS

Cups (Common Unix Printing System) es una herramienta web (http://localhost:631) para la administración y configuración de impresoras permitiendo agregar, eliminar, configurar, compartir impresoras, administrar trabajos de impresión, entre muchas otras cosas. Es la herramienta principal para estos menesteres. Cuando se realicen las modificaciones pedirá el password de root del equipo para almacenar las modificaciones en "/etc/cups/cupsd.conf".

# aptitude install cups cups-client cups-common

Desde cups se puede agregar impresoras, pero antes de agregarla hay que instalar el paquete (si no esta instalado) que contiene el Driver o controlador. Si no se sabe el controlador que usa hay que averiguarlo en "http://www.linuxfoundation.org/en/OpenPrinting".

Para agregar una impresora mediante cups hay que acceder a "http://localhost:631" mediante un navegador, en el Menú "Administración" en la opción "Añadir impresora". Se elige un nombre (el más importante y será el usado por las aplicaciones para imprimir), ubicación (descripción de la ubicación) y descripción (de la impresora). Luego se elige el tipo de conexión (aparecerá automáticamente la impresora conectada con su conexión) pudiendo elegir AppSocket/HP jetDirect (protocolo usado por impresoras HP JetDirect), LPT1, USB, http, ipp (a través de otro servidor cups o usado por una Impresora con tarjeta de red), samba, entre otros. Se elige el controlador; Si no está el controlador en la lista se puede proporcionar el archivo ppd de la impresora obtenido del CD de la impresora o descargado de la web. Finalmente se configura la "URI de la conexión".


Configuración de impresoras compartidas

La compartición de impresoras se puede realizar de varias maneras. Aquí explico algunas.

Mediante cups (localhost:631) en el server y en el cliente

Se requiere instalar cups en el cliente y en el server:
# aptitude install cups

- En el server de impresión (donde esta conectada la impresora) en la pestaña "Administración" se habilita la opción "Compartir impresoras públicas conectadas a este sistema". Desde la pestaña "Impresoras", seleccionando la impresora instalada se habilita la opción "Publicar Impresora".
- En el cliente en la pestaña "Administración" se habilita la opción "Mostrar impresoras compartidas por otros sistemas", se guardan los cambios y en unos momentos aparecerá configurada la impresora pudiéndose corroborar desde la pestaña "Impresoras". La impresora tendrá un "URI de la conexión" del tipo "ipp://192.168.1.1:631/printers/NombreImpresora"

Mediante samba

- En el server instalar samba (aptitude install samba) y en "/etc/samba/smb.conf" en la sección printers ponemos el parámetro "public" como "yes" para compartir la impresora sin necesidad de password o "no" para compartir con previa autenticación:
[printers]
comment = Impresoras
browseable = no
path = /var/spool/samba
printable = yes
public = yes
create mask = 0700


Para autenticarse con usuario, se agrega el usuario sin shell al sistema, se le asigna password en el sistema y para samba:
# useradd -s /sbin/nologin usuario
# passwd usuario
# smbpasswd -a usuario


- En los clientes Unix a través de cups se agrega una impresora cuyo tipo de conexión sea "samba" y como URI de la conexión "smb://UsuarioSmb:password@equipo_con_la_impresora/nombreImpresora". Para un dominio el URI de la conexión es "smb://UsuarioSmb:password@DOMINIO/equipo_con_la_impresora/nombreImpresora"

- En un cliente WindowsXP se accede a "\\192.168.1.1\nombreImpresora", se le da doble clic a la impresora y se siguen las instrucciones en pantalla para instalarla. Si el parámetro "public" esta como "no", cuando quiera imprimir primeramente deberá loguearse con el usuario creado accediendo a "\\192.168.1.1" y luego mandar imprimir.

Configurar impresoras con su propia tarjeta de red e IP
Se agrega en el cliente la impresora a través de CUPS eligiendo como protocolo "IPP" y como tipo de URI de conexión "ipp://192.168.1.1/nombreImpresora" o "http://192.168.1.1:631/nombreImpresora".


Impresoras HP
Si la impresora a configurar es HP hay que instalar los siguientes paquetes:
- hp-setup (herramienta de configuración)
- hplip (drivers)
- hpijs (drivers)

Luego, desde consola como administrador, ejecutar:
# hp-setup

Seguir las instrucciones en pantalla.


Otros paquetes o aplicaciones relacionados con impresoras

foomatic
Foomatic es un conjunto de controladores y herramientas de impresión para muchas impresoras. Estos controladores pueden usarse para agregar una impresora desde Cups, pero foomatic trae una aplicación gráfica llamada foomatic-gui (para Gnome) que permite agregar y administrar impresoras.

kdeprint
Es un administrador de impresoras para KDE parecido a foomatic-gui pero con más opciones.

ghostscript
Trae una gran cantidad de controladores de impresoras.

gutenprint
Trae controladores para muchas impresoras. Estos controladores están especialmente diseñados para realizar impresiones con GIMP obteniendo muy buenos resultados en las impresiones de imágenes.

printconf
Configura automáticamente impresoras USB y paralelo con CUPS


NOTA: Las impresoras agregadas con cualquier aplicación serán visibles desde cups.


Enlaces de interés
http://www.cups.org
http://www.linuxfoundation.org/en/OpenPrinting (antes linuxprinting.org)
http://localhost:631
http://www.scribd.com/doc/2371017/Todo-Linux-78-Iniciacion

9 de septiembre de 2008

Cambio de particiones


Si por alguna circunstancia te ves en la necesidad de modificar, agregar, eliminar o cambiar el orden de las particiones del disco duro afectando la o las particiones donde se encuentra instalado GNU/Linux es necesario editar unos archivos para que el sistema funcione.

Los archivos a editar son los siguientes:
/etc/fstab
/boot/grub/menu.lst
/etc/uswsusp.conf

En estos archivos hay que modificar la partición utilizada anteriormente por la actual. Estos cambios se pueden realizar con un live CD como knoppix o Ubuntu montando la partición donde se encuentra instalado.

Si después de realizar estos cambios no es capaz de arrancar el sistema, puede ser necesario reinstalar grub. Esto se puede realizar de la siguiente manera:

- Arrancar con un live cd (knoppix es una buena opción)
- Montar la partición donde esta instalado GNU/Linux
# mount /dev/sdax /mnt/sdax
sdax es la partición donde se encuentra instalado GNU/Linux. Si tenemos dudas donde se encuentra instalado, podemos ejecutar:
# fdisk -l

- Montar /dev dentro del punto de montaje que posteriormente se creara una jaula
mount -o bind /dev /mnt/sdax/dev

- Crear la jaula chroot en el punto de montaje
# chroot /mnt/sdax

- Ejecutar alguno de los siguientes comandos según lo deseado (actualizar o reinstalar)
# update-grub
# grub-install /dev/sda
- Salir de la jaula
# exit

- Reiniciar

Si en el arranque aparece un mensaje de error como el siguiente:
Error:
Could not stat the resume device file "/dev/sdax"
Please type in the full path name to try again or press Enter to boot the system

Se resuelve con el siguiente comando:
# update-initramfs -u -k all

7 de agosto de 2008

Ejecutar aplicaciones de windows en GNU/Linux con wine


Introducción
Wine es una reimplementación de la API de Win16 y Win32 para sistemas operativos basados en Unix. Aunque comúnmente se conoce como emulador de Windows.

Nota: Todo (excepto la instalación) se hace como usuario normal sin privilegios.

Instalación
# aptitude install wine wine-utils

Lo anterior instalara wine con todas sus dependencias.

Configuración
Ejecutar como usuario normal:
$ winecfg

Lo anterior nos abrirá una ventana de configuración, en donde seleccionaremos "Windows ME" (Suele funcionar mejor que WinXP) como versión a imitar.

Instalar aplicaciones de Windows
Ejecutar como usuario normal:
$ winefile

Lo anterior nos abrirá una aplicación similar al "Explorador de Windows". Hay que desplazarnos a la ruta "/home/usuario/.wine/driver_c/" e instalar las aplicaciones deseadas con el clásico doble clic seleccionando como ruta de instalación la carpeta predeterminada que por default suele ser: "C:\Archivos de programa\Nombre Aplicación"

También puedes instalar las aplicaciones de Windows desde linea de comandos de la siguiente manera:
$ wine /ruta/de/aplicacion/a/instalar

Ejecutar aplicaciones win32

Una vez instalada una aplicación, se creará un menú llamado Wine dentro del menú Aplicaciones. Para ejecutar la aplicación instalada hay que dirigirse a dicha ubicación.

Otra manera de ejecutar las aplicaciones instaladas mediante Wine es ejecutando el comando winefile, luego ubicarse en la ruta de instalación de la aplicación que se desea ejecutar y abrirla dando doble clic. Por lo general la ruta es "/home/usuario/.wine/driver_c/Archivos de programa/Nombre Aplicación"

Otra manera de ejecutar las aplicaciones win32 es la siguiente:
$ wine /home/usuario/.wine/drive_c/Archivos\ de\ programa/Aplicacion.exe

Crear un lanzador (acceso directo) en el escritorio
Por default, suele crearse un lanzador de la aplicación instalada en el escritorio, pero si no fuese el caso se puede crear.

Para crear un lanzador en el escritorio, se pulsa botón derecho del mouse, se selecciona "crear un Lanzador". Se abrirá una ventana en la cual hay que especificar algunos datos. Por ejemplo para crear un lanzador del Ares la información seria la siguiente:

* Nombre: Ares
* Comentario: Algún comentario
* Comando: wine "C:\Archivos de programa\Ares\Ares.exe"
* Tipo: Aplicación
* Icono: Seleccionar un bonito icono

Listo ahora ya podemos instalar y ejecutar muchas aplicaciones que solo están disponibles para Windows porque sus desarrolladores no sacan versiones para Linux. Algunas de las aplicaciones que se pueden instalar y que funcionan correctamente son:
- Ares
- Winrar
- Dreamweaber (aunque tenemos BlueFish, NVU, OpenOffice, etc)
- Corel Draw
- Adobe Photoshop (recuerden que tenemos a GIMP)
- Internet Explorer (Solo para probar que nuestra web se ve bien con el IE)
- Etc

6 de agosto de 2008

Programar la ejecución de aplicaciones (cron)

Para programar la ejecución de un comando o una aplicación se utiliza el demonio cron/crond que se inicia automáticamente con el sistema. A este proceso se le conoce como cron.

Para agregar, quitar o modificar tareas hay que editar el crontab. Esto se hace con "crontab -e" que abrirá un editor en donde hay que agregar el cron (tareas a programar).

El cron consta de la siguiente sintaxis:

Minutos Horas DiasMes Mes DiaSem Usuario Comando/Archivo_A_ejecutar

Donde:
  • Minutos: entre 0 y 59
  • Horas: entre 0 y 23
  • DiasMes (Días del mes): entre 1 y 31
  • Mes: entre 1 y 12 (se pueden poner las tres primeras letras del nombre del mes en inglés)
  • DiaSem (Días de la semana): entre 0 y 7 (0 y 7 corresponden al domingo, se pueden usar las tres primeras letras del nombre del día en inglés)
  • Usuario: Indica con que usuario se ejecutara tal acción. Se omite si el usuario que agrega el cron es un usuario diferente de root.
Si no se coloca alguno de los primeros cinco indicadores se pone el carácter * en su lugar.
Para separar indicadores de un mismo tipo se utiliza la coma (,)
Para indicar rangos se usa el signo -
Para variar el incremento del rango a n se puede colocar /n después del rango

Ejemplo de un cron:
30 22 * * * /ruta/del/archivo/a/ejecutar

Lo anterior indica que se ejecutara el archivo "/ruta/del/archivo/a/ejecutar" a las 10:30 PM todos los días de todos los meses.

Para eliminar un cron simplemente se comenta o se elimina la linea del cron.


Cron avanzado

Lo descrito anteriormente sirve para que un usuario diferente de root (con sus limitaciones) agregue o modifique un cron.

El archivo /etc/crontab es el archivo de configuración principal del cron en el que se configuran directorios cuyos archivos o scripts que contengan se ejecutaran en el momento especificado. Estos cron se ejecutan independientemente de que no este ningún usuario logueado. En /etc/crontab también se pueden agregar cron específicos, pero es recomendable agregarlos en los archivos ubicados en los directorios configurados en este archivo. Los directorios configurados en /etc/crontab son las siguientes:

/etc/cron.hourly/ Directorio cuyos archivos que contiene se ejecutaran cada hora durante todos los días, el minuto se especifica en "/etc/crontab"

/etc/cron.daily/ Directorio cuyos archivos que contiene se ejecutaran diariamente a la hora y minuto especificado en el archivo "/etc/crontab"

/etc/cron.weekly/ Directorio cuyos archivos que contiene se ejecutaran cada semana el día de la semana, hora y minuto especificado en el archivo "/etc/crontab"

/etc/cron.monthly/ Directorio cuyos archivos que contiene se ejecutaran cada mes el día del mes, hora y minuto especificado en el archivo "/etc/crontab"

Nota: Los archivos que se encuentren dentro de estos directorios pueden contener un comando, pueden contener el código que se va a ejecutar o puede indicar que se ejecute otro archivo. Ejemplo del contenido de un archivo ubicado en alguna anterior:

## No es necesario especificar el tiempo en el cual se ejecutara,
## ya se especifico en /etc/crontab
## Indica que se ejecute el archivo "/root/respaldos.sh"
## Tambien puede ser: /root/./respaldos.sh
/root/respaldos.sh

/etc/cron.d/ Directorio cuyos archivos que contiene se ejecutan según lo especificado en dichos archivos. En este directorios se configuran cron personalizados. Ejemplo del contenido de un archivo en este directorio:

01 06,15 * * * root /etc/init.d/script_a_ejecutar.sh

Lo anterior significa que se ejecutara por root el archivo "script_a_ejecutar.sh" al minuto 1 de las 6 y 15 horas, todos los días del mes, durante todos los meses, todos los días de la semana.

Nota: Todos los archivos deben tener permiso de ejecución para que se ejecute el cron.


Recomendación
  • Si desea ejecutar una aplicación cada hora, diaria, semanal o mensual cree un archivo en el directorio "cron.hourly", "cron.daily", "cron.weekly" o "cron.monthly" según lo deseado.
  • Si desea ejecutar una aplicación que se ejecute en un tiempo especificado cree un archivo en el directorio "cron.d".

17 de julio de 2008

Espacio en disco


El comando df muestra el espacio libre de una partición.

Sintaxis:
$ df -h dispositivo
$ df -h ruta


La opción -h muestra el espacio en KB, MB o GB según sea el caso. Se puede usar una ruta del sistema de archivos para saber el espacio disponible en la partición donde se encuentra ese directorio.

Ejemplos:
$ df -h /dev/sda1
$ df -h /home


El comando du muestra el tamaño de un archivo o carpeta
$ du -h /ruta/del/directorio

16 de julio de 2008

Buscar archivos desde la consola


Para buscar un archivo se puede usar el comando locale o el comando find. Si el archivo buscado tiene más de un día de creado la manera más rápida (instantánea) es usando el comando locate:
$ locate nombre_archivo

Con el comando find se busca de la siguiente manera:
$ find /ruta/donde/deseas/buscar -name nombre_archivo

Se pueden usar comodines como el * si se conoce parte del nombre.

15 de julio de 2008

Matar un proceso y/o aplicación


Que GNU/Linux sea muy estable no quiere decir que nunca se cuelgue alguna aplicación. Por ello, es importante saber que hacer en esos casos.

Cada aplicación que se ejecute genera un proceso, mismo que hay que matar para descolgar la aplicación que se colgó. Los comandos kill y killall sirven para matar estos procesos. Para poder matar un proceso, primero, es necesario conocer el número de proceso que generó la aplicación (comando ps) .

Ejemplo: Se colgó Iceweasel. Para proceder a matar el proceso que se colgó hacemos lo siguiente:
$ ps aux

Nos mostrará una columna llamada PID y otra "COMMAND". Pues en la columna COMMAND buscamos Iceweasel. Una vez que se encontró, en esa misma fila se checa el número de proceso (columna PID)

Luego para matar el proceso se ejecuta:
$ kill num_proceso

Si el proceso no se pudo matar se usa el parámetro -9 :
$ kill -9 num_proceso

Para matar todos los procesos de una aplicación podemos ejecutar:
$ killall nombre_proceso

Donde nombre_proceso es el nombre del proceso. En este caso sería Iceweacel.

Si el equipo se encuentra muy trabado, y no se puede abrir una terminal desde el entorno gráfico hay que dirigirnos a una tty con Ctrl + Alt + F1-F6 y desde allí ejecutar las acciones anteriores.

Si no es posible acceder a las ttys y no se puede destrabar el equipo, al menos se puede apagar de manera correcta presionando la combinación de teclas siguientes:
Alt + Impr Pant + RSEIUB

13 de julio de 2008

Grabar una imagen nrg

El formato nrg (del nero) es un formato que no es estándar. Para poder grabar una imagen con este formato primeramente hay que convertirla a iso. Esto se hace con el comando nrg2iso. Si no lo tenemos instalado, pues se instala:

# aptitude install nrg2iso

Luego, para convertir la imagen ejecutamos desde consola:

$ nrg2iso /ruta/donde/esta/la/imagen.nrg /ruta/donde/quieras/guardar/la/imagen.iso

12 de julio de 2008

Página del manual de un comando o aplicación

GNU/Linux se destaca, entre muchas cosas, por su documentación. Cada comando y cada aplicación están documentadas. Por lo que, en caso de tener dudas o de no entender el funcionamiento de un comando o aplicación la mejor opción es, sin duda, leer su correspondiente manual; que se realizó para cumplir ese propósito.

Por ejemplo, si se tiene dudas sobre el comando ls. Ejecutamos desde consola: man nombre-del-comando. Ejemplo:

$ man ls

Esto mostrará la página del manual del comando ls. Para salir de la página del manual presione q.

Si no se encuentran traducidas las páginas de manuales, podemos instalar los siguientes paquetes para traducirlos:

# aptitude install manpages-es manpages-es-extra

Lo anterior traducirá un gran número de manuales pero no todos.

11 de julio de 2008

¿Que antivirus instalar en GNU/Linux?

Esta es la pregunta que todo recién llegado al mundo del software Libre se hace. Es de entenderse pues en Windows no tener instalado un antivirus es mortal.

GNU/Linux es un Sistema Operativo seguro que no requiere de antivirus, pues los virus no forman parte de este Sistema Operativo. Aunque existen antivirus para GNU/Linux, estos son usados para detectar virus de Windows, y estos no afectan a GNU/Linux. El único virus peligroso en GNU/Linux es el usuario mismo.

Sin embargo, tener instalado un antivirus en GNU/Linux puede resultar útil para eliminar los virus de los dispositivos USB. Pues estos, los introducimos en varias computadoras y en estos días (por desgracia) es imposible no toparse con una computadora con Windows instalado. Para estos casos podemos usar clamtk, que es una interfaz gráfica del antivirus clamav.

Desde consola ejecuta:

# aptitude install clamtk

Esto instalará clamtk con todas sus dependencias.

1 de julio de 2008

¿Como conseguir ayuda sobre de GNU/Linux?

Cuando tenga dudas o no entienda el funcionamiento de una aplicación, siempre hay muchas opciones para solventar esa situación. A continuación te presentamos unos consejos de como buscar información para que resuelva sus dudas de la mejor manera posible:
  1. Busca información en los manuales de la aplicación con la que presenta problemas. En "Ayuda" en la barra de herramientas de la aplicación; desde consola, ejecute man comando. Donde comando es el nombre de la aplicación con la que presenta problemas.
  2. Vaya al sitio oficial de la aplicación, seguramente existe una documentación muy completa, manuales, faq o foros.
  3. Utiliza buscadores como google.
  4. Antes de realizar una pregunta en un foro agote todas las opciones anteriores, probablemente su problema ya se le presento a otro usuario y publicó la solución.
Si va a realizar una pregunta en algún foro tome en cuenta las siguientes recomendaciones:
  • Sea amable y educado, recuerde que en la mayoría de los foros los usuarios ayudan desinteresadamente.
  • Proporcione la mayor cantidad de información posible. De ser posible indique a detalle el error que se le presenta.
  • Indique los pasos que ha seguido para tratar de solucionar el problema.
  • Si esta siguiendo alguna guía, indique cual.
  • Sea paciente, la mayoría de los usuarios que participan en los foros tienen sus ocupaciones y ayudan en el foro en sus ratos libre.
Existen muchos foros en castellano donde puede platear y resolver sus dudas sobre Debian, Ubuntu o software libre. Aquí algunos:
EsDebian.org
Ubuntu-es.org
Kubuntu-es.org

30 de junio de 2008

¿Porque Usar GNU/Linux?

Existen muchas razones por las cuales es recomendable usar GNU/Linux, pero las principales se listan a continuación:
  • GNU/Linux es un Sistema Operativo completamente estable y seguro.
  • GNU/Linux no requiere de antivirus, pues, el término virus no existe en GNU/Linux. Los virus de otros sistemas no le hacen daño alguno a GNU/Linux. Olvidate de antiVirus, antiSpyware y otras hierbas.
  • No es necesario andar buscando por Internet aplicaciones piratas de dudosa fiabilidad. GNU/Linux cuenta con muchas aplicaciones para hacer casi cualquier cosa, solo hay que dar unos pocos clics y las aplicaciones se descargan de Internet y se instalan automáticamente.
  • Olvidate de cracks, seriales o claves de aplicaciones. En GNU/Linux no son necesarios.
  • Olvidate de formatear el equipo cada dos o tres meses. GNU/Linux no se alenta con el paso del tiempo, tampoco se alenta si le instalas grandes cantidades de aplicaciones. GNU/Linux funciona de manera rápida tenga un día o 2 años de haberse instalado.
  • Olvidate de la defragmentación del disco duro, en GNU/Linux no es necesario.
  • En GNU/Linux no es necesario reiniciar después de instalar aplicaciones o configurar un dispositivo. Rara vez nos pide reiniciar, solo cuando se actualiza el kernel o se realizan configuraciones que afecten la seguridad.
  • GNU/Linux es Software Libre y por tanto, se puede descargar libre y gratuitamente de Internet. Por lo que no es necesario gastar grandes cantidades de dinero en Software.
  • Puedes copiar o modificar el código fuente para adecuar las aplicaciones a tus gustos y/o necesidades.
Si estas razones no te han convencido, pues, sigue gastando dinero o viviendo en la ilegalidad, conviviendo con virus y demás bichos, sigue formateando a cada rato por la lentitud de tu sistema y sigue siendo espiado por esa compañía.

28 de junio de 2008

Distribuciones GNU/Linux

Una distribución GNU/Linux (abreviada con frecuencia distro) es una recopilación de aplicaciones que permiten brindar mejoras para instalar fácilmente un sistema operativo basado en programas de muchas fuentes y licencias de uso, que reciben la denominación convencional de GNU/Linux.

Existen muchas distribuciones cada una enfocada a un determinado tipo de usuarios. La elección de una distribución depende de las necesidades del usuario y de gustos personales.

La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software. Cada distribución puede incluir cualquier cantidad de software adicional, como algunos que facilitan la instalación del sistema y una enorme variedad de aplicaciones, entre ellos, entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera.

En este blog encontrará información, principalmente, de la distribución Debian (y derivadas de Debian). Debian por tener con el mejor sistema de gestión de paquetes, por contar con la mayor recopilación de paquetes listos para instalar (mas de 18,000 paquetes en su rama estable y mas de 20,000 en pruebas y sid), por ser la distribución más libre, porque esta completamente hecha por su comunidad de usuarios y desarrolladores, porque no interviene ni depende de ninguna empresa, porque a nuestro juicio es la más estable y es la mejor. Además de todo lo anterior, es la distribución con mas hijos(as), es decir, tiene la mayor cantidad de distribuciones basadas en ella.

Como ya se comento, existen muchos sabores de GNU/Linux. A continuación se muestran las diferentes distribuciones surgidas a lo largo del tiempo.

Haga clic en la imagen para agrandar

27 de junio de 2008

Historia de GNU/Linux

En los primeros años 70, el software se regalaba. Las máquinas eran tan caras, que los programas no se cobraban, y por su puesto se podían copiar y distribuir sin ningún problema. Pero en el momento en que se eleva el número de usuarios, y los ordenadores bajan sus precios, todo cambió, y se inventó "el modelo privativo" según el cual el software no se podía copiar, no se podía modificar, ni conocer cómo funcionaba y empezó a tener unos precios muy elevados, los cuales había que volver a pagar cada año o con cada nueva versión, por un producto que ya estaba confeccionado. "Fue la mayor estafa de la historia", asegura Marchesi, "los programas no se desgastan, no se rompen".

Así, en los 80, Richard Stallman, que por entonces trabajaba en los famosos laboratorios del Massachusetts Institute (MIT), decidió que no le gustaban los tintes que estaban tomando la industria y se decidió a definir lo que consideraba que eran los derechos fundamentales de las personas en torno a la forma de usar el software. Esta fue la semilla de un movimiento mundial, que se puso a trabajar para crear un sistema operativo que respondiese estos principios.

La base fue Unix y poco a poco fueron cambiando todos sus componentes. Cuando un al Proyecto GNU sólo le faltaba el núcleo (estaba escribiendo uno llamado Hurd) un estudiante finlandés llamado Linus Tovald publicó con una licencia libre (GPL), lo que hoy se conoce como Linux, y que se acabó adoptando masivamente.

Desde entonces, el movimiento del software libre no ha hecho más que crecer. Han surgido varias iniciativas para poner interfaces gráficos, y han surgido varias empresas en torno a este sistema operativo como Red Hat o Suse Linux (ahora Novell), aunque los más puristas no los consideran libres. Muchas instituciones públicas y políticas se han sumado, pero realmente GNU/Linux sigue mantenido por miles de colaboradores anónimos que dejan de dormir para mantener el sistema, sin recibir ninguna remuneración por su trabajo.

Aquí podemos ver algunos de los desarrolladores del kernel Linux:

A continuación se presenta un gran documental traducido al castellano por una televisora española del documental producido originalmente por finlandeses. En el vídeo se presenta la historia de GNU/Linux y se entrevistan a varias personalidades del Software Libre. Tiene una duración de 51 minutos y 16 segundos.










Fuente: Elpais.com