Archivo de la Categoría “GNU/Linux”

Todo las cosas que se me van ocuriendo hacer con GNU/Linux

Voy a necesitar usar Windows XP, pero no me gusta andar reiniciando. Y como lo voy a usar exclusivamente por un único software me he decidido a instalarlo en un una máquina virtual con Qemu. Hay muchos how-to por ahí, así que yo sólo pondré las notas de lo que yo hice para conseguir hacerlo funcionar junto con los enlaces en los que basé para conseguirlo. Lo primero es instalar Qemu, y el que viene en los repositorios de Ubuntu funciona a la perfección. Instalamos el paquete qemu, kqemu-common, kqemu-source, module-assistant y build-essential. Lo de kqemu es para dar soporte en el kernel para acceleración en la virtualización, y la verdad es que se nota. A continuación debemos configurar nuestro sistema para poder hacer uso de kqemu, es muy fácil. Construímos el módulo para el kernel de kqemu:

  1. # cd /usr/src
  2. # sudo module-assistant prepare
  3. # sudo module-assistant auto-install kqemu
  4. Creamos el fichero /etc/udev/rules.d/60-kqemu.rules con el siguiente contenido: KERNEL=="kqemu", NAME="%k", GROUP="kqemu", MODE="0660"
  5. Cambiar el contenido de /etc/modprobe.d/kqemu: options kqemu major=0
  6. Crear el grupo kqemu y agregar el usuario al grupo: # addgroup --system kqemu # adduser usuario kqemu Asegúrate de que estos cambios toman efecto, deberías cerrar sesión y volver a entrar.
  7. # /etc/init.d/udev reload
  8. # update-modules
  9. # modprobe kqemu
  10. Comprobar que los permisos están correctamente: $ ls -l /dev/kqemu crw-rw---- 1 root kqemu 10, 62 2008-02-27 15:36 /dev/kqemu
  11. Si quieres que se carge el módulo de kqemu al arrancar, añade una línea que contenga la cadena “kqemu” en /etc/modules.

Una vez aquí, creamos la imagen que contendrá el disco en el que instalaremos el Windows: $ qemu-img create winxp.img 4G En este caso es de un tamaño de 4GiB. Introducimos el CD de instalación de Windows en el lector de CD y ejecutamos: $ qemu -localtime -hda winxp.img -cdrom /dev/cdrom -m 450 -boot d Ya instalado el sistema podemos iniciarlo con este comando: $ qemu -localtime -hda winxp.img -cdrom /dev/cdrom -m 450 -boot c Fuentes | Blog de Stolz y Community Ubuntu Documentation

Comments No Hay Comentarios »

Sí, con nspluginwrapper es posible. Tan fácil como instalarlo y ya te funcionarán todos los plugins de 32Bits que estabas usando con Firefox de 32 bits (mozilla-firefox-bin en Gentoo).

En Gentoo:
# emerge nspluginwrapper

A mí por ahora me funciona perfectamente, pero aún tengo que probarlo más tiempo. Pero vamos, lo dicho, ahora mismo estoy muy contento con el resultado. Es lo más cercano a usar el navegador completo en 64Bits que podemos tener por ahora.

Por supuesto, lo ideal sería no usar flash, o usar un plugin libre, pero eso es otra historia…

Comments No Hay Comentarios »

Ekiga gtalk2voipLo ideal sería tener una cuenta SIP en algún servidor, en mi caso tengo una cuenta en ekiga.net. Bueno, esto es realmente sencillo, tan sólo tenemos que poner la cuenta de la persona a la que queremos llamar de cierta manera a la hora de llamar a través de Ekiga. Por ejemplo si es MSN Messenger, sería llamar a ese usuario al servidor msn.gtalk2voip.com, pero de este modo, suponiendo que la cuenta de nuestro amigo es ususario@hotmail.com, cambiamos la ‘@’ por “_at_”, quedando finalmente la dirección a la que vamos a llamar de esta así: sip:usuario_at_hotmail.com@msn.gtalk2voip.com

Si queremos llamar un usuario de gtalk o de yahoo sería exactamente lo mismo, poniendo el usuario de esa forma y después de la arroba lo mismo, pero cambiando “msn” por “gtalk” o “yahoo”, quedando “…@gtalk.gtalk2voip.com” o “…@yahoo.gtalk2voip.com”.

Hay que tener en cuenta del lado del que recibe la llamada en MSN Messenger que debe tener permitido que usuarios que no estén en su lista de contactos puedan contactarle, si no fuera así no sería posible la comunicación.

Para conseguir esto debemos a ir en MSN Messenger a Herramientas->Opciones. Y una vez ahí pulsar en Privacidad.

MSN Messenger Opciones

MSN Messenger Privacidad

Más información en gtalk2voip.com.

Muchas gracias a Trinux por hacerme llegar esta información.

Comments 2 Comentarios »

Soy usuario de Gentoo GNU/Linux, y lo sigo siendo aún, desde su versión 1.4. Me considero un usuario que después tantos años usándola a diario, y que ha llegado a un nivel de confort y manejo de esta distribución tan alto, no me planteaba ni de lejos cambiar a otra.

Pero durante todo este tiempo las cosas han cambiado. Las noticias semanales de Gentoo, no son semanales, son a veces, como mucho. No estoy de acuerdo con la política que están llevando a cabo los desarrolladores, y ya tampoco con el modo en que pasan los paquetes a estables. En mi escritorio hay muchas cosas que han dejado de funcionar, así, de repente. Y que aún habiendo informado del fallo, no lo arreglan ni en versiones nuevas del escritorio, ni del propio programa afectado… vamos, que ya estoy un poco cansadito.

Para ser más concretos, nautilus-sendto hace un año que no me funciona, pidgin está en la rama inestable aún, la versión estable es gaim-1.5.0. En mi caso, en pidgin, ya no me cargan los avatares en jabber/XMPP (aún siendo menores a 8KiB y de 96×96 pixels), cosa que sí funcionaba en revisiones anteriores, tampoco la revisión ortográfica. Hay más cosas, pero esto creo que casi cualquiera puede entenderlo. Cosas que cuando actualizas dejan de funcionar.

Todo esto me ha llevado a pasarme, al menos por ahora en mi portátil, a Ubuntu. En Gentoo tenía configurados todos los botones multimedia, ahorro de energía y mil cosas, incluso el puerto infrarrojo. Todo funcionaba a falta de la webcam y el lector de tarjetas que no tienen aún driver en Linux. ¿Qué ocurre?, que además de todo lo expuesto antes, imaginad, si actualizaba ciertos paquetes que modificaban archivos que yo había modificado, pues tenía que pegarme el curro de hacer que volviera a funcionar. Si cambiaba de kernel o actualizaba el driver de ATI propietario, dejaba de funcionar tanto la suspensión como la hibernación. Cosas que en un portátil vienen muy bien.

Que nada, que me he hartado de politiqueo absurdo, ideas locas y de pegarme horas tontas para hacer algo que en Ubuntu me funciona a la primera. No será la panacea, no será perfecta, también descubriré cosas que no me gusten, pero por ahora para mi portátil y mis necesidades es la mejor opción.

Así que puedo decir sin avergonzarme que: ¡Me he vendido!

Comments 2 Comentarios »

Llevaba una temporada intentando averiguar por qué narices si en mi red hacía ping hostname no me resolvía la dirección IP del equipo. Al final resultó que en DD-WRT, cuando asignamos direcciones estáticas a nuestros equipos, debemos usar direcciones que no estén dentro del rango de direcciones IP que se asignan automáticamente por dhcp. Este problema no lo tenía con OpenWRT que tuve que dejar usar, muy a mi pesar, por unos problemas muy extraños que comenzó a darme.

Di con esto gracias al wiki de DD-WRT, en este enlace en el apartado DHCP Options.

Comments No Hay Comentarios »

Antes, en mi instalación de Gentoo de mi antiguo Athlon Thunderbird, todo usuario al ser creado pertenecía al grupo users, en esta instalación, mis usuarios pertenecen por defecto a un grupo primario con GID=UID y nombre de grupo igual al nombre de usuario. Esto es así para facilitar la gestión de grupos de usuarios gracias a UPG, aquí se explica con detalle en qué consiste.

Lo que a mi me interesa es que mi usuario pueda borrar ficheros del usuario p2p, así podré borrar las decargas después de copiarlas a DVD o bien moverlas a otra ubicación. La idea es que cada usuario del sistema perteneza a un grupo primario con GID igual a su UID y con el mismo nombre que el usuario. De este modo el usuario p2p pertenecería al grupo primario p2p.

  1. # grep p2p /etc/passwd
    p2p:x:103:100:added by portage for mldonkey:/home/p2p:/bin/bash
    (Para ver el UID del usuario p2p y su grupo principal, 103 y 100 respectivamente, marcado en negrita.)
  2. # groupadd -g 103 p2p (Si no existe el grupo p2p lo creamos.)
  3. # usermod -g p2p p2p (El grupo principal de p2p es p2p.)
  4. # gpasswd -a usuario p2p (Esto sólo si el usuario no pertenece al grupo p2p.)
  5. # usermod -g grupo usuario (Cambia el grupo principal, grupo debe coincidir con el nombre de usuario, si no existiera ese grupo, lo creamos como hicimos antes con el grupo p2p)

Ahora tenemos que modificar el fichero /etc/profile y cambiar umask 022 por umask 002.

Es recomendable que reinicies la sesión para que los cambios tengan efecto.

Comments No Hay Comentarios »

Con esto lo que quiero conseguir es que mi AMD64 ayude en los procesos de compilación al instalar o actualizar paquetes en un Pentium II que uso como servidor.

Debemos tener instalado distcc en todas las máquinas que participen en la compilación, tanto la que ejecuta emerge como las que reciben las tareas de compilación ditribuida, y, a ser posible, la misma versión de distcc en todas las máquinas. Ejecutamos en todas las máquinas:
# emerge --sync
# emerge distcc

Equipo que lanza emerge (arquitectura i686):

  1. # cd /usr/lib/distcc/bin
    # rm -f cc gcc c++ g++
    # echo '#!/bin/bash' >i686-pc-linux-gnu-gcc-wrapper
    # echo 'exec /usr/lib/distcc/bin/i686-pc-linux-gnu-g${0:$[-2]} "$@"' \
    >> i686-pc-linux-gnu-gcc-wrapper
    # chmod a+x i686-pc-linux-gnu-gcc-wrapper
    # ln -s i686-pc-linux-gnu-gcc-wrapper cc
    # ln -s i686-pc-linux-gnu-gcc-wrapper gcc
    # ln -s i686-pc-linux-gnu-gcc-wrapper c++
    # ln -s i686-pc-linux-gnu-gcc-wrapper g++
  2. Ver versiones exactas de binutils, gcc, linux-headers, y glibc:
    *** Si no tienes el comando eix: emerge eix && update-eix
    # eix -c sys-devel/binutils$
    # eix -c sys-devel/gcc$
    # eix -c sys-kernel/linux-headers$
    # eix -c sys-libs/glibc$
  3. Añadir los equipos que participan en la granja de compilación:
    # distcc-config --set-hosts "nombre_equipo_64bits localhost"
  4. Configurar portage para que haga uso de distcc añadiendo “distcc” a FEATURES en /etc/make.conf y ajustar MAKEOPTS para que se lancen más procesos de compilación:
    FEATURES="distcc parallel-fetch"
    MAKEOPTS="-j6"

Equipo que asiste a la compilación (arquitectura x86_64):

  1. Instalamos crossdev y creamos el compilador cruzado usando las versiones que vimos del equipo i686 (punto 2 del apartado anterior):
    # emerge crossdev
    # crossdev -t i686-pc-linux-gnu --b 2.16.1-r3 --g 4.1.2 --k 2.6.17-r2 --l 2.5-r3

    Significado de las opciones: –b <versión de binutils> –g <versión de gcc> –k <versión de linux-headers> –l <versión de glibc>
  2. Editar /etc/conf.d/distccd para permitir recibir compilaciones dentro de equipos de nuestra red, por ejemplo:
    DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24"

  3. Lanzar distcc siempre que vayamos a ejecutar emerge en el equipo al que asistimos (arquitectura i686):
    # /etc/init.d/distccd start

Diferencias de tiempo de compilación antes de distcc y después de distcc:

  • PHP:
    Fri May 11 07:27:57 2007 >>> dev-lang/php-5.2.2-r1
    merge time: 1 hour, 25 minutes and 13 seconds.
    Mon Jun 11 14:06:41 2007 >>> dev-lang/php-5.2.2-r1
    merge time: 59 minutes and 24 seconds.
  • cURL:
    Tue Mar 27 02:17:02 2007 >>> net-misc/curl-7.15.1-r1
    merge time: 7 minutes and 26 seconds.
    Mon Jun 11 13:07:17 2007 >>> net-misc/curl-7.15.1-r1
    merge time: 6 minutes and 41 seconds.

Enlaces de interés: Gentoo Documentation y Gentoo-Wiki.

Comments No Hay Comentarios »

Supongo que será válido para cualquier distribución, salvo por el comando emerge paquete que es propio de Gentoo, en caso de Ubuntu o Debian sería apt-get install paquete.

# emerge mkfontdir mkfontscale
# cd /usr/share/fonts
# mkdir myfonts
# cp /ruta/a/fichero.ttf myfonts/
# mkfontscale myfonts/
# mkfontdir myfonts/
# mkfontdir -e encodings/ myfonts

Añadimos la línea FontPath “/usr/share/fonts/myfonts/” al fichero de configuración de xorg /etc/X11/xorg.conf:

Section “Files”
RgbPath “/usr/share/X11/rgb”
FontPath “/usr/share/fonts/misc/”
FontPath “/usr/share/fonts/100dpi/”
FontPath “/usr/share/fonts/75dpi/”
FontPath “/usr/share/fonts/freefonts/”
FontPath “/usr/share/fonts/corefonts/”
FontPath “/usr/share/fonts/arphicfonts/”
FontPath “/usr/share/fonts/baekmuk-fonts/”
FontPath “/usr/share/fonts/default/ghostscript/”
FontPath “/usr/share/fonts/myfonts/”
# ModulePath “/usr/lib/modules”
EndSection

Paquetes de fuentes TrueType que tengo instalados de portage:

  • media-fonts/arphicfonts
  • media-fonts/baekmuk-fonts
  • media-fonts/corefonts
  • media-fonts/freefonts
  • media-fonts/gnu-gs-fonts-std

Comments No Hay Comentarios »

Hoy trinux me ha dicho que estaba usando Pando, y que le iba bien. Ya había intentado usarlo antes en Gentoo 64Bits, pero no lo conseguí. Hoy he googleado y me he ayudado de una web que me puso sobre la pista.

  1. Empezamos bajando pando.
  2. Descomprimimos en donde nos plazca. Por ejemplo, creamos un directorio llamado pando en nuestro home. /home/usuario/pando y ahí lo descomprimimos todo.
  3. Creamos un enlace a la librería de 32Bits:
    $ cd /home/usuario/pando/pandodl/lib
    $ ln -s /usr/lib32/libexpat.so.0 libexpat.so.1
  4. $ cd /home/usuario/pando/pandodl
    Creamos un fichero texto llamado pando con permisos de ejecución que contenga:
    #!/bin/bash
    export PANDO_HOME="/home/usuario/pando/pandodl"
    exec $
    PANDO_HOME/pandodl
  5. Y por último ejecutar pando:
    $ cd /home/usuario/pando/pandodl
    $ ./pando

Comments 6 Comentarios »

Usar bash-completion en Gentoo es una gozada, permite autocompletar las opciones de los comandos típicos de Gentoo como genkernel, emerge, equery y otros. Además de mostrar una lista de las coincidencias para autorrellenar.

Para instalarlo basta con:
# emerge bash-completion

Además debemos añadir esta línea de código al fichero /etc/bash/bashrc, teniendo en cuenta que hay que ponerla siempre antes de la ejecución de cualquier sentencia alias:
[[ -f /etc/profile.d/bash-completion.sh ]] && source /etc/profile.d/bash-completion.sh

Si queremos ir probándolo ya, en la sesión bash actual, debemos ejecutar:
# source /etc/profile.d/bash-completion.sh.

Para root la solución más limpia y que menos mantenimiento posterior requiere es añadir una línea en el .bashrc:
# echo "source /etc/profile.d/bash-completion.sh" >> /root/.bashrc

Si queremos dar soporte a otras utilidades y programas para bash-completion hemos de añadir la USE=”bash-completion”, en /etc/make.conf o algún otro sitio válido que prefieras. Vuelve a emerger los paquetes en los que se hayan activado esta use y luego activa el uso de bash-completion para el comando que quieras usando por ejemplo eselect:

  • # eselect bashcomp list
    Para ver la lista de comandos soportados.
  • # eselect bashcomp enable gentoo
    Activar completado bash en comandos Gentoo para root.
  • # eselect bashcomp enable --global gentoo
    Activar completado bash en comandos Gentoo para todos los usuarios.

Esta entrada fue actualizada el 23 de septiembre de 2010.

Comments No Hay Comentarios »