Mortuux

Diario de un estudiante geek. Informática, tecnología, programación, redes, sistemas operativos, bases de datos…

Archivos mensuales: octubre 2010

Utilizar las fonts de Ubuntu en Debian.

Las fonts que utiliza Ubuntu son bastante bonitas en mi opinión, instalarlas en Debian es bastante sencillo:

Nos descargamos las fonts de aquí: http://dl.dropbox.com/u/1301915/ubuntu-font-family.tar.gz

Ahora extraemos:

tar -xvzf ubuntu-font-family.tar.gz -C /usr/share/fonts/truetype

Ahora tenemos que ir a Sistema -> Preferencias -> Apariencia.

Y en tipografía ponemos esta configuración:

No se ve, pero antes del paso siguiente, debemos tener marcada la opción Suavizado subpixel (LCDs)

En el siguiente paso, hacemos click en detalles y ponemos la siguiente configuración:

Y eso es todo, ahora debería parecerse bastante al estilo de fonts que tiene Ubuntu.

Anuncios

¿Problemas al compilar driver fglrx 10.9? Solución aquí.

Los desarrolladores del kernel han solucionado una vulnerabilidad crítica y una librería que utilizaba fglrx ha sido eliminada.

El error puede ser algo así:

/usr/src/kernel-modules/fglrx /
make: Entering directory `/usr/src/packages/BUILD/kernel-2.6.35.50.3desktop'
  LD      /usr/src/kernel-modules/fglrx/built-in.o
  CC [M]  /usr/src/kernel-modules/fglrx/firegl_public.o
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetInitKerPte’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2378:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2379:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2380:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetPageTableByVirtAddr’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2425:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2428:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2429:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_TestAndClearPageDirtyFlag’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2598:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetDmaPhysAddr’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2636:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2637:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2638:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2640:5: warning: return makes integer from pointer without a cast
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_acpi.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_agp.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_debug.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_ioctl.o
/usr/src/kernel-modules/fglrx/kcl_ioctl.c: In function ‘KCL_IOCTL_AllocUserSpace32’:
/usr/src/kernel-modules/fglrx/kcl_ioctl.c:196:5: error: implicit declaration of function ‘compat_alloc_user_space’
/usr/src/kernel-modules/fglrx/kcl_ioctl.c:196:5: warning: return makes pointer from integer without a cast
make[1]: *** [/usr/src/kernel-modules/fglrx/kcl_ioctl.o] Error 1
make: *** [_module_/usr/src/kernel-modules/fglrx] Error 2
make: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.35.50.3desktop'

Y la salida del comando ‘glxinfo’, así:

root@normandy:~# glxinfo
name of display: :0.0
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  136 (GLX)
  Minor opcode of failed request:  19 (X_GLXQueryServerString)
  Serial number of failed request:  15
  Current serial number in output stream:  15

Solucionar esto, a pesar de que quizás parezca lo contrario, es bastante sencillo:

Nos movemos a la siguiente carpeta:

Debian: cd /lib/modules/fglrx/build_mod

Otra posible localización: cd  /usr/src/kernel-modules/fglrx/

Ahora tenemos que editar el archivo kcl_ioctl.c

# gedit kcl_ioctl.c

Buscamos la línea 197, el fragmento debe ser algo así:

void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
{
    return compat_alloc_user_space(size);
}

#endif // __x86_64__

Pues lo cambiamos por lo siguiente:

void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
{
    return arch_compat_alloc_user_space(size);
}

#endif // __x86_64__

Guardamos el archivo, y ahora tenemos que compilarlo otra vez, para ello:

# cd ..
# ./make_install.sh

Y eso es todo, yo así conseguí arreglarlo.

Optimizar Debian.

Antes de realizar cualquier cambio en el sistema, recomiendo hacer una copia de seguridad de vuestra configuración actual, por lo que puediera pasar.

Comenzamos:

El arranque secuencial tiene un pequeño problemilla: Si un servicio tarda demasiado en arrancar, retrasará a los demás servicios.

La solución a esto es el arranque paralelo. Así un servicio que inicie despacio, no retrasará a los demás

# apt-get install insserv

Y ahora para activar el arranque paralelo :

# echo ‘CONCURRENCY=shell’ >> /etc/default/rcS

Ahora pasamos a la parte de las aplicaciones

Preload corre como un daemon, monitorea lo que estás haciendo, los programas que más usas y  se adapta. Esto significa que inicialmente no verás ningún beneficio aparente, pero al cabo de unos días o semanas, la diferencia será notable.

# apt-get install preload

La configuración por defecto suele ser suficiente.

 

 

El siguiente cambio afectará al modo en que el kernel libera la cache de dispositivos frente a las entradas del filesystem. Tener cacheadas las entradas del filesystem hace que los filemanagers y otras aplicaciones sean más receptivos. El valor por defecto es 100. Probaremos esto:

# echo ‘vm.vfs_cache_pressure=50’ >> /etc/sysctl.conf

 

Con eso es suficiente, hay otras optimizaciones, pero yo no las he implementado en mi sistema, así que no sé muy bien como reaccionarían. Tampoco tengo el suficiente conocimiento técnico como para saber como afectará esto a todos los sistemas.