Los usuarios de Gentoo hemos podido notar en muchas ocasiones una repentina reducción del rendimiento porque la compilación acapara la mayor parte del tiempo de cómputo del sistema cuando estamos instalando nuevo software. Esto se agrava aún más cuando compilamos paquetes muy grandes, el compilador o lenguaje usado puede necesitar más recursos para el proceso de compilación. Por ejemplo C++ necesita más recursos que C para compilar. Para evitar que cuando la máquina está siendo usada para otros menesteres que consideremos más importantes o urgentes, Portage nos ralentice los procesos de estas tareas, podemos hacer uso de las variables PORTAGE_NICENESS y PORTAGE_IONICE_COMMAND en el fichero /etc/portage/make.conf.
Para el make.conf de mi equipo de trabajo uso esta configuración:
PORTAGE_NICENES=10 Con este conseguimos bajar la prioridad de Portage y de los procesos hijos que ejecute.
PORTAGE_NICE_COMMAND="ionice -n7 -p \${PID}" Con este otro, el fin es hacer que la copia de ficheros (io = entrada/salida) tenga la proridad más baja posible.
Para más información sobre estas variables recomiendo las páginas del manual de make.conf, nice e ionice.
$ man make.conf
$ man nice
$ man ionice
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
Para modificar el comportamiento del historial de BASH tan solo tenemos que hacer un export de la variable de entorno HISTCONTROL.
Podemos hacerlo de tres modos:
Desde la consola con el comando $ export HISTCONTROL=ignoredups, por ejemplo.
O si queremos que este cambio sea permanente para nuestro usuario, podemos ejecutar el siguiente comando: $ echo "HISTCONTROL=ignorespace" >> ~/.bashrc
O bien, si además queremos que este cambio sea para todos los usuarios incluido el usuario root, tendríamos que establecer el valor de esta variable para todos los usuarios de este modo: # echo "HISTCONTROL=ignoreboth" > /etc/env.d/99histcontrol
Los valores válidos que puede tomar esta variable son:
ignorespace: si un comando comienza por espacio no se incluye en el historial.
ignoredups: no se añaden los comandos que ya se han usado previamente en esa sesión de consola.
ignoreboth: el igual a ignorespace e ignoredups juntos.
erasedups: antes de añadir un comando al historial, borra todas las ocurrencias coincidentes anteriores.
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
Hace tiempo compré un netbook chino de esos baratos, me costó 69€, bastante barato y la verdad que es divertido, venía con un Android algo tosco, ya que la adaptación que hicieron no era demasiado buena. Mirando por internet y foros conseguí ponerle una versión modificada que realmente mejora mucho la funcionalidad del aparato, ¡incluso puedo usar Skype!
Pero realmente compré el aparato porque me parecía muy interesante poder instalarle una distribución GNU/Linux personalizada para la máquina, pero para ello primero comenzaremos probando si es posible cargar un núcleo fiel a los parámetros que siguen los núcleos Linux. Que el núcleo Linux de Android, señores, no lo es, al menos hasta la versión 3.2 de Linux.
En Android: $ uname -m
armv5tejl
En el computador: # crossdev -t armv5tel-softfloat-linux-gnueabi # git clone git://git.code.sf.net/p/linuxwmt/code linuxwmt-code
$ make ARCH=arm menuconfig $ make -j4 ARCH=arm uImage modules
Si no usas Gentoo puedes usar un toolchain descargado de aquí.
Después de tanto tiempo parece que por fin es posible usar el DNIe en Gentoo satisfactoriamente. Aquí detallo las instrucciones, que por supuesto son válidas para otros sistemas diferentes, salvo que habría que proceder de forma análoga con comandos distintos en la instalación de los paquetes propios del sistema de paquetería que uses.
# emerge pcsc-tools pcsc-lite opensc Instalamos los paquetes necesarios.
# rc-update add pcscd default Añadimos pcscd al arranque.
# /etc/init.d/pcscd start Iniciamos el servicio pcscd
# emerge jss Network Security Services para Java necesario para muchos sitios web
Modificar el fichero de configuración /etc/opensc.conf: # card_driver dnie {
# # Enable/Disable user consent on signing (default: enable)
# user_consent_enabled = true;
# # Program to be used for ask confirmation (default: pinentry)
# user_consent_app = /usr/bin/pinentry;
# }
...
reader_driver pcsc {
...
# Connect to reader in exclusive mode?
# Default: false
# connect_exclusive = true;
...
# Enable pinpad if detected (PC/SC v2.0.2 Part 10)
# Default: true
enable_pinpad = false;
...
}
...
# PKCS #15
framework pkcs15 {
....
# Prefer pkcs15 emulation code before
# the normal pkcs15 processing.
# Some cards (like esteid and pteid) work in emu-only mode,
# and do not depend on this option.
#
# Default: no
try_emulation_first = yes;
....
}
...
# Parameters for the OpenSC PKCS11 module
app opensc-pkcs11 {
pkcs11 {
# Should the module support hotplug of readers as per PKCS#11 v2.20?
# This affects slot changes and PC/SC PnP, as v2.11 applications
# are not allowed to change the length of the slot list.
# Default: true
plug_and_play = false;# Maximum Number of virtual slots
...
$ dnie-tool -d -w Probamos que tenemos acceso al DNIe. Asegúrate de tener el lector conectado y el DNIe introducido en el lector. $ dnie-tool -d -w
Waiting for a card to be inserted...
DNIe Number: 99999999X
SurName: PEREZ
Name: JUAN LUIS
Añadimos los certificados raíz como autoridad certificadora en Firefox. Que los podemos bajar de aquí.
Añadimos el módulo para acceder al lactor en Firefox, en Editar->Preferencias->Avanzado->Cifrado->Dispositivos de seguridad->Cargar->Examinar… Y añadimos la ruta /usr/local/lib/pksc11/opensc-pkcs11.so.
Hoy vamos a ver como instalar Sparkleshare en un servidor propio y su uso en una estación de trabajo. He leído hablar de él y también me parecía genial la idea de poder tener un algo similar a Dropbox pero en mi propio servidor. La idea es genial, en el servidor tenemos ssh como servicio y en los clientes instalamos Sparkleshare y Git.
En el lado del servidor solo es necesario tener en funcionamiento el servicio ssh, y al menos un usuario en el servidor que será el que tenga acceso a su carpeta compartida. En el lado del cliente será necesario tener instalado openssh para usarlo como cliente (que yo ya tenía instalado), git y sparkleshare.
# chmod g+s /home/sparkleshare (con esto conseguimos que los ficheros y directorios creados por usuario pertenezcan al grupo sparkleshare)
# su usuario -c “git init –bare /home/sparkleshare/usuario/usuario.git”
2. Preparar la máquina cliente:
Instalamos Sparkleshare en la máquina de trabajo cliente, también con Gentoo:
# layman -a betagarden Añadimos el overlay betagarden a nuestro portage.
# layman -S Sincronizamos todos nuestros overlays de terceros.
# echo "app-backup/sparkleshare ~amd64" >> /etc/portage/package.keywords/sparkleshare Aceptamos sparkleshare para instalar como inestable.
# emerge -avq sparkleshare Lo instalamos.
$ sparkleshare start Y lo ejecutamos como usuario.
3. Configurar Sparklshare en la máquina cliente:
Ponemos nuestro nombre y la dirección de correo-e a la que queremos que Sparkleshare nos envíe notificaciones.
¡Antes de continuar es importante este paso! En este momento Sparkleshare ha creado una pareja de claves pública y privada para su uso con ssh para la comunicación con el servidor. Tenemos que agregar la clave pública a nuestro usuario en nuestro servidor para permitir el acceso con las claves generadas por Sparkleshare.
$ ssh-copy-id -i .config/sparkleshare/sparkleshare.usuario@micorreo.com.key.pub usuario@miservidor Ejecutamos esto como usuario en la máquina cliente para copiar la clave pública en el servidor.
En la siguiente ventana de configuración ponemos el servidor con el nombre de usuario, por ejemplo: usuario@miservidor. Y en nombre de la carpeta ponemos la ruta completa al repositorio git en este caso sería /home/sparkleshare/usuario/usuario.git.
Bien, ahora sí podemos pulsar en “sincronizar”.
¡¡Y ahora a probarlo!!
5. Otras consideraciones para la configuración:
Debemos tener en cuenta que si nuestro puerto de acceso a ssh no es el puerto 22 por defecto, Sparkleshare no funcionará pues no tenemos en la interfaz ninguna forma de indicar el puerto de conexión. Sin embargo sí que hay una solución para ello. Haremos lo siguiente en el equipo cliente como usuario: $ nano -w ~/.ssh/config Creamos y editamos el fichero.
Host ejemplo.com
Port 1234
4. Opinión del estado actual del proyecto Sparkleshare:
Todavía es un proyecto joven al que le falta pulir muchas cosas y añadir muchas funciones más. Detecta bien los cambios de nombre de fichero, la adición de ficheros, la modificación de su contenido, la eliminación… Sin embargo el interfaz gráfico todavía deja bastante que desear. Se ve que se están centrando más en el comportamiento y funcionamiento de la sincronización.
Si te ha resultado útil y te gustaría compensarme invitándome a una cervecita o bien ayudánme con los gastos del blog:
Recompilar el kernel activando las siguientes características:
Device Drivers --->
Graphics support --->
<*> /dev/agpgart (AGP Support) --->
<*> Modul für deinen Chipsatz wählen
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<*> ATI Radeon
[*] Enable modesetting on radeon by default
Y también:
Device Drivers --->
Generic Driver Options --->
-*- Userspace firmware loading support
[*] Include in-kernel firmware blobs in kernel binary
(radeon/R700_rlc.bin) External firmware blobs to build into the kernel binary
(/lib/firmware) Firmware blobs root directory
Un ScreenCast es al vídeo lo que un SnapShot (pantallazo o captura de pantalla) a la fotografía. Hay algunos programas que realizan capturas de vídeo de lo que se muestra en nuestra pantalla, unos con mejores resultados que otros y también con mayor o menor dificultad de uso. Ejemplo de ello son Istanbul y RecordMyDesktop, dos soluciones que podrían funcionar muy bien. Sin embargo, no me permiten grabar sonido de un micrófono mientras graba la pantalla, para por ejemplo dar explicaciones mientras muestras algo. Cosa que puede ser bastante útil. Hace unos meses descubrí que ffmpeg es capaz de esto y me puse a hacer algunas pruebas para conseguir grabar vídeos con la característica de que se pudiera oír mi voz dando algunas explicaciones. En realidad no era para nada muy serio, pero en alguna ocasión me ha surgido la situación que querer explicar a alguien cómo hacer algo, y la verdad que tardaría un minuto en hacerlo con un vídeo así y no como sería con una explicación por escrito, que además si no me explico bien, quizás pueda llevar más a confusión. Veamos las opciones de ejecución por separado:
-i dispositivo se usa para indicar el dispositivo de entrada tanto para vídeo como para audio.
-f formatoes para indicar el formato de entrada ya sea de vídeo o de audio.
-r n consigue que se haga la grabación n fotogramas por segundo.
-s tamaño es la forma que tiene ffmpeg de recibir el tamaño de captura de pantalla, puede ser indicado de varias formas, como 640x480 o bien su equivalente vga. Podemos ver una lista de nombres para los diferetesta tamaños aquí o bien poner un tamaño diferente de la forma valorxvalor.
-b se usa para estipular la tasa de bits por segundo que se van a usar en la salida ya sea de vídeo o sonido, ejemplo: -b 128k.
-sameq consigue que se haga la captura con la misma calidad que tenga la propia entrada. Haciendo que la tasa de bits por segundo de la salida sea la necesaria como para que no sea apreciable ninguna pérdida de calidad con respecto a la entrada. Si usas esta opción, no es neceseario usar -b.
-async n muy útil para conseguir una buena sincronización del sonido de entrada y la imagen. De este modo, si grabamos nuestra voz mientras grabamos el vídeo veremos como nuestras palabras van en sincronía con el vídeo.
Algunos ejemplos:
$ ffmpeg -f oss -i /dev/dsp salida.mpg Para capturar sonido con OSS.
$ ffmpeg -f alsa -i plughw:1,0 salida.mpg Para capturar sonido con ALSA.
$ ffmpeg -f -x11grab -i :0.0 -s 1280x1024 -r 25 salida.mpg Para capturar vídeo de la pantalla.
$ ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -sameq Desktop/out.mpg Para capturar vídeo de la webcam.
$ ffmpeg -async 1 -f alsa -i plughw:1,0 -f x11grab -s 1440x900 -r 25 -i :0.0 -b 128k Desktop/out.mpg Capturar vídeo y sonido a la vez.
Tener un sistema de 64bits en ocasiones da algunos quebraderos de cabeza, más que nada porque hay Software que es distribuido para plataformas x86 en su versión 32bits. Esta práctica es muy normal en desarrollos de Software privativo. Antes Adobe no distribuía su famoso Flash para 64bits para GNU/Linux y otro ejemplo es Skype, que aún se niega a publicar una versión de 64bits de su famoso programa de vídeo-conferencias.
Si además unimos a esto que Skype tiene problemas con las cámaras basadas en el driver gspca, tenemos un cóctel bastante amargo.
Para hacer funcionar nuestra flamante cámara basada en el driver gspca_561 o cualquier otra cámara basada en los drivers gspca en el Skype de nuestro Gentoo GNU/Linux 64bits debemos seguir los pasos siguientes:
# echo "media-libs/libv4l ~amd64" >> /etc/portage/package.keywords
# emerge -av media-libs/libv4l Para instalar la versión 0.6.1 de libv4l que está enmascarada y es la que mejor funciona.
# nano -w /usr/bin/skype Modificamos el fichero para que cuando ejecutemos Skype cargue la biblioteca de compatibilidad con V4l1:
#!/bin/sh
cd “/opt/skype”
if [ -n "/opt/skype" ] ; then
if [ "${LD_LIBRARY_PATH+set}" = "set" ] ; then
export LD_LIBRARY_PATH=”${LD_LIBRARY_PATH}:/opt/skype”
else
export LD_LIBRARY_PATH=”/opt/skype”
fi
fi
export LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so
exec ./skype “$@”
Si nos encontrásemos con la situación de que portage nos dice que Skype está enmascarado por el tipo de licencia, debemos decir a portage que acepte la licencia de Skype o bien que las acepte todas y así olvidarnos de eso. Basta con editar el fichero /etc/make.conf para añadir una de estas líneas:
ACCEPT_LICENSE="skype-eula" Para aceptar solo la licencia de Skype.
ACCEPT_LICENSE="*" Para aceptar cualquier licencia.
Con esto podemos usar normalmente Skype, y veremos como ya podemos disfrutar de nuevo nuestra Webcam.
Si algo te ha resultado útil, te ha ahorrado tiempo o dinero, o simplemente te ha gustado mi blog, puedes darme la voluntad para ayudarme a pagar los costos del sitio.
Donaciones con Bitcoin
Escanea la imagen con tu lector de códigos QR, arrastrála a tu cliente de Bitcoin o haz clic aquí para donar.