Configuración de pantalla en KDE plasma 5 (HDMI)

La aplicación de preferencias del sistema que trae Plasma 5 por defecto carece una opción muy importante, especialmente a la hora de configurar varios monitores, TV por HDMI,… y es la de seleccionar la posición relativa y resolución de pantalla.

Para poder hacer esto, es necesario instalar un paquete extra, que en el caso de Debian Testing se llama kscreen y está en los repositorios.

Una vez instalado lo puedes encontrar en el menú de inicio y lo podrás usar para cambiar resoluciones de pantalla, frecuencia de refresco, posición relativa entre varias pantallas,…

Sonido a través del HDMI en portátil con tecnología Optimus de Nvidia

La salida de audio del puerto HDMI es conjunta a la de vídeo dependiendo, por lo tanto, de la tarjeta gráfica y de su correcta configuración. Esto puede suponer un problema en portátiles en los que esté presente la tecnología Optimus.

Creo que la situación actual de soporte del HDMI en el proyecto Bumblebee es pobre, por lo que en caso de que tu sistema no reconozca más que la salida de audio HDMI correspondiente a la tarjeta integrada de Intel (lspci para comprobarlo), se puede hacer un apaño para utilizar esta en lugar de la de Nvidia.

El siguiente paso es comprobar cual es la identificación de la tarjeta y dispositivo de sonido de interés. Para esto hay que fijarse en la salida de aplay -l que, aunque distinta, será similar a:
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 2: VT1802 Alt Analog [VT1802 Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

Conecta tu portátil con el cable HDMI al dispositivo deseado y ejecuta, como root, el siguiente comando:
aplay -D plughw:, /usr/share/sounds/alsa/Front_Right.wav
Y ve probando a sustituir tarjeta (número que en la salida anterior aparece detrás de card) y dispositivo (número que aparece detrás de device) con todas las combinaciones posibles hasta que oigas el sonido reproducido en el dispositivo conectado.

Ahora hay que añadir a PulseAudio el dispositivo para que se pueda utilizar. Añade, sustituyendo la información correspondiente, al final del archivo /etc/pulse/default.pa y editándolo como root, la siguiente línea:
load-module module-alsa-sink device=hw:,

Ahora reinicia el servidor PulseAudio con las siguientes órdenes. Deberán ser ejecutadas como root o como tu usuario dependiendo de la configuración de tu distribución. Prueba primero con tu usuario normal:
pulseaudio -k
pulseaudio --start

Ahora ya se podría seleccionar qué canal utilizar para cada aplicación, no he conseguido hacerlo para todo el sistema en KDE. Por ejemplo, en VLC, ve a Audio → Dispositivos de audio y ve probando hasta dar con la opción adecuada. Para poder hacer esto con otras aplicaciones que no dan esta opción, se necesita la herramienta pavucontrol:
aptitude install pavucontrol

Ejecútala desde el menú de inicio o desde la terminal pavucontrol y selecciona, en la pestaña de Reproducción, la salida a utilizar de cada una de las aplicaciones que estén reproduciendo sonido.

Más información:
Arch Linux Wiki

Bumblebee: Optirun/Primusrun Nvidia Optimus

La tecnología Optimus de Nvidia enfocada a ordenadores portátiles permite el aprovechamiento tanto de la tarjeta gráfica integrada en el procesador (Intel Core) como la gráfica dedicada. Esto permite que durante el uso normal la gráfica dedicada se apague disminuyendo el consumo energético y así aumentando la duración de la batería, mientras que para las aplicaciones que requieran un uso intenso de procesamiento gráfico (juegos, por ejemplo) se pueda activar temporalmente. Aunque la idea en sí es buena, es un auténtico quebradero de cabeza para los usuarios de GNU/Linux por la falta de soporte oficial.

Estas dificultades se han intentado resolver desde varios proyectos, siendo Bumblebee el más conocido y que parece que ha logrado mayores éxitos. Aún así, no con todos los portátiles y configuraciones se ha convertido en una tarea fácil conseguir aprovechar al máximo esta tecnología.

Antes de continuar con las indicaciones de esta entrada hay que comprobar que se han seguido las indicaciones apropiadas de instalación y configuración y se han intentado resolver de la manera indicada los problemas más comunes. Puedes encontrar esta información en los siguientes enlaces (en inglés):

Si pese a ello sigues teniendo problemas o no encuentras solución, quizás lo siguiente te sea de ayuda.

Como en este punto se habrá podido comprobar ya, aunque no estrictamente necesario, es altamente recomendable usar los drivers propietarios, especialmente los de Nvidia. Estos controladores se pueden descargar desde la página oficial, pero siempre que sea posible es mucho más recomendable hacerlo desde los repositorios oficiales de tu distribución. De esta manera se evitan problemas de dependencias y otros posibles errores. Estos controladores traen una herramienta llamada nvidia-xconfig que genera archivos de configuración del servidor gráfico para activar los controladores privativos, pero no se debe usar conjuntamente con Bumblebee. La configuración recomendada es no tener archivo /etc/X11/xorg.conf y dejar que toda la configuración se lleve a cabo en el archivo que se debería instalar junto a bumblebee, bumblebee-nvidia o similar: /etc/bumblebee/xorg.conf.nvidia

Aunque durante la instalación se añade a la lista negra (/etc/modprobe/bumblebee.conf) el módulo nouveau del controlador libre para evitar conflicto con los drivers propietarios, en mi caso se daba la situación de que al terminar el proceso de encendido seguía estando disponible. Probablemente halla alguna manera más elegante de hacer esto, pero yo lo he resolvido satisfactoriamente ejecutando como root antes del arranque del entorno gráfico
modprobe -r nouveau

Si quieres evitarte tener que ejecutar esto cada vez que arrancas el sistema, prueba añadiendo el comando anterior al crontab del usuario root ejecutando como root crontab -e y escribiendo en la última línea:
@reboot modprobe -r nouveau

Ahora ya puedes iniciar sesión y ejecutar el servidor bumblebeed. Es recomendable hacerlo con la verbosidad máxima posible para tener la información necesaria para resolver cualquier problema que pudiera ocasionarse. Como root ejecuta:
bumblebeed -vv

Para comprobar si realmente está disponible ya la gráfica dedicada:
optirun glxgears
o:
primusrun glxgears
Con que funcione uno de los dos es suficiente. Si te dan algún error, comprueba la terminal en la que se está ejecutando el servidor a ver qué es lo que ha pasado. En mi caso me aparecía el siguiente error:
FAILED TO LOAD MODULE "NVIDIA" (module does not exist, 0)

Esto significa que el servidor gráfico no está encontrando el módulo correspondiente a los controladores propietarios de Nvidia. Esto puede deberse a que estén mal instalados o a que no se encuentren en los directorios en los que busca los módulos. Para ver si es el segundo caso puedes comprobar si existe un archivo llamado nvidia_drv.so en la carpeta /usr/lib/xorg/modules/drivers. En caso negativo, busca en tu sistema el archivo (locate nvidia_drv.so) y cópialo, como root, a dicha carpeta. En mi caso:
cp /usr/lib/nvidia/nvidia_drv.so /usr/lib/xorg/modules/drivers

Ahora vuelve a comprobar con los comandos vistos anteriormente si optirun o primusrun son capaces de utilizar la gráfica dedicada. Si ahora te encuentras con el error Xlib: extension "GLX" missing on display ":8", esto puede significar que el servidor gráfico esté tratando de utilizar la librería GLX de los gráficos libres en lugar de los propietarios, pudiendo comprobarse en el log del servidor. En caso afirmativo, para que no se produzca esta interferencia, se puede crear un nuevo directorio para los módulos que usará el servidor gráfico cuando sea ejecutado por Bumblebee:
cp /usr/lib/xorg/modules /usr/lib/xorg/modules_bumblebee
Y ahora hay que cambiar en el archivo de configuración dónde se buscan estos módulos. Por lo tanto, abre con el editor que quieras y como root el archivo /etc/bumblebee/bumblebee.conf y busca y cambia en la línea XorgModulePath la ruta anterior por la nueva.

Finalmente, se copia en la nueva carpeta la librería GLX de Nvidia:
cp /usr/lib/nvidia/libglx.so /usr/lib/xorg/modules/extensions/

Ten cuidado porque este método es bastante poco ortodoxo y debe tomarse solo como una solución extrema. Cuando se actualicen los controladores gráficos deberías estar atento a actualizar manualmente los archivos del nuevo directorio creado. También se puede tratar de resolver esto creando enlaces simbólicos, pero este tema se deja para futuras entradas o a cargo del lector.

Ahora ya deberías poder ejecutar optirun o primusrun para hacer uso de la gráfica dedicada. A mí solo me ha funcionado con primusrun, pero para la mayoría de casos uno de los dos es más que suficiente.

Si te siguen apareciendo errores, recuerda la importancia de leer bien los logs, ya sea el del propio servidor de Bumblebee o el servidor gráfico (Xorg) y buscar información sobre estos errores más que buscar sobre el problema describiéndolo de forma genérica. También puede ser útil reinstalar todos los paquetes instalados hasta el momento purgando previamente sus archivos de configuración.

Quitar pitido (beep) al apagar

Si tu sistema produce un pitido (beep) de alerta cuando realizas ciertas acciones como intentar borrar en un cuadro sin texto, al apagar,… y te resulta molesto, puede solucionarlo fácilmente impidiendo que se cargue el módulo pcspkr del kernel al arranque.

Antes de proseguir comprueba que este modulo este cargado en tu sistema, porque si no, el pitido lo produce otra cosa. Si el siguiente comando no muestra nada es que no se carga, por lo que realizar el resto de instrucciones no serán de utilidad:
lsmod | grep pcspkr

Los siguientes pasos debes realizarlos como root.

Asegúrate de que el archivo /etc/modprobe.conf no existe o contiene la línea include /etc/modprobe.d

Crea el archivo /etc/modprobe.d/pcspkr.conf con la línea blacklist pcspkr:
echo "blacklist pcspkr" >> /etc/modprobe.d/pcspkr.conf

Ejecuta depmod -ae y update-initramfs -u para actualizar todos los archivos necesarios y la imagen de arranque.

Deborphan: eliminar paquetes huérfanos

Al instalar una aplicación con ella se instalan también otros paquetes que necesita para funcionar (dependencias) ya sean librerías u otros programas. Si en una actualización del programa principal una de estas dependencias ya no es necesaria se va a quedar instalada en nuestro sistema, desaprovechando espacio, este paquete se pasa a denominar huérfano. Esto es algo especialmente frecuente en distribuciones que reciben muchas actualizaciones, como Debian en su rama Testing.

En resumen, un paquete huérfano es un paquete que ha sido instalado como dependencia de otro(s), pero del que ya no depende nadie.

En Debian existe el programa deborphan para localizar estos paquetes huérfanos. No viene instalado por defecto, pero se incluye en los repositorios:
aptitude install deborphan

Cuando es ejecutado sin argumentos muestra una lista con los paquetes huérfanos que ha localizado en el sistema, uno por línea. Si lo combinamos con aptitude puedes eliminarlos directamente de una forma rápida:
aptitude purge `deborphan`

En principio no debería haber ningún problema, pero cuando se eliminan paquetes en masa está bien echar un ojo a la lista de paquetes que van a ser eliminados evitando así sustos posteriores.

Eliminar archivos de configuración innecesarios

Cuando desinstalas aplicaciones usando el gestor de paquetes de Debian (aptitude o apt) puedes hacerlo de dos formas: purgando (purge) o eliminando (remove). La diferencia es que purgando se eliminan también los archivos de configuración. Eliminar sin más puede ser útil cuando has realizado cambios en estos archivos y quieres mantenerlos por si vuelves a instalarlo, pero en la mayoría de los casos es mejor purgar.

Si un paquete ha sido desinstalado sin ser purgado es marcado por dpkg con la etiqueta de estado rc. Los archivos de configuración de estos paquetes se pueden eliminar purgándolos de nuevo: dpkg --purge <nombre-del-paquete>.

Para saber el estado de cada paquete del sistema puedes hacer uso del comando dpkg -l que mostrará en la primera columna la etiqueta. Haciendo uso de este comando podemos filtrar solo los paquetes con la etiqueta rc:
dpkg -l | egrep ^rc | cut -d' ' -f 3
Explicación: egrep sirve para mostrar úicamente las líneas de la salida de un comando (o archivo) que coincidan con la expresión regular especificada. ^rc es la expresión regular para buscar aquellas líneas que empiezan por rc. Con el comando cut podemos seleccionar elementos dentro de una misma línea: hemos pasado al argumento -d el delimitador ‘ ‘, es decir, separará la línea en columnas y con -f seleccionamos la tercera columna, que es la que en la salida de dpkg -l contiene los nombres de paquete.

Ahora que tenemos la lista de paquetes podemos ir eliminándolos uno a uno con dpkg --purge <nombre-del-paquete>. O, más simple todavía, unir los dos comandos para que lo haga por nosotros:
dpkg --purge `dpkg -l|egrep ^rc|cut -d' ' -f 3`
Explicación: En un comando, lo que sea introducido `entre acentos graves` será ejecutado y la salida pasada al resto del comando.

Instalar icono de red en Debian Testing KDE

KDE4 no incluye un icono de gestión de red entre los elementos gráficos disponibles en la instalación por defecto, que es algo muy útil en la mayoría de ordenadores, especialmente portátiles y otros que usen redes inalámbricas.

Dependiendo de la versión de Debian o distribución que utilices el paquete que contiene este elemento puede tener diferentes nombres, pero en Testing se instala escribiendo en la terminal:
aptitude install plasma-nm

Una vez instalado puedes añadirlo al escritorio o a la barra de tareas desbloqueando los elementos gráficos y añadiendo el widget Gestión de red