29 diciembre 2007

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)