Archive

Archive for the ‘GNU/Linux’ Category

Tarjeta CardOS M4 en GNU/Linux

February 11th, 2010 Güimi 7 comments

Las tarjetas CardOS M4 son tarjetas criptográficas fabricadas por Siemens y emitidas, entre otros, por la Comunidad Valenciana (a través de la ACCV) y la Junta de Andalucía.

Para utilizarlas hace falta tener un lector de tarjetas instalado, por ejemplo el lector del DNI-e.

Además hace falta tener instalado el controlador de la tarjeta para que el lector sepa trabajar con ella. Y aquí viene el problema, porque el driver que hay tiene restricciones de distribución, además de ser viejo y estar desactualizado.
Al final se puede hacer funcionar con unos pocos pasos… el problema es averiguarlos. Tras mucho buscar, un post de Andalinux me dió las pistas correctas. Este post se debe a aquel (y copia descaradamente algunas partes).

¿Dónde obtener los drivers (sólo binarios) para la tarjeta?
Pues aunque cuesta encontrarlos en Internet (por las restricciones de distribución impuestas por Siemens) hay varias formas de conseguirlos:

  1. En el cdrom de los lectores Omnikey 3121 y 3021.
  2. En la web de la Autoritat de Certificatió de la Comunitat Valenciana.
  3. En el paquete HiPath SIcurity CardOS smart cards API que aparece en los repositorios de Guadalinex.

¿Cómo instalar los drivers?
Yo he utilizado el paquete de Guadalinex, por lo que basta un:

sudo dpkg -i guadalinex-hipath-sicurity-card-api_3.1-2_i386.deb

En teoría ahora bastaría con cargar el módulo en Firefox, pero no os molestéis, no va a funcionar.

¿Y qué tripa se le ha roto al módulo? Preguntemos:

ldd /usr/local/lib/libsiecap11.so
	linux-gate.so.1 =>  (0xb7794000)
	libz.so.1 => /lib/libz.so.1 (0xb76f1000)
	libsiecap15.so => /usr/local/lib/libsiecap15.so (0xb76c8000)
	[...]
	libpcsclite.so.0 => not found
	[...]

¡Ahí está!

Sin embargo tampoco nos basta con instalar esa librería (igual incluso ya está instalada):

sudo aptitude install libpcsclite1

Porque el problema es que el paquete no instala la librería dónde la busca el módulo.
¡Marchando un enlace simbólico!

sudo ln -s /lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so.0

Y ahora sí podemos cargar en Firefox el módulo “/usr/local/lib/libsiecap11.so” que nos leerá la tarjeta.

Para más detalles sobre cómo instalar el módulo en Firefox se puede consultar la instalación del DNI-e.

Categories: GNU/Linux, Hardware, seguridad

tsclient y rdesktop “recv:Connection Reset by Peer”

January 29th, 2010 Güimi No comments

El cliente de Terminal Services más utilizado en GNU/Linux es tsclient.
Este programa es solo un “front-end” o interfaz gráfica de otros programas.

Para conectar con un servidor Windows de Terminal Services utiliza rdesktop.

Puede ocurrir que tras llevar un tiempo funcionando un día deje de funcionar y arroje el siguiente error:
recv:Connection Reset by Peer

Hay que tener en cuenta que generalmente antes del error indica:
Autoselected keyboard map xx
Esto es solo una indicación de que se ha seleccionado el teclado, pero no tiene nada que ver con el error.

El error que nos ocupa puede deberse a varias cosas, pero básicamente indica que el servidor ha rechazado la conexión.
Para conocer la causa de este rechazo hay que acudir al visualizador de eventos del servidor, ya que no es el cliente el que no ha podido conectar.

En todo caso la causa más habitual es que la licencia otorgada al cliente ha caducado (en principio dura 90 días).
Desinstalar tsclient (y rdesktop) no sirve de mucho, ni siquiera purgando y borrando los directorios de configuración (.tsclient y .rdesktop).

La solución pasa por decirle al servidor que somos otro cliente diferente y que nos otorgue una nueva licencia.
Con rdesktop se puede hacer con el parámetro -n . Con tsclient se puede indicar en una casilla al efecto que aparece en la pestaña principal (”General”) y se llama “Nombre del ordenador Cliente” (o similar según la traducción).

Otro error común, pero totalmente diferente del que nos ocupa en este artículo, tiene que ver con el sonido (basta ir a “Recursos locales” y marcar “No reproducir” en “Sonido del ordenador remoto”).

Categories: GNU/Linux, Software Libre

Ordena archivos en sistemas de ficheros FAT

January 8th, 2010 Güimi No comments

El sistema de ficheros FAT es uno de lo más antiguos todavía en uso. Su actual popularidad se debe a que la mayoría de teléfonos móviles, lectores de MP3, cámaras de fotos, radios, etc. solo reconocen este sistema, por lo que las memorias USB, las tarjetas SD, MMC, etc. vienen formateadas con FAT.

El problema es que estos dispositivos no suelen ordenar los ficheros y directorios que encuentran, sino que muesrtan los archivos tal y como están grabados. Esto hace que muchas veces, tras pasar varias horas ordenando tu colección de música, molestándote en ponerles nombres tipo “01-titulo-artista.mp3″ y demás, te encuentras con que el reproductor lista las canciones aleatoriamente.

Para evitar esto basta con “ordenar” los ficheros en el sistema FAT. En GNU/Linux, como es habitual, es muy sencillo hacerlo (el dispositivo debe estar desmontado):
sudo fatsort (dispositivo)

Para que esto funcione bien, primero hay que instalar fatsort, lo que a su vez tambien es muy sencillo:
sudo aptitude install fatsort
Se puede obtener información sobre la patición con:
sudo fatsort -i (dispositivo)

FAT, sort, fatsort, ordenar ficheros, sort files

PDF Editor

December 29th, 2009 Güimi No comments

Recientemente he descubierto “PDF Editor”, un programa GPL para GNU/Linux que permite editar PDFs.
Hasta ahora me limitaba a trabajar con pdfs desde el prompt o incluso con GIMP.
PDF Editor no es que funcione maravillosamente, aún está un poco verde, da algunos errores de funcionamiento… pero al final sirve para lo que promete: editar ficheros PDFs.
Funciona en modo gráfico y comando y además está en los repositorios de Debian, Ubuntu…
$ sudo aptitude install pdfedit

PDF Editor, PDF, pdfedit
Categories: GNU/Linux, Ofimática, Prompt

Postinstalación de Ubuntu 9.04 Jaunty Jackalope

November 10th, 2009 Güimi No comments

Hay múltiples recetas de qué hacer tras instalar Ubuntu 9.04 Jaunty Jackalope (por ejemplo esta receta de “Cosas a hacer despues de instalar Ubuntu 9.04 Jaunty Jackalope“).
Hay que decir que ha día de hoy ya ha salido la nueva versión (Karmic Koala).

Tras consultar varias de esas guías para instalar Ubuntu a un amigo, me he quedado con esto:

sudo wget http://www.medibuntu.org/sources.list.d/jaunty.list --output-document=/etc/apt/sources.list.d/medibuntu.list
sudo aptitude update && sudo aptitude install medibuntu-keyring && sudo aptitude update && sudo aptitude upgrade
sudo aptitude install build-essential linux-headers-`uname -r`
sudo aptitude install gparted scribus blender inkscape gthumb
sudo aptitude install k3b kde-i18n-es k3b-i18n
sudo aptitude install dia gftp
sudo aptitude install gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-ffmpeg
sudo aptitude install virtualbox-ose wine
sudo aptitude install ubuntu-restricted-extras
sudo aptitude install unrar rar p7zip-full unace unzip msttcorefonts
sudo aptitude install libdvdcss2 libdvdread4
sudo aptitude install w32codecs non-free-codecs flashplugin-nonfree-extrasound

Después configuré Firefox y el explorador de archivos (Nautilus) para que se comportase más a mi gusto y en las propiedades de las imágenes indiqué “Abrir con” gthumb.

Postinstalación, instalación, Ubuntu, Jaunty Jackalope
Categories: GNU/Linux, Software Libre

Firmar imágenes

August 13th, 2009 Güimi 1 comment

Para firmar imágenes automáticamente podemos usar ImageMagick. Llamo firmar una imagen a incorporarle un marco con el autor y la licencia de la misma. Ejemplo de imagen firmada:
delfines

Primero generamos una imagen de firma, por ejemplo:
firma

Después utilizamos el siguiente comando (el tamaño de bordes que muestro es el que utilizo para imágenes de 2448×3264):
$ convert imagen.jpg firma.png -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0×10 imagen_firmada.jpg.

Si además queremos conservar la información de la cabecera exif podemos utilizar el comando jhead:
$ jhead -te imagen.jpg imagen_firmada.jpg.
Otro uso muy práctico de jhead lo vimos en el post “Renombrar fotos en base a la fecha de la cabecera Exif“.

Para agilizar la firma podemos hacer dos cosas básicas, una es crear un script como este (que nos firma todas las imágenes del directorio en que nos encontramos):

#!/bin/bash
#
# firma_imagenes.sh
# Por Guimi 2009/08 - http://www.guimi.net
#

##########################
# ERRORES
E_NOPARAM=64        # Numero de parametros incorrecto

##########################
# PARAMETROS
FIRMA="../cc-by-sa-guimi-70.png"
DIR="./firmadas"
TMP="tmp.$$"

if [ $# -gt 1 ];
then
	echo "Use firma_imagenes [imagen_firma]"
	exit $E_NOPARAM
else
	if [ $# -eq 1 ];
	then
		FIRMA="$1"
	fi
fi

mkdir $DIR

echo -n "Firmando fotos..."
for x in `ls *.jpg`
do
	echo -n "."
	convert $x $FIRMA -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0x10 $TMP
	jhead -te $x $TMP > /dev/null
	mv $TMP $DIR/$x
done
echo ""

 
Otra opción muy comoda es configurar gThumb (el visor que recomiendo para gnome) para que permita firmar imágenes.
Para ello nos vamos a “Editar->Preferencias->Teclas rápidas” y en una de las casillas libres (la primera suele ser el 6) escribimos:
convert %f ~/firma.png -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0×10 %n-firmada%e; jhead -te %f %n-cc-by-sa%e

A partir de ese momento mientras estamos viendo una imagen si pulsamos el 6 del teclado numérico nos generará una copia firmada.

Podemos ver otros usos de ImageMagick en un post llamado trabajar con imágenes desde el prompt.

Si tienes curiosidad por ver algunas de mis fotos puedes ver mi perfil en flickr o en mi perfil en picasa (me gusta más el servicio de flickr pero da más espacio picasa).

ImageMagick, Marco, firmar imagen, crear marco, gthumb
Categories: GNU/Linux, Multimedia

Pasar de Access a MySQL

July 2nd, 2009 Güimi No comments

Tengo unos compañeros que se empeñan en utilizar Ms-Access, que es de los pocos programas que no funcionan de manera alguna en GNU/Linux (solo queda el recurso de usar una máquina virtual, como VirtualBox).
Por ello cuando necesito trabajar con ella (o ellos necesitan hacer consultas rápidas y como no saben me lo piden a mi) utilizo un pequeño script para pasar las tablas de Ms-Access a MySQL.
Y dice así:

#!/bin/bash
#
# vuelca_mdb 0.1 - GPL
# (c) Guimi
# http://guimi.net
#
# Ult. mod: Guimi 2009-07
#

# DATOS DEL FICHERO MDB
mdb=xxx.mdb
TABLA1=XXX
TABLA2=YYY

# DATOS DE MYSQL
bbdd=xxx
usuario=xxx
clave=xxx

# FICHERO TEMPORAL
tmp="tmp.$$"

echo "Exportando desde mdb..."
mdb-schema $mdb -S > sql-creacion_mdb$$.sql
mdb-export $mdb $TABLA1 -S -I > sql-datos_mdb$$.sql
mdb-export $mdb $TABLA2 -S -I >> sql-datos_mdb$$.sql

echo "Modificando ficheros exportados..."
# Hay que añadir "IF EXISTS" al "DROP TABLE"
sed 's/DROP TABLE/DROP TABLE IF EXISTS/g' sql-creacion_mdb$$.sql > $tmp
# Hay que cambiar "Long Integer" por "Integer"
sed 's/Long Integer/Integer/g' $tmp > sql-creacion_mdb$$.sql

# Hay que añadir un punto y coma ";" al final de cada linea -que acaba en ")"-
sed -e s/.$/\)\;/g sql-datos_mdb$$.sql > $tmp
mv $tmp sql-datos_mdb$$.sql

echo "Cargando datos en MySQL..."
mysql -D $bbdd -u $usuario --password=$clave < sql-creacion_mdb$$.sql
mysql -D $bbdd -u $usuario --password=$clave < sql-datos_mdb$$.sql

echo "Borrando ficheros temporales..."
rm sql-creacion_mdb$$.sql
rm sql-datos_mdb$$.sql


A continuación otros comandos que pueden ser utiles (proceden del paquete mdbtools).

Mostrar la versión del fichero mdb:
$ mdb-ver xxx.mdb

Mostrar las tablas de un fichero mdb (-1 para mostrar una tabla por fila):
$ mdb-tables -1 xxx.mdb

Generar un fichero C con un Array con los datos de una tabla:
$ mdb-array xxx.mdb TABLA

Access, mdb, mysql, script, prompt, Ms-Access, mdbtools
Categories: BBDD, GNU/Linux, Prompt

Instalar un SAI (UPS) en GNU/Linux

May 5th, 2009 Güimi 4 comments

Instalaremos como ejemplo un SAI Yukai PowerMust 600 con conexión al puerto serie y conexión USB.
 

Instalamos el sistema nut (Network UPS Tools):
# aptitude install nut

 
Si instalamos el SAI en un puerto USB, además:
# aptitude install nut-usb

Si instalamos el SAI en un puerto serie autorizamos al usuario nut el acceso al mismo:
# adduser nut dialout

 
Configuramos el demonio nut:
# vi /etc/default/nut

# start upsd
START_UPSD=yes

# set upsd specific options. use "man upsd" for more info
UPSD_OPTIONS=""

# start upsmon
START_UPSMON=yes

# set upsmon specific options. use "man upsmon" for more info
UPSMON_OPTIONS=""

Consultamos el controlador que necesitamos para nuestro SAI en la web de Network UPS Tools. Para el SAI del ejemplo necesitamos el controlador “megatec”.
 
Indicamos al sistema la existencia de nuestro SAI:
# vi /etc/nut/ups.conf

[yukai]
	driver = megatec
	# si usamos puerto serie
	# port = /dev/ttyS0
	# si usamos puerto USB
	# port = auto
	port = xxxxxx
	desc = "Yukai PowerMust 600"

Indicamos al demonio los permisos sobre el SAI (permiso local):
# vi /etc/nut/upsd.conf

ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32

ACCEPT localhost
REJECT all

Creamos un usuario para gestionar el SAI:
# vi /etc/nut/upsd.users

[yukai_admin]
password = mi_clave
allowfrom = localhost
actions = SET
instcmds = ALL

Y por último configuramos el monitor:
# vi /etc/nut/upsmon.conf

MONITOR yukai@localhost 1 yukai_admin mi_clave master
RUN_AS_USER nut
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower

NOTIFYMSG ONLINE "UPS: Normal state"
NOTIFYMSG ONBATT "UPS: On battery"
NOTIFYMSG LOWBATT "UPS: Battery low"
NOTIFYMSG FSD "UPS: Starting shutdown"
NOTIFYMSG COMMOK "UPS: Communication restored"
NOTIFYMSG COMMBAD "UPS: Communication lose"
NOTIFYMSG SHUTDOWN "UPS: Shutting down"
NOTIFYMSG REPLBATT "UPS: Replace battery"

NOTIFYFLAG ONLINE SYSLOG
NOTIFYFLAG ONBATT SYSLOG+WALL
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG FSD SYSLOG+WALL
NOTIFYFLAG COMMOK SYSLOG
NOTIFYFLAG COMMBAD SYSLOG
NOTIFYFLAG SHUTDOWN SYSLOG
NOTIFYFLAG REPLBATT SYSLOG

RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 0

Modificamos los permisos de los ficheros:

  • # chown root:nut /etc/nut/*

  • # chmod o-r /etc/nut/*

Reiniciamos el servicio:
# /etc/init.d/nut restart

Y verificamos que todo funciona correctamente:
# upsmon status

Network UPS Tools upsmon 2.2.2
UPS: yukai@localhost (master) (power value 1)
Using power down flag file /etc/killpower

 
Verificamos los procesos en marcha:
# ps aux | grep ups

nut       8513  0.0  0.0   2012   512 ?        Ss   12:01   0:00 /sbin/upsd
root      8515  0.0  0.0   2020   652 ?        Ss   12:01   0:00 /sbin/upsmon
nut       8516  0.0  0.0   2020   688 ?        S    12:01   0:00 /sbin/upsmon

# ps aux | grep nut

nut       8511  0.0  0.0   2012   576 ?        Ss   12:01   0:00 /lib/nut/megatec -a yukai
nut       8513  0.0  0.0   2012   512 ?        Ss   12:01   0:00 /sbin/upsd
nut       8516  0.0  0.0   2020   688 ?        S    12:01   0:00 /sbin/upsmon

Y verificamos que todo funciona correctamente:
$ upsc yukai@localhost

battery.charge: 97.5
battery.voltage: 13.60
battery.voltage.nominal: 12.0
driver.name: megatec
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.5.14
input.frequency: 49.9
input.frequency.nominal: 50.0
input.voltage: 209.5
input.voltage.fault: 209.5
input.voltage.maximum: 215.2
input.voltage.minimum: 208.6
input.voltage.nominal: 220.0
output.voltage: 209.5
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 27.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0
ups.type: standby

Podemos mostrar solo parte de la información:
$ upsc yukai@localhost ups.status

OL

OL indica “On Line power”. Podría indicar por ejemplo OB (“On Battery”) o LB (“Low Battery”).

$ upsc yukai@localhost battery.charge

97.5

 
En escritorios gráficos es útil -y muy sencilla- la herramienta “knutclient” que permite monitorizar el SAI:
knutclient
knutclient
 

Referencia

instalar un sai (ups) en Linux, configurar sai en Linux, instalar UPS en GNU/Linux

Categories: GNU/Linux, Hardware

Cómo virtualizar una partición Windows ya existente

March 25th, 2009 Güimi 2 comments

Este es un artículo escrito por el administrador de kriptopolis con licecia CC.

Al final del artículo incluyo como solucionar algunos problemas a los que me he enfrentado siguiendo este tutorial.

Artículo original en Kriptopolis del 21. Junio 2007 – 14:08.
Actualización a Junio de 2009: Llevo un tiempo probando VirtualBox, y lo recomiendo, ya que es software libre y funciona igual de bien que VMWare (más rápido en algunas cosas, más lento en otras).

La situación de partida más común es la siguiente: dispones de un sistema con arranque dual (Windows, Linux) y aunque utilizas habitualmente Linux, de vez en cuando aún necesitas ejecutar algo en Windows. En un tutorial anterior ya explicamos cómo utilizar para ello una copia virtualizada, pero ahora vamos un paso más lejos: lo que utilizaremos virtualizado será nuestra propia partición windows real, de forma que las modificaciones que realicemos quedarán guardadas en él, y no en una simple copia. Además, si VMware algún día nos fallara, siempre seguiríamos disponiendo de la posibilidad de arrancar nuestro Windows nativo tal y como veníamos haciendo.

Para este tutorial he utilizado VMware Workstation 6 para Linux, un programa comercial con 30 días de prueba.También es posible virtualizar la partición Windows con VMware Player, pero éste carece -si no me equivoco- de la posibilidad de instalar posteriormente las VM Tools, lo que obliga a realizar unas cuantas maniobras más para lograr nuestro objetivo, y a ello quizás dediquemos otro tutorial. Es posible que este tutorial pueda seguirse también con VMware Server, que sí es gratuito; espero que algún lector que lo utilice pueda confirmar o desmentir este extremo…

PRECAUCIONES PREVIAS

Es muy probable que al arrancar Linux vengas montando automáticamente tu partición Windows para disponer de acceso a ella. Lo primero es desmontarla y desactivar ese montaje automático comentando la línea correspondiente en tu fichero /etc/fstab. De lo contrario podría ocurrir que intentaras acceder desde dos sistemas diferentes a la misma partición, con resultados imprevisibles, pero probablemente desastrosos. Por tanto, comienza con un umount /mnt/windows (o lo que corresponda en tu caso) y escribe el carácter almohadilla en la línea de fstab que hace referencia a tu partición windows.

Otra posibilidad que podría llevarnos a un desastre aún peor (porque podría destruir tu sistema Linux) sería elegir Linux por error desde el menú de arranque de la máquina virtualizada, lo que equivaldría a intentar arrancar Linux desde dentro de Linux. Para prevenir este otro posible desastre lo mejor es comentar de momento el timeout del fichero menu.lst de grub y seleccionar Windows como el sistema de arranque por defecto.

PREPARAR WINDOWS

La idea aquí es crear un nuevo perfil de hardware (que puedes denominar “virtual” o “vmware”) con un Windows tan “limpio” como sea posible, eliminando dispositivos o controladores que puedan resultar conflictivos. No puedo darte normas generales, excepto que crees un nuevo perfil virtual y le des un nombre, aunque sólo sea una copia exacta del actual. En cualquier caso también es buena idea establecer la opción que permite esperar hasta que se seleccione un perfil de hardware y colocar el perfil virtual como opción por defecto.

En mi caso (insisto, disco Serial ATA) fue imprescindible desinstalar los controladores IDE y sustituirlos por controladores estándar. En este caso -y otros similares- existen diferencias entre el controlador IDE que utiliza Windows y el de la máquina virtual. El diagnóstico es fácil: al tratar de arrancar la máquina virtual, nos da un error de BOOT.INI y el intento de arranque entra en un ciclo sin fin. Si estás en un caso similar, aquí tienes instrucciones más detalladas:

Arrancamos Windows XP nativo.

Panel de Control -> Sistema -> Hardware -> Perfiles de Hardware

Copiar el perfil actual como vmware.

Arrancar de nuevo seleccionando el perfil vmware

Panel de Control -> Sistema -> Hardware -> Gestor de dispositivos -> Controladores IDE ATA/ATAPI

Haz clic derecho en uno de ellos y elige Actualizar controlador. Arranca el Asistente para actualizar el hardware. Elige “No, no esta vez” y Siguiente. Elige la opción avanzada y siguiente. Elige “No buscar.Elegiré el controlador a instalar” y siguiente. Selecciona el driver IDE estándar y Finalizar. No reinicies.

Ahora has de repetir el proceso con el Canal IDE Primario y el Secundario, eligiendo siempre el controlador estándar.

CREAR NUEVA MÁQUINA VIRTUAL

A continuación te muestro el proceso en imágenes:

Este paso es muy importante. No olvides elegir la partición donde tienes tu Windows (por supuesto) y también aquella desde la que arrancas (donde has instalado el grub):

Continuamos.

Y así queda nuestra máquina (de momento):

Al arrancar Windows así en mi caso (disco Serial ATA) acabo en una pantalla azul de la muerte. Si cambio “buslogic” por “ide” en Windows XP.vmdk, vmware me avisa y si acepto acabo también igual, con otro BSOD:

Lo que hago es editar Windows XP.vmx y la línea scsi0.present = “TRUE” la cambio a “FALSE”. También cambio las tres líneas que comienzan por scsi0:0 a ide0:0. A partir de ese momento ya no tuve problemas.

Tras arrancar aparece el menú de grub:

Elegimos Windows y nuestro nuevo perfil virtual:

Vamos por buen camino:

Cuando arranques por primera vez tu Windows dentro de VMware es posible que te comience a detectar nuevo hardware y te pida instalarlo. Contesta a todo que no. Otro posible problema es que tu copia de Windows pida ser reactivada; por lo que se dice en Internet eso no parece ocurrir, pero nunca se sabe y desde luego no me atrevo a poner la mano en el fuego en ese tipo de asuntos.

REMATES FINALES

Ahora que todo funciona (o debería) coincidiréis conmigo en que sería muy bueno que no volviera a presentarse el menú de arranque de Grub, para prevenir definitivamente el posible error fatal de tratar de arrancar el sistema equivocado. Disponer de este lujo nos supondrá un pequeño esfuerzo adicional, pero creo que merece la pena, porque después de eso siempre arrancará Windows sin más riesgos ni complicaciones.

Arrancamos VMware y nos vamos a “Edit virtual machine settings” -> Hardware -> Floppy

Seleccionamos “Use a floppy image” y “Connect at power on”. Le damos el nombre “bootdisk.img” y pulsamos “Create”. Lo guardamos en el directorio de vmware para nuestra nueva máquina Windows.

Ahora añadiremos grub al fichero de imagen de disco:

# cd /home/xxxx/vmware/Windows\ XP/

En Arch Linux*:

# dd if=/usr/lib/grub/i386-pc/stage1 of=bootdisk.img count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 5,3224e-05 s, 9,6 MB/s

# dd if=/usr/lib/grub/i386-pc/stage2 of=bootdisk.img seek=1
196+1 records in
196+1 records out
100586 bytes (101 kB) copied, 0,0023119 s, 43,5 MB/s

NOTA*: La localización de los ficheros stage varía en cada distribución. En Ubuntu están en /lib/grub/i386-pc. En Gentoo, en /usr/lib/, etc.

Haremos también una copia de seguridad así:

# cp bootdisk.img grubdisk.img

Echa un vistazo al fichero menu.lst de tu grub para ver con qué opciones arrancas tu Windows real. En mi caso:

# cat /boot/grub/menu.lst

Y la parte que necesito es ésta:

title Windows XP
rootnoverify (hd0,3)
makeactive
chainloader +1

Ahora arrancaré mi máquina virtual y al llegar al menú de Grub teclearé lo siguiente:

grub> root (hd0,3)
grub> chainloader +1
grub> boot

Lo que debe hacer que arranque Windows. Ten cuidado al teclear porque es posible que las teclas no respondan exactamente a lo esperado (en mi caso los paréntesis había que teclearlos con la tecla que ocupa una posición a la derecha de los originales y el signo + con el teclado numérico):

Windows arrancó correctamente, así que ahora configuraremos nuestra imagen de disco para que no haga falta volver a teclear esos comandos, sino que arranque Windows automáticamente. No apagues la máquina virtual; desde dentro de tu Windows virtualizado vas a formatear el disquete virtual con las opciones por defecto. Desde Mi PC : Unidad A: -> Formatear. Cierra la máquina virtual.

Teclearemos ahora unos cuantos comandos más desde Linux:

# mount bootdisk.img /mnt -o loop
# mkdir -p /mnt/boot/grub
# cp /boot/grub/stage[12] /boot/grub/fat_stage1_5 /boot/grub/menu.lst /mnt/boot/grub
# vi /mnt/boot/grub/menu.lst

Aquí comentaremos (o borraremos) todo lo que queramos, hasta dejar sólo lo imprescindible. En mi caso:

timeout  0
default  0
color light-blue/black light-cyan/blue
title Windows XP
rootnoverify (hd0,3)
makeactive
chainloader +1

Seguimos tecleando comandos:

# chmod -R a-w /mnt/boot
# umount /mnt

Arrancamos VMware y vamos de nuevo a Edit virtual machine settings. En la opción floppy seleccionamos la copia de seguridad grubdisk.img que creamos en un paso anterior. Haz un ls -l sobre el directorio de tu máquina Windows en vmware para asegurarte de que grubdisk.img pertenece a tu usuario y no a root. Si no es así, utiliza chown para cambiarlo.

Al arrancar de nuevo tu máquina debes llegar al prompt de grub, pero esta vez no teclees nada. Selecciona VM en el menú de VMware Workstation y cambia el floppy a bootdisk.img de nuevo.

Resetea después la máquina virtual pulsando “Reset”. Si todo fue bien, ya no trata de arrancar desde el disco duro, sino desde la imagen de disquete. En cuanto tengas tu windows virtualizado y en marcha no olvides instalar las VM Tools desde el correspondiente menú de VMware. Eso te permitirá aumentar la resolución de pantalla y algunos “lujos” más.

Como ya ha desaparecido el riesgo de arrancar con grub el sistema equivocado podemos volver a editar nuestro menú de arranque original del disco duro para restaurar el timeout que quitamos al inicio del tutorial.

Con esto hemos acabado y espero que con éxito. Como siempre (y esta vez quizás más) surgirán montones de dudas. Por mi parte baste decir que este tutorial, aunque tal vez no lo parezca, es el que más horas me ha llevado. De hecho, tras haber bebido en múltiples fuentes (que me hicieron perder mucho tiempo, sólo para llegar a soluciones insatisfactorias) acabé por ver la luz en este sitio, que ha sido finalmente mi guía para sistematizar un poco todo el proceso.

Como siempre vuestros comentarios acabarán de despejar las dudas y elevarán -espero- este tutorial a la categoría de algo verdaderamente útil. Gracias anticipadas a todos por vuestras aportaciones.



Algunos problemas habituales y sus soluciones

  • INSTALACION VMWARE
  • USO VMWARE
    • Problemas de acceso al disco
      • Incluir el usuario en el grupo que tenga acceso a los discos (ls -ld /dev/xxx) generalmente disk
    • El disco se creo como SCSI y lo intentas usar como IDE
      • Además de modificar el vmx como indica el tutorial, modificar el vmdk quitando las lineas ddb.geometry.biosxxxx y poniendo ddb.adapterType = “ide”
    • Error, tabla de particiones invalida
      • Debe ser windows el ultimo que escriba en la tabla de particiones, un modo de conseguirlo es eliminar desde windows la particion swap y volver a crear la particion. Despues desde linux se modifica -sin eliminar y volver a crear- la ‘nueva’ particion para volver a tener swap
    • Windows XP pide activacion
      • O bien arrancar nativamente windows y volver a activar
      • O bien seguir el ayudante de activacion que aparece

Cómo virtualizar una partición Windows ya existente, virtualiza windows, vmware

Categories: GNU/Linux, Windows

Instalar una webcam en GNU/Linux

January 10th, 2009 Güimi No comments

Instalaremos como ejemplo una Z-Star.
 
Consejo: no todas las cámaras tienen buen soporte en GNU/Linux, algunas no lo tienen en absoluto, y tampoco una cámara más cara produce necesariamente mejores resultados. Además los fabricantes venden bajo el mismo nombre cámaras diferentes (modelos actualizados) así que no es muy fiable saber que el modelo X funciona bien.
Por todo ello recomiendo comprar la cámara en cualquier tienda que tenga variedad y posibilidad de cambio y devolución.
En mi caso compré a la vez 5 cámaras, me quedé la que me funcionaba mejor y devolví las otras cuatro. Fueron dos paseos a la tienda pero comprándolas de una en una hubieran sido más.
 

Conectamos la cámara al equipo y averiguamos el chip de la misma:
$ lsusb

 Bus 002 Device 009: ID 0ac8:305b Z-Star Microelectronics Corp. ZC0305 WebCam

Si la cámara no es USB, por ejemplo una integrada en un portátil prueba con:
$ dmesg | less

 
Lo importante son los identificadores de fabricante y dispositivo. En el ejemplo 0ac8 y 305b. Con esa información acudimos al oráculo para que nos diga que controlador necesitamos.
Como las respuestas del oráculo a veces son tortuosas e indescifrables, la mayoría de chips con soporte en GNU/Linux las podemos encontrar en uno de los siguientes enlaces:

 
Para la cámara del ejemplo necesitamos los controladores gspca:
$ sudo aptitude install gspca-modules-2.6-686-bigmem

 
Hay que desconectar la cámara y volver a conectarla para que se configuren los módulos al detectarla y ¡ya está! Así de sencillo.
 
Si todo va bien debería aparecer un dispositivo /dev/video0 (o /dev/video).
Para poder utilizar la cámara hay que tener permiso sobre dichos dispositivos, lo cual se consigue en Debian incluyendo al usuario en el grupo “video”.
 
Algunos programas interesantes para hacer pruebas son: webcam, cheese, xawtv / motv, motion, gqcam, camorama…
 

Instalar una webcam en GNU/Linux, Configurar webcam en Linux, Instalar cámara en Linux

Categories: GNU/Linux, Hardware
Para los artículos:
Creative Commons License 2003-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia "Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.

Puede ver una copia de esta licencia completa.

Para el código de programación:
General Public License GPL 2 - Copyright (c) 1998-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los desarrollos bajo los términos de la licencia "GNU General Public License, Versión 2" de Free Software Fundation.

Puede ver una copia de esta licencia completa.

Reconocimiento tautológico: Todas las marcas pertenecen a sus respectivos propietarios.