viernes, 9 de noviembre de 2007

Skype 2 32bits para Linux amd64

Skype 2 for Linux with video
(con soporte de Video!!!)

  1. Bajar el Skype 2.0 en Static.
  2. Descomprimir en /opt/skype.
  3. Instalar paquete ia32-libs.
  4. Ejecutar el comando:
    ldd /opt/skype/skype | awk '/not found/{print $1}'
    Buscar las librarias que salen después del comando en su versión para 32bits y copiarlos a /opt/skype/lib/. Una posibilidad es usar el repositorio debian y descomprimir los debs para poder copiar las librerias.
  5. Crear archivo ejecutable en /usr/local/bin/skype:
    #!/bin/sh
    SP=/opt/skype
    export LD_LIBRARY_PATH=$SP/lib/
    $SP/skype --resources=$SP/ $@
  6. Asegurar que todo pertenece a root y solo el tiene permisos de modificación:
    chown -R root:root /opt/skype /usr/local/bin/skype
    chmod -R go-w /opt/skype /usr/local/bin/skype

  7. Crear acceso directo en tu desktop a /usr/local/bin/skype con el icono de /opt/skype/icons.

jueves, 8 de noviembre de 2007

Instalación de Windows XP en KVM

Primero se debe comprobar que se pueda usar kvm, de no ser así se puede usar qemu con kqemu que también se trata de una solución libre. Para comprobarlo el comando de a continuación debe responder si dispones de las extensiones de virtualización:
grep '^flags.*(svm|kvm)' /proc/cpuinfo

Con extensiones de virtualización en la CPU: (Recomendado)
Programas necesarios:
kvm, qemu
Módulos necesarios: kvm, (kvm-intel|kvm-amd)

Sin extensiones de virtualización en la CPU:
Programas necesarios:
qemu
Módulos necesarios: kqemu
En ese caso debería funcionar reemplazando los comandos "kvm" por "qemu" pero no ha sido probado.

  1. Crear disco virtual:
    qemu-img create -f qcow vdisk.img 10G
    Para conseguir mejor resultados de disco en windows es mejor usar qcow2 envez de qcow.

  2. Empezar la instalación:
    kvm -hda vdisk.img -cdrom windowsxp.iso -boot d -m 256 -no-acpi -localtime
    ACPI en virtualización va muy lento así que lo desactivamos, eso tiene la pega de que no se reinicia correctamente durante la instalación (en mi caso lo he reiniciando matando a kvm).
    Después de la instalación de agrega a mano un hardware de sistema llamado algo parecido a "APM/Legacy NT" para que se apague y reinicie correctamente mediante el uso de APM y sin usar ACPI.


  3. Empezar a usar Windows:
    • Básico
      export QEMU_AUDIO_DRV=sdl
      kvm -hda vdisk.img -m 256 -no-acpi -localtime -soundhw es1370

      No tiene problemas.

    • Seamless
      export QEMU_AUDIO_DRV=sdl
      kvm -hda vdisk.img -m 256 -no-acpi -localtime -soundhw es1370 \
      -redir tcp:3389::3389 -nographic -monitor null -serial null

      1. Ejecutar en modo básico (mirar el apartado anterior).
      2. Se debe descomprimir el SeamlessRDP en la carpeta c:\seamlessrdp\
      3. A preferencias de sistema se activa el acceso remoto.
      4. A cuentas debe estar activado la pantalla de bienvenida y cambio rapido de usuarios.
      5. Se le pone password al usuario Administrador.
      6. Apagar el Windows y ya se puede iniciar en modo seamless que kvm ya no necesitara las X.
      7. Desde Linux ya se puede entrar con rdesktop.

      rdesktop -E -r sound:remote -r disk:home=$HOME -k es -u administrador -p - \
      -A -s "c:\seamlessrdp\seamlessrdpshell.exe taskmgr"

      Aquí se usa RDP en vez de SMB para los archivos pero se recomienda usar elprograma Samba.
Más información:
man qemu
Se aplican los parámetros de qemu en kvm.

Apagar desde RDP:
Ejecutar o crear acceso directo a
shutdown -s -f

Comprimir la imagen de disco:
  1. Defragmentar en Windows (Guest).
  2. Ejecutar SDelete en Windows (Guest):
    sdelete -c c:

  3. Apagar el Guest.
  4. Comprimir la imagen en el Host:
    mv vdisk.img vdisk-zerofull.img
    qemu-img convert -c -f qcow vdisk-zerofull.img -O qcow vdisk.img
    rm vdisk-zerofull.img

miércoles, 7 de noviembre de 2007

Actualizacion de la bios de Asus A8NSLI-Deluxe

El otro dia recibi porfin mi super microprocesador nuevo AMDX2, socket 939 para que fuera compatible con mi placa.

Apaque el ordenador, saque el antiguo y puse el nuevo. Arranque cruzando los dedos y lo hizo, vi que no tenia soporte para powernow/cool'n'quiet, lo cual me extraño porque leyendome las especificaciones del micro nuevo vi que tenia esa funcionalidad... Haciendo un cat /proc/cpuinfo vi que no reconocia bien el micro, asi que me imagine, que me hacia falta una actualizacion de bios.

Me meto en asus.com, me bajo la ultima actualizacion y me encuentro en el dilema de siempre al actualizar una bios. No tengo disketera y me toca los webos tener que tostar un dvd por 500 kb, asi que investigo a ver si hay algo para linux para flashear bios. Logicamente en asus no tienen nada, solo para güindous...

Despues de buscar un poco encontre esto, se trata de una utilidad que se creo para flashear las bios del proyecto LinuxBIOS pero que supuestamente funciona tambien para BIOS propietarias, la forma de usar la aplicacion es muy sencilla y aqui tienes una lista de las placas oficialmente testeadas por si te animas ha usarla, pero antes te recomendaria que siguieras leyendo para que veas lo que me paso a mi con la placa A8N-SLI Deluxe.

Bueno el caso es que me lei el wiki del proyecto flashrom y no tiene mucho misterio, en la lista de placas testeadas oficialmente no estaba la mia, ni en las que tenian el visto bueno ni en las que cascaban, pero habia un modelo superior, A8N-SLI Premium ... Bueno pues me arme de valor, me agarre los machos y me dispuse a ello.

1) Lo instale manualmente :

$ svn co svn://linuxbios.org/repos/trunk/util/flashrom
$ cd flashrom
$ make
$ sudo make install


2) Hice un backup de la bios actual

$ flashrom -r backup.bin

Hasta aqui todo perfecto...

3) Flashee la nueva BIOS

$ flashrom -wv backup.bin

Error al comprobar la nueva bios.... ufff una gota de sudor frio recorre mi espalda... voy a volver a poner el backup que esto me da mala espina

$ flashrom -wv 1805.BIN

Error al comrpobar la nueva bios.... Bueno... a lo mejor no comprueba correctamente la bios pero esta bien programada.... Vuelvo a meter la nueva y pienso... vamos ha hacer un backup de la nueva y un diff a ver si son iguales el backup de la nueva de la nueva bajada de asus... si lo son imagino que esta bien programada.

flashrom -wv 1805.BIN
flashrom -wv backup-nueva.bin
diff 1805.BIN backup-nueva.bin


Los archivos son distintos.... Bueno tampoco tenia porque demostrar nada... A lo mejor el backup es distinto de una imagen nueva antes de flashearla... ¿Me arriesgo y reinicio?

... Logicamente, ya sin BIOS en mi placa, hice lo que suelo hacer siempre, cagarme en todo lo cagable y despues ponerme a llorar como una madalena.

Cuando reiniciaba me salia un mensaje de meter cd o diskete para arrancar, meti un dvd de gparted live que tengo para ver si podia de alguna forma flashearla again pero no arrancaba, buscaba un archivo que te viene en la descarga de la actualizacion de la BIOS AWDFLASH.EXE. Cree un DVD con estos dos archivos (AWDFLASH.EXE, 1805.BIN) desde otro ordenador y ya arranque flasheo la BIOS correctamente y todo parecia "funcionar" de nuevo... Ya con el soporte para AMDX2... pero.... aqui no acaba la historia...

El Ordenador desde donde estoy haciendo todo esto, es mi ordenador principal de casa que hace de firewall nateo y mil pijotadas mas, tiene 2 tarjetas de red, la principal que sale a internet, eth1 y la que va a la red local eth2... pos bien, no me reconocia eth1... Como usuario de Güindous (en mi jornada laboral) le eche la culpa al sistema... me mire de arriba abajo el kernel los modulos de red, meti incluso nuevos modulos... despues de estar dandole vueltas y cabreado me fui a dormir.

Al dia siguiente mas tranquilo pense en lo que habia hecho. He flasheado una BIOS, el sistema tiene que estar bien, no he tocado el sistema, asi que o se ha jodido la tarjeta de red, al poner el micro o la BIOS se lo ha cargado...

Empece a mirar dmesg mas tranquilamente, los lspci, los modulos cargados y el udev. ¡BINGO! Tenia una nueva tarjeta eth3, ¿que habia pasado? el flasheo habia cambiado la MAC de la tarjeta principal, en las reglas del udev tenia algo asi :

cat /etc/udev/rules.d/70-persistent-net.rules
# Firewire device 0011d800002ace6e)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:00:00:2a:ce:6e", NAME="eth0"

# PCI device 0x11ab:0x4320 (skge)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:d9:c6:d5", NAME="eth2"

# PCI device 0x10de:0x0057 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:e5:b6:b8", NAME="eth1"

# PCI device 0x10de:0x0057 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="04:4b:80:80:80:30", NAME="eth3"


Si os fijais hay dos dispositivos practicamente identicos en el eth1 y eth3 la unica diferencia es la MAC.... Modifique el archivo dejandolo asi

nano -w /etc/udev/rules.d/70-persistent-net.rules
# Firewire device 0011d800002ace6e)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:00:00:2a:ce:6e", NAME="eth0"

# PCI device 0x11ab:0x4320 (skge)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:d9:c6:d5", NAME="eth2"

## # PCI device 0x10de:0x0057 (forcedeth)
## SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:11:d8:e5:b6:b8", NAME="eth1"

# PCI device 0x10de:0x0057 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="04:4b:80:80:80:30", NAME="eth1"


Para mas INRI mi proveedor de internet solo me deja conectarme con una mac-address por lo que no me dejaba conectar, me acorde de mis andanzas con la funcion preup() en el /etc/conf.d/net he hice el cambio manual de mac justo antes de arrancar la red

preup()
{
ifconfig eth1 hw ether 00:11:d8:e5:b6:b8
}


Ya contento y al tener todo funcionando me dispuse a jugar al etqw :D

Bueno, a todo esto lo unico que cambie fue en el /etc/make.conf MAKEOPTS="-j3" :D

Seguidores