29 enero 2009

anyremote, el amigo de los vagos

Anyremote es un programa básico para cualquier usuario que al que le guste moverse más bien poco, nos permitirá controlar nuestro pc con mediante el movil (vía bluetooth).

Descargamos el propio anyremote:
anyremote

y un fronted para kde:
kanyremote

descomprimimos ambos y conjuro mágico.

Ahora ejecutamos kanyremote.

Tenemos que seleccionar la ruta donde se encuentran los scripts de control de apps:



Despues aceptamos y tendremos algo como esto:



Ahora en "Configurar" - "Navegador de dispositivos" vermos nuestro movil, en el que obviamente hemos activado el bluetooth xD:



Según marca y módelo puede no funcionar la versión que subais (Lista de dispositivos), al pulsar en "Subir Java", si no funciona buscar y leer:



Después lo iniciamos en el PC, y ejecutamos la aplicación en el móvil, introducimos una dirección btspp, de esta forma:

btspp://[Mac_Bluetooth_PC]:19

La mac podemos obtenerla con el comando:

$> hcitool dev

Aceptamos y a disfrutar.

10 octubre 2008

Firefox y pagina atrás

No se si éste os interesará mucho, o no, pero en firefox por muchas veces que pulsara la tecla del (<-- , backspace , etc...), firefox no volvía a la página anterior.

Para "solucionar" esto, accedemos a la dirección about:config (teniendo cuidado xDD), y buscamos el valor de browser.backspace_action, lo ponemos a 0, y nuestro del de toda la vida vuelve a la página anterior, con Shitf + Del, pagina siguiente, si ese valor lo ponemos a 1 haremos up_scrolling en la página, con Shift + Del down_scrolling, con cualquier otro valor, no realiza ninguna acción.

Fuente

05 septiembre 2008

Automontaje (beta)

Scottiepipas tuvo la inquietud de como hacer automontaje de usb extraibles en slackware, y dedujo que con reglas udev podría hacerse, y funcionaba a la perfección, creaba la carpeta y montaba el dispositivo, pero no creaba el link en el escritorio, pero bueno, como ya hace todo lo que tiene que hacer ahi va toda la info:

Los 3 primeros scripts vienen directamente de Zenwalk, el ultimo con 2 modificaciones, el ultimo es de cosecha propia.

Modificamos /etc/udev/udev.conf

# udev.conf
# The main config file for udev
#
# This file can be used to override some of udev's default values
# for where it looks for files, and where it places device nodes.


# udev_root - where in the filesystem to place the device nodes
udev_root="/dev/"

# udev_db - The name and location of the udev database.
udev_db="/dev/.udev.tdb"

# udev_rules - The name and location of the udev rules dir
udev_rules="/etc/udev/rules.d"

# default_mode - set the default mode for all nodes that have no
# explicit match in the permissions file
default_mode="666"

# default_owner - set the default owner for all nodes that have no
# explicit match in the permissions file
default_owner="root"

# default_group - set the default group for all nodes that have no
# explicit match in the permissions file
default_group="root"

# udev_log - set to "yes" if you want logging, else "no"
udev_log="no"

Creamos /etc/udev/rules.d/20-hotmount.rules

# USB storage devices
KERNEL=="sd*|sr*|ub*", ACTION=="add", SUBSYSTEMS=="usb", ENV{DEVFLAG}="usbdisk", NAME="%k", GROUP="cdrom", MODE="0660", RUN+="/lib/udev/usbmount.sh add /dev/%k"
KERNEL=="sd*|sr*|ub*", ACTION=="remove", ENV{DEVFLAG}=="usbdisk", RUN+="/lib/udev/usbmount.sh remove /dev/%k"


Creamos /lib/udev/usbmount.sh
#!/bin/sh
# This script mounts USB and other mass storage devices when they are plugged in
# and unmounts them when they are removed.
# It also creates mountpoints as needed, and removes them afterward
# Copyright (C) 2006 Jean-Philippe Guillemin and Mark Colclough
#
# This file is free software; the copyright holder gives unlimited
# permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
#

# Usage : [hotmount.sh|usbmount.sh|firemount.sh|pcmciamount.sh] (add|remove) DEVICE [MOUNTPOINT]
# if the variable $NICEMOUNTPOINT is defined it will be used as the first tried mountpoint

# version 1.0 11/06/2006

VERBOSE="no"

# Log a string via the syslog facility.
log()
{
[ "$VERBOSE" = "yes" ] && logger -p user.$1 -t "usbmount[$$]" -- "$2"
}


# Test if the first parameter is in the list given by the second
# parameter.
in_list()
{
for v in $2; do
test "$1" != "$v" || return 0
done
return 1
}

# Test if /lib/udev/vol_id is executable.
test -x /lib/udev/vol_id || { log err "cannnot execute /lib/udev/vol_id"; exit 1; }

# Default mountpoints depend on how we were called
case "${0##*/}" in
firemount.sh)
MOUNTPOINTS="/mnt/fire /mnt/fire1 /mnt/fire2 /mnt/fire3 /mnt/fire4 /mnt/fire5 /mnt/fire6 /mnt/fire7 /mnt/fire8 /mnt/fire9 /mnt/fire10 /mnt/fire11"
;;
pcmciamount.sh)
MOUNTPOINTS="/mnt/pcm /mnt/pcm1 /mnt/pcm2 /mnt/pcm3 /mnt/pcm4 /mnt/pcm5 /mnt/pcm6 /mnt/pcm7 /mnt/pcm8 /mnt/pcm9 /mnt/pcm10 /mnt/pcm11"
;;
mmcmount.sh)
MOUNTPOINTS="/mnt/mmc /mnt/mmc1 /mnt/mmc2 /mnt/mmc3 /mnt/mmc4 /mnt/mmc5 /mnt/mmc6 /mnt/mmc7 /mnt/mmc8 /mnt/mmc9 /mnt/mmc10 /mnt/mmc11"
;;
*)
MOUNTPOINTS="/mnt/usb /mnt/usb1 /mnt/usb2 /mnt/usb3 /mnt/usb4 /mnt/usb5 /mnt/usb6 /mnt/usb7 /mnt/usb8 /mnt/usb9 /mnt/usb10 /mnt/usb11"
;;
esac
MOUNTOPTIONS=" noauto,user,rw,owner,exec"

# The device name MUST be given as 2nd argument
DEVNAME="$2"

# Maybe a user-defined mountpoint in fstab ?
FSTABMOUNTPOINT="$(grep "$DEVNAME[[:space:]]" /etc/fstab | awk '{print $2}' | tail -n1)"
[ "$FSTABMOUNTPOINT" ] && MOUNTPOINTS="$FSTABMOUNTPOINT $MOUNTPOINTS"
FSTABMOUNTOPTIONS="$(grep "$DEVNAME[[:space:]]" /etc/fstab | awk '{print $4}' | tail -n1)"

# The mount point COULD be given as 3rd argument
[ "$3" ] && MOUNTPOINTS="$3 $MOUNTPOINTS"

# if the variable $NICEMOUNTPOINT is defined it will be used as the first tried mountpoint
[ "$NICEMOUNTPOINT" ] && MOUNTPOINTS="$NICEMOUNTPOINT $MOUNTPOINTS"

umask 000

if [ "$1" = add ] ; then

log info "devname == $DEVNAME !!"
# Try to read from the device. Some devices need a few seconds
# initialization time before they can be accessed. Give up after
# 20 seconds (a Markish infinite... ;).
log info "testing whether $DEVNAME is readable"
read_success=no
for t in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do
dd if="$DEVNAME" of=/dev/null bs=512 count=1
if [ "$?" = "0" ] ; then
read_success=yes
break
fi
log info "attempt $t to read from $DEVNAME failed"
sleep 1
done
if [ "$read_success" != "yes" ]; then
log err "cannot read from $DEVNAME"
exit 1
fi

# Test if the device contains a filesystem.
/lib/udev/vol_id "$DEVNAME" | egrep -q '^ID_FS_USAGE=(filesystem|disklabel)$'
if [ "$?" = "0" ] ; then
log info "$DEVNAME contains a filesystem or disklabel"

fstype="$(/lib/udev/vol_id -t $DEVNAME )"
log info "$DEVNAME contains filesystem type $fstype"

# We search for available mountpoint in the list
for mountpoint in $MOUNTPOINTS; do

# Get a lock for the mountpoint under consideration
for t in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do
(set -C; echo "$$" > /var/lock/${mountpoint##*/}) && break
log info "waiting for $mountpoint lockfile to be released"
sleep 1
done

if [ -d "$mountpoint" ]; then
log info "mountpoint $mountpoint exists"
if [ ! "$( mount | awk '{print $3}' | grep "$mountpoint" )" ]; then
log info "mountpoint $mountpoint is available for $DEVNAME"
break
else
log info "mountpoint $mountpoint is busy"
rm -f /var/lock/${mountpoint##*/}
continue
fi
else
log info "creating mountpoint $mountpoint for $DEVNAME"
mkdir -p -m0 $mountpoint
umount -l "$mountpoint"
log info "mountpoint $mountpoint is available for $DEVNAME"
break
fi
rm -f /var/lock/${mountpoint##*/}
done

if [ "$mountpoint" ] ; then

# Determine mount options.
options=""
if [ "$FSTABMOUNTOPTIONS" ]; then
options="$FSTABMOUNTOPTIONS"
else
[ "$MOUNTOPTIONS" ] && options="$MOUNTOPTIONS"
[ ! "$fstype" = "vfat" ] && options="${options},sync,dirsync"
[ "$fstype" = "vfat" ] && options="${options},uid=0,gid=100,umask=0"
fi

# Mount the filesystem.
for t in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do
[ "$( mount | awk '{print $1}' | grep "$DEVNAME" )" ] && break
log info "executing command: mount -t $fstype -o $options $DEVNAME $mountpoint"
eval "mount -t $fstype -o $options $DEVNAME $mountpoint"
/lib/udev/montaje.sh $DEVNAME $mountpoint
done
rm -f /var/lock/${mountpoint##*/}
else
# No suitable mount point found.
log warning "no mountpoint found for $DEVNAME"
exit 1
fi
else
log info "$DEVNAME does not contain a filesystem or disklabel"
fi

elif [ "$1" = remove ] ; then
/lib/udev/montaje.sh $DEVNAME $DEVNAME $1
# A block or partition device has been removed.
# Test if it is mounted.
while read device mountpoint fstype remainder; do
if [ "$DEVNAME" = "$device" ] ; then
# If the mountpoint and filesystem type are maintained by
# this script, unmount the filesystem.
if in_list "$mountpoint" "$MOUNTPOINTS" ; then
log info "unmounting $mountpoint"
umount -l "$mountpoint"
rmdir $mountpoint && break
log info "cannot remove $mountpoint, maybe not empty"
fi
break
fi
done < /proc/mounts fi exit 0


Por último creamos /lib/udev/montaje.sh

#!/bin/bash
#*******************************************
# Llamado desde usbmount.sh
# /lib/udev/montaje.sh $DEVNAME $mountpoint [remove]
#
# v 0.3

nombre=`echo $2 | cut -c 6,7,8,9`
usuario=`w | grep k | cut -f 1 -d ' '`

if [ $usuario == "root" ] ; then
export HOME=/root
else
export HOME=/home/$usuario
fi


if [ "$3" != remove ]
then
echo " [Desktop Entry]
Type=FSDevice
Dev=$1
MountPoint=$2
Encoding=UTF-8
Icon=usbpendrive_mount
UnmountIcon=usbpendrive_unmount
Comment=$ID_SERIAL $ID_FS_TYPE
Name=$nombre ($ID_FS_LABEL)" > $HOME/Desktop/$nombre.desktop
echo "$1 $2 vfat users" >> /etc/fstab

############
#Popup en KDE (test)

export DISPLAY=":0"
export XAUTHORITY=$HOME/.Xauthority
/usr/bin/xhost + local:$usuario
/usr/bin/kdialog --title "Montado: $ID_MODEL [$ID_VENDOR]" --passivepopup " Etiqueta: $ID_FS_LABEL
Sistema de ficheros: $ID_FS_TYPE
Punto de montaje: $2
Dispositivo: $1" 7 --geometry 10x10-0-0
/usr/bin/xhost - local:$usuario
###########

else
borra=`cat /etc/fstab | grep $2 | cut -f 2 -d ' '`
cat /etc/fstab | grep $2 -v > /etc/fstab
rmdir $borra
dis=`echo $borra | cut -d / -f 3 | cut -d ' ' -f 1`
rm $HOME/Desktop/$dis.desktop
fi



y con esto lo que conseguimos es que al pinchar nuestra memoria usb aparezca en nuestro escritorio un link a ella, con opcion de desmontarla con un par de clicks, al quitar nuestro usb el link desaparece.

No olvidar dar permiso de ejecucion a los scripts

chmod +x script


Empaquetado aqui v0.4. Recomiendo hacer una copia de seguridad de /etc/udev/udev.conf, ya que es el unico que se sobreescribe, y después darle permiso de ejecución a los ficheros.

25 mayo 2008

Portable VNC PSP + Slack

Portable vnc es un homebrew que permite contralar el pc con la psp, controlando desde la portatil otra instancia del escritorio.

Descargamos el hombrew:
Portable VNC 3.xx
Portable VNC 1.50

y el paquete TightVNC para nuestra slack:
tight VNC

Instalamos el homebrew en la psp como de costumbre en:
PSP/GAME (3.xx)
PSP/GAME150 (1.50)

Instalamos el paquete en slack y arrancamos el vncserver:

$> installpkg tightvnc-1.3.9-i486-2hrk.tgz
$> vncserver
Introducimos la contraseña, la validamos y elegimos si queremos una contraseña para solo lectura.

Obtendremos algo como esto:


Arrancamos en la portatil el programa, nos conectamos a una red wifi, y procedemos a añadir un nuevo host.
Introducimos la IP, y el puerto: xxx.xxx.xxx.xxx:590x
590x (para conexiones VNC)
580x (para conexiones HTTP)

Seleccionamos un nombre, y el S.O. (Linux :P)

Establecemos la conexion y nos pedirá la contraseña, la introducimos, et voilá.

15 mayo 2008

Apunte sobre la virtualización

Con VirtualBox 1.6, todavía persiste el problema de la disposición del teclado, esperemos que se arregle en proximas versiones, y que se aumente la compatibilidad con usb 2.0.

Vmware Workstation 6, por mi reciente experiencia ganá por la compatibilidad usb 2.0 (en especial para mi webcam), el teclado funciona correctamente, pero no tiene un Seamless mode tan sencillo de implementar como VB. Para hacerlo tenemos que conectarnos a partir de escritorio remoto.

Para gustos colores, me quedo con vmware casi por obligación, porque personalmente prefiero VirtualBox.

Ampliaré más datos con la experiencia de estos días.

13 febrero 2008

Bug Kernel 2.6.17 a 2.6.24 vmsplice

Supongo que todos los que pasais por aquí visitais también Open-Eslack, pero como nunca está de más avisar sobre estos asuntos os informamos sobre una vulnerabilidad en los kernel de la serie 2.6 (de 6.17 a 6.24.1).

El bug permite a un usuario local sin privilegios escalar hasta convertirse en root.




El exploit se aprovecha de un fallo en la llamada al sistema vmsplice(), por que omite un par de validaciones de permisos. +info

Kernels no afectados: 2.6.22.8 o 2.6.23.16 o 2.6.24.2

La soluciónes que tenemos q adoptar serían:
- Parchear nuestro kernel. [Probado]
- Actualizar a uno no afectado. [Probado]
- Compilar el kernel sin soporte vmsplice. [No probado]
- Ejecutar el módulo novmsplice, para desabilitar las llamadas al sistema vmsplice. [No probado]

29 enero 2008

Instalando kde 3.5.8

Descargamos los siguientes paquetes:


Salimos del kde si estuviesemos ahí:

Menu K -> Temirnar -> Terminar sesion #Recomiendo además salir a una terminal tty1, por ejemplo, Ctrl + Alt + F1
telinit 3 #Descargamos el servidor X (por si las moscas)

Vía 1: borramos los paquetes de versiones anteriores:

cd /var/log/packages
removepkg xxxxx#usamos autocompletar para que la tarea nos resulte mas comoda


Podemos además borrar la antigua configuración del kde

rm -rf $HOME/.kde

Y finalmente instalamos los paquetes descargados, podemos reiniciar el equipo antes de instalar (metodo: scottie), o instalar directamente (metodo: aks), los dos metodos tuvieron un final feliz:

(reboot)
installpkg *.tgz #así si nos situamos desde la carpeta que los contenga


Vía 2: Desde la carpeta que contiene los tgz del kde 3.5.8 actualizamos directamente los paquetes.

upgradepkg *.tgz #testeado por washap :·O

Tras la instalación:

telinit 4 o startx

y a disfrutar del kde 3.5.8
Paquetes descargado de:
Belnet.be
Slacky.eu

Compilando tu propio Kernel serie 2.6

Compilar nuestro propio kernel nos puede traer bastantes ventajas, y no es necesario esperar a que aparezca una versión precompilada.

Procedo al mini-howto partiendo de la configuración de nuestro kernel previo, siempre podemos configurarlo a nuestro gusto y a nuestras necesidades pero no es el cometido de este manual.

Descargamos el codigo completo de la versión del kernel a compilar, en este caso 2.6.24, y lo descomprimimos.

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
tar xvf linux-2.6.24.tar.bz2


Pasamos nuestra la carpeta del codigo fuente del kernel a /usr/src

mv linux-2.6.24 /usr/src/linux-2.6.24

Vamos hasta el directorio y copiamos la configuración de nuestro kernel previo (2.6.23.8 en mi caso)

cd /usr/src
cp linux-2.6.23.8/.config /usr/src/linux-2.6.24
cd linux-2.6.24


Ahora podemos comprobar los modulos que se cargarán en el kernel, y marcar o desmarcar los que se nos antoje mediante make menuconfig o make xconfig.

y despues compilamos el código e instalamos los modulos

make && make modules && make modules_install

Copiamos la imagen del kernel a nuestro directorio /boot y preparamos una nueva entrada en el lilo.conf para arrancar con él.

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.24

Añadimos al /etc/lilo.conf

image = /boot/vmlinuz-2.6.24
root = /dev/sda2 #La particion que corresponda
label = 2.6.24
read-only

Reescribimos el mbr

/sbin/lilo -v

Y al reiniciar tendremos disponible nuestra nueva entrada para cargar el nuevo kernel.

13 enero 2008

Kde 4.0.0 en slackware 12 + upgrade 4.0.1

Bajamos de esta página:

http://www.mytux.org/content/viewslackpackage.php

Los siguientes paquetes:

extragear-plasma-4.0.0-i486-1mg.tgz
capseo-0108svn-i486-1mg.tgz
kdeadmin-4.0.0-i486-1mg.tgz
kdeartwork-4.0.0-i486-1mg.tgz
kdebase-4.0.0-i486-2mg.tgz
kdegames-4.0.0-i486-1mg.tgz
kdegraphics-4.0.0-i486-1mg.tgz
kdelibs-4.0.0-i486-1mg.tgz
kdemultimedia-4.0.0-i486-1mg.tgz
kdenetwork-4.0.0-i486-1mg.tgz
kdepim-4.0.0svn-i486-1mg.tgz
kdepimlibs-4.0.0-i486-1mg.tgz
kdesdk-4.0.0-i486-1mg.tgz
kdeutils-4.0.0-i486-1mg.tgz
kdewebdev-4.0.0-i486-1mg.tgz
libcaptury-0108svn-i486-1mg.tgz
qimageblitz-0108svn-i486-1mg.tgz
strigi-0108svn-i486-1mg.tgz
tapioca-qt-0.14.1-i486-2mg.tgz
telepathy-qt-0.14.1-i486-1mg.tgz
libiconv-1.12-i486-1as.tgz
qt4-4.3.3-i686-1as.tgz
pyqt4-4.3.3-i486-1as.tgz
sip-4.7.3-i486-1as.tgz
postgresql-8.2.6-i486-1sl.tgz
unixodbc-2.2.12-i486-1sl.tgz
sqlite-3.5.4-i486-1sl.tgz
kdebase-runtime-4.0.0-i486-1mg.tgz
kdebase-workspace-4.0.0-i486-1mg.tgz
soprano-0801svn-i486-1mg.tgz
decibel-0108svn-i486-1mg.tgz

Los instalais y ahora toca configurar las qt para que no de problemas al arrancar kde 4.0.
El script funciona de la siguiente forma:

./nombrescript.sh [qt3qt4]

Dependiendo de las qt que nos interese tener, en este caso qt4, porque sino tendremos problemas al iniciarlo.

Creais un script con el siguiente contenido:

#!/bin/sh
#very simple script for switch qt version

qt3()
{
sudo rm /usr/lib/qt
sudo ln -s /usr/lib/qt-3.3.8 /usr/lib/qt
sudo rm /usr/bin/qmake
sudo ln -s /usr/lib/qt/bin/qmake /usr/bin/qmake
echo "Now use qt3"
}

qt4()
{
sudo rm /usr/lib/qt
sudo ln -s /opt/qt4 /usr/lib/qt
sudo rm /usr/bin/qmake
sudo ln -s /opt/qt4/bin/qmake /usr/bin/qmake
echo "Now use qt4"
}

case "$1" in
'qt3')
qt3
;;
'qt4')
qt4
;;
*)
echo "usage $0 qt3qt4"
esac

Y con esto es suficiente para que cuando vayais a kdm y selecioneis kde4 arranque con normalidad.

Información sacada de: http://www.mytux.org/ y de su foro, slacky.eu y aportes de eslackeros como dhabyx.

==
Actualización a KDE 4.0.1

Descargamos los siguientes paquetes:

KdeLibs
Qimageblitz
Strigi
Kdebase
KdeGames
KdeGraphics
KdeUtils
KdeNetwork
KdeMultimedia
Extragear-Plasma
KdeWebdev
KdeAdmin
KdePimLibs
Soprano
KdeAccesibility
KdeToys

$ upgradepkg *.tgz #aún sin probar

11 enero 2008

Control vía Bluetooth de Amarok (Remuco)

Hace tiempo me planteé la posibilidad de manejar el equipo vía Bluetooth con el movil, y me lo propuse como proyecto a medio plazo, y hace poco encontré un programa remuco, que permite controlar el Amarok (Rhythmbox/Xmms) vía Bluetooth, y aquí adjunto un pequeño tutorial.

Requisitos iniciales:
- Bluetooth funcional en el equipo. (Actualizaré pronto el howto para Slack 12.0).
- Movil con soporte Java.

Descargamos el remuco-client e instalamos una de las distintas versiones en el teléfono. (Diferencias entre las versiones)

Descargamos el remuco-sever, (dependiendo del programa a controlar bajaraemos uno u otro), en nuestro caso bajaremos remuco-server-amarok-0.4.3.1.tar.gz.

$> tar xfvz remuco-server-amarok-0.4.3.1.tar.gz
$> cd remuco-server-amarok-0.4.3.1
$> make install
ejecutamos
$> remuco-amarok
Iniciamos el Remuco cliente en el movil y ya podemos controlar nuestro reproductor de música vía bluetooth.

29 diciembre 2007

Hauppauge HVR900 en slackware 12

Descargamos el paquete mercurial:

http://packages.slackware.it/package.php?q=current/mercurial-0.9.4-i486-1

Despues descargamos el firmware para esta tarjeta

%cd /lib/firmware
%wget http://konstantin.filtschew.de/v4l-firmware/firmware_v3.tgz
%sudo tar xvzf firmware_v3.tgz


Despues vamos a necesitar el modulo dvb

hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental

Para instalarlo:

%make && make install

Despues creamos este archivo en /etc/modprobe.d

%pico /etc/modprobe.d/hvr900


# Hauppage WinTV HVR 900 hybrid TV stick

# modo TDT
options em28xx device_mode=1

#Otra opcion sería
##install em28xx /sbin/modprobe --ignore-install em28xx; /bin/sleep 2; /sbin/modprobe em2880-dvb

# Dependencia de módulos
alias hvr900 em2880_dvb


Despues pinchamos el usb tv y hacemos un dmesg

si va todo bien vereis algo asi:

Linux video capture interface: v2.00
em28xx v4l2 driver version 0.0.1 loaded
em28xx new video device (2040:6502): interface 0, class 255
em28xx: device is attached to a USB 2.0 bus
em28xx: you're using the experimental/unstable tree from mcentral.de
em28xx: there's also a stable tree available but which is limited to
em28xx: linux <=2.6.19.2 em28xx: it's fine to use this driver but keep in mind that it will move em28xx: to http://mcentral.de/hg/~mrec/v4l-dvb-kernel as soon as it's em28xx: proved to be stable em28xx #0: Alternate settings: 8 em28xx #0: Alternate setting 0, max size= 0 em28xx #0: Alternate setting 1, max size= 0 em28xx #0: Alternate setting 2, max size= 1448 em28xx #0: Alternate setting 3, max size= 2048 em28xx #0: Alternate setting 4, max size= 2304 em28xx #0: Alternate setting 5, max size= 2580 em28xx #0: Alternate setting 6, max size= 2892 em28xx #0: Alternate setting 7, max size= 3072 attach_inform: eeprom detected. em28xx #0: i2c eeprom 00: 1a eb 67 95 40 20 02 65 d0 12 5c 03 82 1e 6a 18 em28xx #0: i2c eeprom 10: 00 00 24 57 66 07 01 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 02 00 b8 00 00 00 5b e0 00 00 em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 10 01 01 01 00 00 00 00 em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 18 03 34 00 30 00 em28xx #0: i2c eeprom 70: 32 00 38 00 35 00 33 00 38 00 31 00 36 00 34 00 em28xx #0: i2c eeprom 80: 00 00 1e 03 57 00 69 00 6e 00 54 00 56 00 20 00 em28xx #0: i2c eeprom 90: 48 00 56 00 52 00 2d 00 39 00 30 00 30 00 00 00 em28xx #0: i2c eeprom a0: 84 12 00 00 05 50 1a 7f d4 78 23 fa fd d0 28 89 em28xx #0: i2c eeprom b0: ff 00 00 00 04 84 0a 00 01 01 20 77 00 40 34 9d em28xx #0: i2c eeprom c0: 1e f0 74 02 01 00 01 79 5b 00 00 00 00 00 00 00 em28xx #0: i2c eeprom d0: 84 12 00 00 05 50 1a 7f d4 78 23 fa fd d0 28 89 em28xx #0: i2c eeprom e0: ff 00 00 00 04 84 0a 00 01 01 20 77 00 40 34 9d em28xx #0: i2c eeprom f0: 1e f0 74 02 01 00 01 79 5b 00 00 00 00 00 00 00 EEPROM ID= 0x9567eb1a Vendor/Product ID= 2040:6502 AC97 audio (5 sample rates) 500mA max power Table at 0x24, strings=0x1e82, 0x186a, 0x0000 tveeprom 4-0050: Hauppauge model 65018, rev B2C0, serial# 2006324 tveeprom 4-0050: tuner model is Xceive XC3028 (idx 120, type 71) tveeprom 4-0050: TV standards PAL(B/G) PAL(I) PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xd4) tveeprom 4-0050: audio processor is None (idx 0) tveeprom 4-0050: has radio setting new tuner type now 71! tuner 4-0061: chip found @ 0xc2 (em28xx #0) attach inform (default): detected I2C address c2 /root/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback tuner 0x61: Configuration acknowledged /root/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback /root/v4l-dvb-experimental/v4l/xc3028-tuner.c: attach request! /root/v4l-dvb-experimental/v4l/tuner-core.c: xc3028 tuner successfully loaded attach_inform: tvp5150 detected. tvp5150 4-005c: tvp5150am1 detected. Loading base firmware: xc3028_init0.i2c.fw Loading default analogue TV settings: xc3028_BG_PAL_A2_A.i2c.fw xc3028-tuner.c: firmware 2.7 ANALOG TV REQUEST em28xx #0: V4L2 VBI device registered as /dev/vbi0 em28xx #0: V4L2 device registered as /dev/video0 em28xx #0: Found Hauppauge WinTV HVR Rev. 1.2 usbcore: registered new interface driver em28xx em28xx-audio.c: probing for em28x1 non standard usbaudio em28xx-audio.c: Copyright (C) 2006 Markus Rechberger Em28xx: Initialized (Em28xx Audio Extension) extension usb 3-1: new low speed USB device using uhci_hcd and address 2 usb 3-1: configuration #1 chosen from 1 choice input: USB Mouse as /class/input/input7 input: USB HID v1.10 Mouse [USB Mouse ] on usb-0000:00:1a.0-1


Si teneis problemas con el sonido probad con este scripts:

#!/bin/sh
/usr/bin/tvtime &
/bin/sleep 3
#/usr/bin/sox -r 48000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
/usr/bin/sox -r 11000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
#/usr/bin/sox -r 22000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp


Información sacada de:

Manual ubuntu
http://caligari.treboada.net/ubuntu_tdt

Página del producto:
http://www.hauppauge.co.uk/pages/products/data_hvr900.html

Driver Em2880 en V4Lwiki:
http://www.linuxtv.org/v4lwiki/index.php/Em2880

FAQ sobre Em2880:
http://linuxtv.org/v4lwiki/index.php/Talk:Em2880

Información en inglés:
http://lunapark6.com/usb-hdtv-tuner-stick-for-windows-linux-hauppauge-wintv-hvr-950.html

Chicony USB 2.0 Camera

Bajamos este driver

%svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk


%make && make install

%modprobe uvcvideo


y ya tenemos webcam

Control de bateria

Con el kernel 2.6.21.5-smp

Cargar los siguientes modulos

%modprobe battery
%modprobe ac
%modprobe processor


Para que los cargue siempre metemos estas lineas en /etc/rc.d/rc.local o para tenerlo todo en su sitio en /etc/rc.d/rc.modules.

Y desde kcontrol, en el apartado bateria, configuramos los parametros para optimizar el rendimiento, consumo, estado de bateria baja, critica, etc.

Modificado con el comentario de DoomGLN, gracias por el apunte.

Bootsplash en slackware 12

Bajamos de www.bootsplash.org el siguiente parche bootsplash-3.1.6-2.6.21.diff

Ahora introducimos el parche en el kernel de la siguiente manera:

%cd /usr/src/linux-2.6.21-15
%patch -p1 < $home/bootsplash-3.1.6-2.6.21.diff


Despues vamos al kernel a ver si se ha introducido bien y lo cargamos de la siguiente manera:

%make menuconfig

********************
Device Drivers ->
Graphics Support
Logo configuration
[ ] Bootup logo
Bootsplash configuration
[*] Bootup splash screen
********************

Seleccionamos el tipo de partición del kernel para que no tengamos problemas al arrancar, asi que vamos

y selecionamos la que tengamos en mi caso reiserfs

****************
File System ->
[*]reiserfs
****************

Una vez selecionado el nuevo modulo lo instalamos de la siguiente manera

%make && make modules install

%cp /usr/src/linux-2.6.21-15/arch/i386/boot/bzImage /boot/bzImage_2.6.21-15-bs
%mv /boot/System.map /boot/System.map.old
%cp /usr/src/linux-2.6.21-15/System.map /boot/System_2.6.21-15-bs.map


%ln -s /boot/bzImage_2.6.21-15-bs /boot/vmlinuz
%ln -s /boot/System_2.6.21-15-bs.map /boot/System.map


Para poder instalar un tema necesitamos tener instado el paquete bootsplash.

%wget http://ftp.scarlet.be/pub/linuxpackages/Slackware-12.0/Console/Bootsplash/bootsplash-12.0-i486-1kta.tgz

Despues creamos archivo de configuración de bootsplash para que nos reconozca el theme y en el lilo añadimos lo siguiente:

%splash -s -f /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg > /boot/initrd.splash

# Linux bootable partition config begins
image = /boot/vmlinuz
initrd = /boot/initrd.splash
append = "splash=silent "
root = /dev/sda4
label = slackbs
read-only
# Linux bootable partition config ends

Despues ejecutamos comando lilo para escribir en el mbr:

%lilo

Añadimos al final del script rc.S para la cargar de la imagen en todas nuestras tty's:

splash -n -s -u 1 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 2 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 3 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 4 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 5 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 6 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg


(Podemos poner imagenes distintas en cada terminal)

con poner splash tendria que valer, porque normalmente esa variable se
incluye en el $PATH, si no valiera, recordad que el comando splash esta
en /sbin/splash

para que la barra de progreso aumente segun vaya inicializandose el sistema:

añadimos . /etc/rc.d/rc.bootsplash al inicio de los siguientes scripts:

rc.S (debajo del "PATH")
rc.M
rc.local

y a medida que avanza el script añadimos:

progressbar XX

donde XX es un numero entre 0 y 100 que marca el porcentaje de la barra, cuantos mas progressbar añadamos menos tirones dará la barra.

Si además queremos que la barra se decremente al apagar el equipo, debemos añadir la lineas anteriores al rc.6, pero los numeros en decreciente.

Nota: Si añadimos imágenes a nuestras tty's, la barra de decremento cuando apagamos slackware no saldrá.

y finalmente reiniciamos:

%reboot

Sonido con Intel Corporation 82801H (ICH8 Family)

Descargamos el parche realtek12.tar.gz del siguiente enlace:

https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3104

Para poder acceder a la página de bugtrack es necesario tener una cuenta, en cuyo caso es gratuita.

Despues vamos a alsa-project.org y descargamos el driver stable de alsa-driver, en este caso alsa-driver-1.0.4

%tar xvf alsa-driver-1.0.4.tar.gz

Copiamos el contenido del parche realtek12.tar.gz en la siguiente carpeta alsa-driver-1.0.14/pci/hda

%./configure
%make
%make install

añadimos en estos archivos

/etc/modprobe.d/alsa-base

la siguiente linea

options snd-hda-intel model=toshiba

Reiniciamos y Zass!!! sonido por fin.

Otra forma de solucionarlo es instalar alsa-driver-1.0.15 y crear el archivo alsa-base dentro de la carpeta /etc/modprobe.d con la siguiente información dentro.

alsa-base

#options snd-hda-intel model=laptop-eapd
options snd-hda-intel model=toshiba
#options snd-hda-intel model=lg
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; : ; }
install snd-pcm /sbin/modprobe --ignore-install snd-pcm && { /sbin/modprobe --quiet snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer && { /sbin/modprobe --quiet snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq && { /sbin/modprobe --quiet snd-seq-midi ; /sbin/modprobe --quiet snd-seq-oss ; : ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe -Qb saa7134-alsa ; : ; }

# Load snd-seq for devices that don't have hardware midi;
# Ubuntu #26283, #43682, #56005; works around Ubuntu #34831 for
# non-Creative Labs PCI hardware
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe -Qb snd-seq ; }
# Prevent abnormal drivers from grabbing index 0
options snd-bt87x index=-2
options snd-cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
#options snd-hda-intel model=Realtek ID 268
options snd-hda-intel model=laptop-eapd

Intel wireless 4965 abgn

Necesitamos los siguites paquetes que los descargamos desde aqui:


% wget \
http://intellinuxwireless.org/mac80211/downloads/mac80211-10.0.3.tgz
% wget \
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-4.44.1.20.tgz
% wget \
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-1.2.23.tgz

Ahora procedemos a instalar mac80211-10.0.3.

Descomprimimos y acedemos a la carpeta:

% tar xvf mac80211-10.0.3.tgz
% cd mac80211-10.0.3
% make
% make patch_kernel


Con esto compilamos el paquete y parcheamos el kernel.

Despues nos desplazamos a la carpeta de los modulos del kernel:

% cd /lib/modules/$(uname -r)/build
% make menuconfig

Y cargamos este modulo:

Networking --->
Generic IEEE 802.11 Networking Stack (mac80211) (NEW)

Una vez hecho esto, salimos del menu del kernel e instalamos los modulos:

% make modules modules_install

Cuando acabe reiniciamos la Slackware...

Al volver a iniciar cargamos el modulo que acabamos de instalar

% modprobe mac80211

Si no sale ningun error es que todo va bien, digamos que este paso es el mas conflictivo, ya que si esto no sale bien no podemos continuar con lo siguiente.

Ahora continuamos con los otros paquetes.

Descomprimimos iwlwifi-4965-ucode-4.44.20 y copiamos el paquete dentro de la carpeta /lib/firmware

% tar xvf iwlwifi-4965-ucode-4.44.20.tgz
% cp iwlwifi-4965-ucode-4.44.20/iwlwifi-4965.ucode /lib/firmware/

Y para finalizar vamos a por el ultimo paquete, que descomprimimos e instalamos:

% tar xvf iwlwifi-1.1.23.tgz
% cd iwlwifi-1.1.23
% make
% make install

Ya esta todo instalado.

Ahora procedemos a cargar el modulo

%./load

También se puede hacer de esta otra manera

% dmesg -c > /dev/null
% ./load debug=0x43fff
Comprueba que se ha cargado bien sin errores en el kernel.
% dmesg -c
Activamos la tarjeta wireless
% ifconfig wlan0 up

y con el programa wireless assistant procedemos a conectarnos a la red.

30 julio 2007

Solucionar problemas de montaje con Hal

Los que tengan slackware 12, habran notado que cuando intentas montar un pen drive con hal o un cd/DVD, sale un error de permisos en los que no nos permite montarlo y acceder a los datos..

Para solucionarlo hay que poner lo siguiente

usermod -G haldaemon,plugdev usuario

Si con esto no funciona, probad lo siguiente:

He añadido a mi usuario al grupo haldaemon (GID 82) y al archivos de configuración del hal que está alojado en esta ruta /etc/dbus-1/system.d/hal.conf le he añadido estas lineas:

Especificaciones para el grupo hal

<policy group="haldaemon">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>

Especificaciones para el grupo root

<policy group="root">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>

y con esto, este problema quedaria solucionado.

un saludo.

04 marzo 2007

[HowTo] VirtualBox

Descargamos VirtualBox en cuestion:

Paquete VB
Pagina de descarga aqui

instalamos el .run:

$ sh VirtualBox_1.3.6_Linux_x86.run install

añadimos las siguientes lineas al fichero /etc/rc.d/rc.local (como se nos indica en la instalacion)

# Start vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv start
fi

en versiones anteriores (1.3.2 en mi caso), deberemos añadir al rc.local

if [ -x /etc/init.d/vboxdrv ] ; then
/etc/init.d/vboxdrv start
fi

en consola ejecutamos

$ VirtualBox

o Menu K - Sistema - InnoTek VirtualBox (Virual Machine)

y tenemos ejecutando la maquina virtual.

Manual instalacion winxp a base de fotitos. xD


* Añadir dispositivos extraibles:

Conectamos al pc lo que vayamos a añadir a la maquina virtual, y ejecutamos:

$ VBoxManage list usbhost

obtendremos algo como esto:


Host USB Devices:

UUID: f5eff9b3-098b-4338-910e-e734e8681585
VendorId: 0x058f (058F)
ProductId: 0x6362 (6362)
Revision: 1.38 (0138)
Manufacturer: Generic
Product: Mass Storage Device
SerialNumber: 058F312D81B
Address: /proc/bus/usb/005/002
Current State: Available

de aqui tomamos el VendorId y ProductId que está entre parentesis, nos vamos al VB, seleccionamos nuestra maquina virtual y vamos a 'Settings', 'USB' y añadimos nuevo filtro con los parametros obtenidos.

- En la version 1.3.6, al añadir nuevo filtro aparece una lista de los dispositivos conectados y no es necesario tener ninguna dato del dispositivo


* Añadir particion fisica:

ejecutamos:

$ VBoxManage sharedfolder add "nombremaquinavirtual" -name "nombre" -hostpath "directorioacompartir"

en una maquina Windows para acceder al dispositivo añadiremos carpeta en red desde MiPc con la direccion: "\\vboxsvr\nombre" o mediante el comando: net use x: \\vboxsvr\nombre

en un Linux virtual: mount -t vboxsf nombre puntodemontaje

03 marzo 2007

Virtualizacion con qemu

Por fin me decidí a probar qemu, antes usaba vmware, pero me rayaba el hecho de tener que renovar una clave para el vmware workstation, asi que recurri a qemu. A simple vista parece duro, pero es mucho mas simple de lo que pensaba, tiene muchas posiblidades y funciona muy bien, os voy a contar los pasos que he realizado para instalar una copia del windows xp.

INSTALACIÓN

Primero nos descargamos qemu, yo me he bajao la version 0.9 de linuxpackages.net dejo el link abajo.

qemu-0.9.0-i486-1gds.tgz

lo instalamos con

$ installpkg qemu-0.9.0-i486-1gds.tgz

y despues nos descargamos el modulo kqemu-1.3.0pre11.tar.gz con la que vamos a aumentar la velocidad de la virtualizacion, hasta ahora es la ultima version estable que ha salido en su web oficial está, de todas formas dejo el link abajo.

kqemu-1.3.0pre11.tar.gz

descomprimimos kqemu-1.3.0pre11.tar.gz, despues vamos a la carpeta y lo instalamos

$ ./configure
$ make
$ make install


no os deberia dar problema alguno, al menos ami no me los dio, una vez hecho esto debemos cargar el modulo kqemu de esta menera.

$ modprobe kqemu

Ahora debemos dar permisos al dispositivo kqemu para que todos los usuarios puedan acceder a él:

# chmod 666 /dev/kqemu

Para no tener que cargarlo cada vez que inicies slackware incluir esa linea en /etc/rc.d/rc.local

y la parte de la instalacion concluye aqui.

CONFIGURACIÓN

Ahora voy a comentaros como crear una imagen, instalar el windows xp en este caso, esto seria aplicable a cualquier sistema operativo que soporte qemu, para mas info visitad su web oficial.

Para crear una imagen e instalar windows xp el comando a introducir seria algo parecido

$ qemu-img create -f qcow winxp.qcow 10G


De esta menera creariamos una imagen para qemu en formato qcow de 10 gigas

$ qemu -boot d -m 256 -cdrom /dev/cdrom -hda winxp.qcow

De esta manera empezariamos anstalar xp en la imagen creada anteriormente, indicandole a qemu que debe arrancar desde cd usando una memoria de 256 megas y que lo tiene que instalar en la imagen creada.

Si en vez de instalar un sistema operativo solamente quieres probar uno cdlive el comando seria algo parecido

$ qemu -boot d -m 256 -kernel-kqemu -cdrom ubuntu.iso

Asi arrancariamos el cd live con un uso de meoria de 256 usando el modulo kqemu y usando una imagen iso como cdrom

$ qemu -boot d -m 256 -kernel-kqemu -cdrom /dev/cdrom

Asi hariamos lo mismo pero usando un disco dentro de la unidad cdrom

ATIENDE: la opcion -kernel-kqemu no funciona para todos los sistemas operativos, sí para la mayoría de los recientes, como GNU/Linux y Windows 2000/XP, aunque estos últimos no durante la instalación lo cual se hace un poco pesada, y de momento sólo de 32 bits.

Ahora para arrancar la makina virtual instalada deberias usar un comando parecido a este:

$ qemu -hda winxp.qcow -boot c -kernel-kqemu -cdrom /dev/cdrom -m 256 -localtime

De esta forma te arranca la imagen del xp que instalaste con la opcion de la aceleracion que proporciona el -kernel-kqemu con soporte para cdrom, con 256 megas de uso y cogiendo la hora del sistema.

Para añadirle soporte usb lo puedes hacer de varias formas.

La primera o por lo menos la que yo te recomiendo que hagas las primeras veces es esta:

Arrancas la maquina virtual con el comando anterior, cuando el sistema esté cargado, pinchas el pendrive, logicamente no te va a montar nada en el xp, asi que haces lo siguiente:

Pulsas en el qemu esta combinacion de teclas

Ctrl+Alt+2

Y te aparecerá una pantalla en negro parecido a tty de linux, una vez alli tecleas info usbhost y te saldra algo parecido a esto:

Device 1.2, speed 480 Mb/s
Class 00: USB device 1254:5698, USB DISK

Una vez que sabemos los nuemros de tu dispositivo usb ponemos la siguietne linea en esa pantalla negra del qemu en la que estas:

add_usb host:numero:numero

En este ejemplo seria esto:

add_usb host:1254:5698


Si todo va bien no te saldra ningun mensaje de error ni nada y podras volver al escritorio de xp pulsando

Ctrl+Alt+1

y veras que ya está trabajando para detectarte el pendrive.

La siguiente forma de hacerlo es en el arranque de qemu.

Pinchas el pendrive y arrancas qemu de esta menera

$ qemu -hda winxp.qcow -boot c -kernel-kqemu -cdrom /dev/cdrom -m 256 -localtime -usbdevice host:1254:5698

Y asi tambien te lo detecta, pero claro tienes que saber previamente que numeros tienes que reyenar en el campo host y tenerlo pinchado en el arranque.

Otra cosa que a mi personalmente me llamaba la atención, era montar una partcion de datos que tengo en mi pc que es totalmente accesible en linux y quiero que se accesible tambien para mi maquina virtual, pues esto es muy sencillo, simplemente es añadir otro disco duro en el arranque, dejo la line abajo:


$ qemu -hda winxp.qcow -boot c -kernel-kqemu -cdrom /dev/cdrom -m 256 -localtime -usbdevice host:1254:5698 -hdb /dev/hda2

De esta forma arracariamos windows xp con aceleracion de kqemu, con soporte cd, con 256 megas de uso reservados para qemu, con horario del sistema linux, con soporte usb y pudiendo acceder a la particion de datos en este caso, o cualquiera que pongais.

Y con esto es suficiente para poder empezar a usar qemu.

Hay entornos graficos que hacen la vida mucho mas facil, aunque personalmente creo que no tienen tantas posibilidades como por linea de comandos, pero que viene bien tenerlos en cuenta, dejo unos links abajo:

Blog que habla de entornos graficos para qemu

Tambien dejo el link de la guia de usuario oficial de qemu donde se pueden mirar mas comandos y combinaciones para aplicar, recordad que en la man del qemu tambien está disponible.

Guia usuario qemu (ingles)

27 febrero 2007

[HowTo] Bluetooth 11.0

Paquetes necesarios:

  • bluez-firmware
  • bluez-hcidump
  • bluez-libs
  • bluez-utils
  • dbus
  • openobex
  • hal
  • KDE Bluetooth

  • Despues de un installpkg masivo, editamos el /etc/bluetooth/hcid.conf para que se asemeje a esto:

    options {
    autoinit yes;

    security user;

    pairing multi;

    passkey "1234"; # aqui el pin que mas os guste
    }

    device {
    name "BlueZh"; # aqui el nombre del dispositivo (pc) que mas os apetezca

    class 0x3e0100;

    iscan enable; pscan enable;

    lm accept;

    lp rswitch,hold,sniff,park;
    }

    ejecutamos (y/o añadimos a /etc/rc.d/rc.local para cargar siempre en el arranque)

    /etc/rc.d/rc.bluetooth start
    /etc/rc.d/rc.messagebus start
    /etc/rc.d/rc.hal start

    abrimos nuestro flamante kbluetoothd (acceder al dispositivo con konqueror), kbtobexclient (envio de archivos al dispositivo). [Menu K - Internet - kbluetoothd // kbtobexclient ]

    Catastrofe posible, que el dispositivo este caido.

    Para levantar el dispositivo bt del pc
    $ hciconfig
    hci0: Type: USB
    BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 678:8 SCO MTU: 48:10

    $ hcid hci0 up ## 0 en mi caso

    [ampliaré con mas comandos otro dia]

    Como curiosidad e informacion gratuita:

    El origen proviene de Harald Bluetooth, quien fuera Rey de Dinamarca en los años 940-981. Vikingo que fue reconocido por su carácter humanitario y su capacidad de ayudar a la gente a comunicarse. Cuenta la historia que en su reinado unió a Noruega y Dinamarca.

    ahi lo llevas.