miércoles, 23 de mayo de 2012

VirtualBox y el terminal




Es habitual tener instalado VirtualBox en alguna distribución GNU/Linux, por ejemplo Ubuntu o Debian, que son las que suelo utilizar y necesitar hacer alguna cosa utilizando un terminal. Para ello tenemos diferentes comandos quye pueden ser utilies:

1.- vboxdrv

A veces sucede que después de una actualización del kernel, pueda saltar un error que imposibilita el acceso a nuestra máquina virtual. Si tenemos el módulo "dkms" instalado tan sólo necesitaremos abrir un terminal (Ctrl+Alt T) y ejecutar:
sudo /etc/init.d/vboxdrv setup


2.-  VBoxManage

Con VBoxManage vamos a ver un par de comandos útiles.

a) Clonar máquina virtual:

Abrimos terminal y ejecutamos:
VBoxManage clonevdi /pathOrigen/nomMáquinaOrigen.vdi  /pathDestino/nomMáquinaDestino.vdi

b) Iniciar máquina desde terminal:

Abrimos terminal y ejecutamos:
VBoxManage startvm "nomMáquina"

También podemos crear un pequeño script o un simple lanzador que se ejecute al inicio y entraríamos directamente desde una sesión a un máquina virtual determinada. Si además queremos que el terminal se cierre, añadiremos al final de la comanda: && exit  y listo.


domingo, 6 de mayo de 2012

Smart TV y DLNA

Cada vez más, nos vamos acercando a una nueva forma de ver la televisión y esta como dispositivo físico está empezando a evolucionar, ya no sólo cuenta con conexiones HDMI o con resoluciones de 1080, sino que además incorporan wifi y pequeñas aplicaciones integradas de acceso a la televisión a la carta, que por que no decirlo, es una buena opción que incorporan las cadenas televisivas pero que si puedes verla desde el sofá siempre será más cómodo que dsde el pc.

A partir de aquí nos encontramos con sistemas como el que ofrece LG o Samsung en sus Smart TV, (así como muchísimas más compañías), el sistema de compartición de contenidos DLNA (Digital Living Network Alliance) basado en parte, en el protocolo UPnP que nos permite hacer streaming vía wifi en nuestra red doméstica de aquellos contenidos multimedia almacenados en el pc, tablet o el móvil, hacia la TV.

Una de las aplicaciones que nos permiten conectar o acceder a estos sistemas es AllShare, en el caso de Samsung, que además ofrece un programa gratuito para realizar dicho streaming, lamentablemente sólo funciona en sistemas basados en Windows, así que estuve probando algunos media servers que fuesen libres y funcionasen en sistemas GNU/Linux, como serviio, MediaTomb i Minidlna.

Al final, este último fue el que me dio mejores resultados, en mi caso. Tan sólo hay que configurar el archivo /etc/minidlna.conf del que dejo mi archivo de configuración.

# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200
# network interfaces to serve, comma delimited
#network_interface=eth0
# set this to the directory you want scanned.
# * if have multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to a specific content type, you
#   can prepend the type, followed by a comma, to the directory:
#   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
#   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
#   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
# Use A, P, and V to restrict media 'type' in directory
media_dir=A,/media/compartida/Musica
media_dir=P,/media/
compartida/Imagen
media_dir=V,/media/
compartida/Videos
# set this if you want to customize the name that shows up on your clients
friendly_name=LinuxServer

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
db_dir=/var/cache/minidlna
# set this if you would like to specify the directory where you want MiniDLNA to store its log file
log_dir=/var/log

# set this to change the verbosity of the information that is logged
# each section can use a different level: off, fatal, error, warn, info, or debug
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
enable_tivo=no

# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
#   which may hurt JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

# default presentation url is http address on port 80
#presentation_url=http://www.mylan/index.php
presentation_url=http://localhost:48200

# notify interval in seconds. default is 895 seconds.
notify_interval=900

# serial and model number the daemon will report to clients
# in its XML description
serial=12345678
model_number=1

# specify the path to the MiniSSDPd socket
#minissdpdsocket=/var/run/minissdpd.sock

# use different container as root of the tree
# possible values:
#   + "." - use standard container (this is the default)
#   + "B" - "Browse Directory"
#   + "M" - "Music"
#   + "V" - "Video"
#   + "P" - "Pictures"
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#root_container=.

Sólo debemos tener cuidado a nivel de permisos con las carpetas y todo debería funcionar sin problemas. Para arrancarlo como servició, tenemos un script que deberíamos añadir  y que lo obtenemos de la misma página del proyecto.

#!/bin/sh
# chkconfig: 345 99 10
# description: Startup/shutdown script for MiniDLNA daemon
#
# Based on the MiniUPnPd script by Thomas Bernard
# Modified for MiniDLNA by Justin Maggard
# Status function added by Igor Drobot
#
### BEGIN INIT INFO
# Provides:          minidlna
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: DLNA/UPnP-AV media server
### END INIT INFO

MINIDLNA=/usr/sbin/minidlna
PIDFILE=/var/run/minidlna.pid
CONF=/etc/minidlna.conf
ARGS="-f $CONF"

test -f $MINIDLNA || exit 0

. /lib/lsb/init-functions

case "$1" in
start)  log_daemon_msg "Starting minidlna" "minidlna"
        start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $MINIDLNA -- $ARGS $LSBNAMES
        log_end_msg $?
        ;;
stop)   log_daemon_msg "Stopping minidlna" "minidlna"
        start-stop-daemon --stop --quiet --pidfile $PIDFILE
        log_end_msg $?
        ;;
restart|reload|force-reload)
        log_daemon_msg "Restarting minidlna" "minidlna"
        start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE
        start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $MINIDLNA -- $ARGS $LSBNAMES
        log_end_msg $?
        ;;
status)
        status_of_proc -p $PIDFILE $MINIDLNA minidlna && exit 0 || exit $?
        ;;
*)      log_action_msg "Usage: /etc/init.d/minidlna {start|stop|restart|reload|force-reload|status}"
        exit 2
        ;;
esac
exit 0

Con esta versión además incluimos la opción de consulta de estado o status.

Para añadirlo manualmente como servicio, sólo debemos incluirlo en /etc/init.d/ y darle permisos.
sudo chmod a+x /etc/init.d/minidlna

Ahora hacemos que se funcione en los diferentes niveles de ejecución:
sudo update-rc.d minidlna defaults

La linea anterior también podría contener enable | disable | remove, para activar, desactivar o eliminar dicha ejecución del servicio.

Para activar el servidor utilizaremos:
sudo service minidlna start

Siendo stop | restart | status otras de las opciones disponibles.

Y por último para actualizar la base de datos de contenidos, al añadir nuevos elementos multimedia:
sudo /usr/sbin/minidlna -f /etc/minidlna.conf -R -d


saludos



Clonaje de disco a dispositivo externo

Una utilidad muy potente que nos permite hacer imágenes de disco o CD/DVD es dd, pero además nos permite hacer una copia idéntica y funcional de nuestro sistema en un disco externo, del que además podemos arrancar y trabajar como si en nuestro propio pc lo estuviésemos haciendo.

Tan sólo debemos utilizar un: # fdisk -l para determinar que unidad queremos clonar o unidad origen (if) y unidad destino (of)

El comando es el siguiente:

sudo dd if=/dev/sda of=/dev/sdh bs=4096 conv=notrunc,noerror

Dependiendo del tamaño de disco y la velocidad, el tiempo puede ser considerable, por ejemplo un disco de 500 GB con cuatro particiones clonado a otro disco de 500 GB USB 2.0 tardó unas cuatro horas, en mi máquina.

saludos

miércoles, 27 de abril de 2011

Perfil de usuario en Windows XP

Hace poco me sucedió en un equipo con Windows XP, que el usuario principal del sistema (NO el usuario "administrador", aunque si con esos permisos), utilizaba un nombre diferente al que debía tener. Imagínemos por ejemplo una instalación de sistema por otra persona, un equipo nuevo con sistema preinstalado, etc..

El caso es que el usuario de nombre 'CORREO' se debia llamar, por ejemplo, 'NuevoUsuario'. 

Cómo hacemos para cambiar no sólo su nombre, sino su carpeta, programas, permisos, etc.. en Windows XP?

Lo más sencillo es lo siguiente:

1.- Entramos en una sesión como usuario administrador.

2.- Creamos un nuevo usuario con los permisos que queremos (en este caso, con permisos de administrador) y de nombre "NuevoUsuario" y entramos en una primera sesión con ese usuario para que se cree el perfil inicial, carpetas, accesos, registro, etc..


3.- Entramos nuevamente en una sesión como administrador y nos vamos al icono "Mi PC" haciendo clic con el botón derecho. Pinchamos en Propiedades / Opciones avanzadas y vamos al botón Configuración en la ficha central de Perfiles de Usuario.


4.- En este momento se abre una ventana con los usuarios existentes en el sistema. En nuestro caso, además del "administrador", tenemos al usuario "Correo" y al usuario "NuevoUsuario" que acabamos de crear hace unos minutos. Seleccionamos el usuario del que queremos heredar su perfil o dicho de otra forma, el que "clonaremos". Pinchamos en el botón, "Copiar a" y buscaremos el nombre del usuario al que vamos a transferir ese nuevo perfil. También seleccionaremos en la ficha "Está permitido usar", el botón Cambiar, para indicar ahí también el nombre del usuario "NuevoUsuario" que va a heredar el perfil.



5.- Una vez hecho esto (tardará un poco, en función del tamaño del perfil y la velocidad del PC) podremos reiniciar máquina y entrar con el NuevoUsuario viendo como este ya cuenta con el perfil heredado.

6.- A partir de aquí, una vez que comprobemos que todo funciona correctamente y todos los datos están a salvo, podemos acceder de nuevo a la ficha de perfiles de usuario de la segunda imagen, seleccionar el usuario antiguo en nuestro ejemplo de nombre, "Correo" y eliminarlo totalmente.
NOTA: Antes de probar cualquier cosa de este tipo es imprescindible tener todos los datos a salvo, eso que se llama copia de seguridad y que siempre brilla por su ausencia, cuando se necesita. A mi me ha funcionado perfectamente, pero no hay que olvidarse nunca de Mr Murphy.

salu2

miércoles, 8 de diciembre de 2010

Ubuntu 10.10 migración fallida

Creo que es desde la versión 6.04 que he ido pasando versión tras versión en Ubuntu, actualizando sin sorpresas, pero en esta última 10.10 y después de llevar varios meses como estable intenté actualizar pero al final tuve que regresar a la 10.04

Lo primero que hice fue una actualización tradicional, cambiando el soporte de larga duración por el normal en las preferencias de actualización de orígenes de software, dentro del gestor de actualizaciones.
















Aparentemente todo había ido bien, bueno había que hacer algunos ajustes, pero de pronto noté algunos problemas, la mayoría relacionados con la gráfica, una Nvidia GeForce 8800 GT, parece que los drivers estaban dando problemas. Algún problema relacionado con K3B y la búsqueda de las unidades, etc.. pero el colmo fue cuando al cabo de cuatro o cinco horas con el equipo encendido y sin prácticamente ninguna aplicación corriendo, el rendimiento empezaba a bajar de forma alarmante, hasta el punto de que operaciones de segundos se transformaban en bastantes minutos...

El rendimiento general era pésimo, más pesado de lo normal en general y al cabo de las horas era como si el equipo estuviese exhausto, agotado.
Como Ubuntu lo tengo instalado utilizando todo un disco para el y de la forma siguiente:

Sda1 --> /Boot
Sda2 --> Swap
Sda3--> /
Sda4--> /home

Hice una instalación limpia de Ubuntu 10.10 (32 bits) seleccionando las mismas particiones para la misma finalidad y formateándo todo excepto la /home (bueno la swap si quieres que la cree de nuevo la tienes que eliminar y volver a repetir el procedimiento, aunque no es necesario). La ventaja de hacer esto es que si tu /home no la marcas para formatear y creas el mismo usuario con el mismo password, tu escritorio y tus datos apareceran tal cual, pero con una instalación nueva. Después sólo tienes que instalar aquellos paquetes que necesites de nuevo. 

También existe la posibilidad de que hagamos una lista de los paquetes instalados previamente a la migración o reinstalación limpia: Como encontré en la siguiente fuente:

dpkg --get-selections | grep -v deinstall > totalPaquetes.txt

Nada más entrar, la primera vez que acabamos de instalar de forma limpia, hacemos un listado para obtener los paquetes iniciales de la instalación.

dpkg --get-selections | grep -v deinstall > inicioPaquetes.txt

Ahora podemos pedir la diferencia de ambas listas y sabremos que paquetes nos faltan:
comm -3 totalPaquetes.txt inicioPaquetes.txt > faltanPaquetes.txt

Para completar la instalación con los paquetes que nos faltan, agregaremos los repositorios extra, como medibuntu y algún otro que sepamos que necesitamos para algunos paquetes y haremos un apt-get update.

Ahora lo siguiente es:

sudo apt-get install dselect

dpkg --set-selections < faltanPaquetes.txt 

sudo dselect install

En cualquier caso, yo opté por instalar a mano aquellos paquetes que necesitaba que no son tantos, pero con la instalación limpia Ubuntu 10.10 seguía perdiendo rendimiento con las horas, por tanto he vuelto a hacer lo mismo pero retrocediendo de nuevo a Lucid (Ubuntu 10.04) que funciona perfectamente bien en mi máquina. Creo que esperaré a la versión 11.04 para probar de nuevo que sucede.

salu2

Enlace simbólico y Phun

A diferencia de lo que ocurre en entornos Windows, dónde un enlace simbólico podríamos asemejarlo a un "acceso directo" o lo que es lo mismo: Un destino que puede ser un directorio o un archivo, representado por un icono. En entornos GNU/Linux este adquiere un mayor potencial.

El enlace o link lo llamaremos mediante el comando ln y para utilizarlo como enlace simbólico el comando será ln -s, dicha llamada quedará completada con el destino o archivo al que queremos enlazar y con el nombre que utilizaremos para llamarlo.
Ej: ln -s /lib/destino.txt /home/llamaDestino

Veamos un ejemplo real. Supongamos que queremos utilizar el programa Phun en Ubuntu 10.04. Simplemente descomprimiremos el archivo Phun_beta_5_28_linux32.tgz por ejemplo en el directorio Phun dentro de nuestro /home/user, pero al ejecutarlo es posible que se queje de que le falta alguna librería.

./phun
  There are missing dependencies.
  Please make sure that all the required libraries are installed.
  Missing:
    libpng.so.3 => not found


Podemos buscarla y ver que tenemos disponible

$ find / -iname "libpng*.so*" 2>/dev/null
/lib/libpng12.so.0
/lib/libpng12.so.0.42.0
/usr/lib/compiz/libpng.so


Por lo que parece tenemos instalada una librería diferente, ya que nos pide libpng.so.3 y tenemos disponible libpng12.so.0 así que podemos probar a utilizar esta, cómo?

Creando un enlace simbólico a nuestra librería desde la que la aplicación phun va a llamar.

sudo ln -s /lib/libpng12.so.0 /lib/libpng.so.3

Nota: En la versión 11.04 de Ubuntu el camino de las librerías ha cambiado, ahora no es /lib/ sino /lib/i386-linux-gnu/ con lo que quedaría de la siguiente forma:

sudo ln -s /lib/i386-linux-gnu/libpng12.so.0 /lib/i386-linux-gnu/libpng.so.3

Ahora sólo queda probar el programa llamándolo de nuevo.

$ ./phun

Y vemos que carga perfectamente


















salu2

lunes, 29 de marzo de 2010

Ubuntu 9.10 y Java-plugin 1.6

Hola, si has llegado hasta aquí posiblemente te suceda lo que a mi me pasó con java. Resulta que con la última actualización de java la 1.6.0.15 dejé de ver las páginas web que cargaban algún applet de java, como por ejemplo esta: calculadora wiris

Buscando información por la red di con lo que parecía la solución, que consistía en crear un enlace simbólico a la carpeta plugins del navegador (en mi caso firefox) apuntando a la ubicación del nuevo archivo del plugin de java, osea ejecutamos en una consola lo siguiente (asegurándonos primero que las rutas y versiones son las correctas):

cd /usr/lib/firefox-3.6/plugins
sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/i386/libnpjp2.so

Pues bien, todo parecía estar correctamente, pero el plugin no mostraba lo que debía mostrar. Desde la barra de direcciones de firefox, tecleando about:plugins podemos ver que el java-plugin está cargado y funcionando. ¿Qué pasaba entonces?

Pues nada más sencillo. Tiempo atrás tuve que modificar el archivo /etc/environment y añadir la siguiente línea:

AWT_TOOLKIT="MToolkit"


Esto solucionaba el refresco y la presentación correcta del plugin de java cuando compiz estaba activo y ahora era lo que precisamente me ocasionaba los problemas. Por tanto la solución está en quitar o comentar dicha línea y listos. Tan simple y la de vueltas que he tenido que dar.

Espero que le sirva a alguien más.

salu2