Se realizó lanzamiento de kmscon 10.0: un emulador de terminal creado como reemplazo de la consola del núcleo. En lugar del subsistema del núcleo vt, kmscon utiliza KMS y realiza la funcionalidad necesaria en el espacio de usuario.
Este enfoque resuelve el problema de baja calidad del código en el subsistema vt y la falta de experiencia de quienes lo mantienen, lo que hace prácticamente imposible el desarrollo futuro de este subsistema.
Las capacidades de kmscon:
- posibilidad de configurar todas las opciones mediante argumentos de línea de comandos o un archivo de configuración;
- posibilidad de especificar el dispositivo de salida. Se admiten los dispositivos fbdev y DRM;
- posibilidad de establecer el modo de video (resolución y orientación de la pantalla);
- posibilidad de personalizar un esquema de color;
- posibilidad de configurar la aceleración de hardware para gráficos mediante GLESv2;
- posibilidad de desactivación automática de la pantalla por tiempo de espera en caso de inactividad;
- soporte para sesiones conmutables por atajo de teclado (análogo a las sesiones VT), el número máximo de sesiones por defecto es 50;
- renderizado de fuentes modernas con soporte para hinting, suavizado subpíxel y todas las demás características proporcionadas por las bibliotecas freetype y pango. También se admiten GNU Unifont y fuentes estándar 8×16. Unicode está completamente implementado;
- posibilidad de establecer tamaños de fuente, incluso mediante atajos de teclado durante la ejecución, lo que resuelve el problema de su visualización en pantallas HiDPI;
- integración con libxkbcommon, incluida la posibilidad de especificar el modelo y distribución del teclado;
- soporte para el mouse. Se puede usar tanto un cursor de software como un hardware;
- soporte para el desplazamiento de texto (scrollback buffer), tanto por atajos de teclado como utilizando la rueda del mouse. Al usar el mouse, se puede configurar el desplazamiento natural.
¿Cómo funciona?
kmscon se inicia al arrancar el sistema como un servicio normal mediante su sistema de inicialización.
Si kmscon detecta dispositivos VT en el sistema, encuentra uno libre y lo ocupa. Gracias a esto, en sistemas normales (con VT habilitado), se puede cambiar a kmscon como si fuera la consola del núcleo mediante el atajo Ctrl+Alt+F.
Si en el dispositivo VT que deseas dedicar a kmscon ya está en funcionamiento algún servicio, como getty, debes detener ese servicio. Esto se configura dependiendo del sistema, por ejemplo, en el caso de Busybox, es necesario editar /etc/inittab.
Si el subsistema VT no está activado (es decir, si en el archivo de configuración del núcleo está indicado CONFIG_VT=n. Esta posibilidad es, de hecho, el objetivo del desarrollo de kmscon), entonces kmscon simplemente ocupa el dispositivo de salida especificado en la configuración. Después de eso, se debe utilizar sus sesiones internas.
Las aplicaciones GUI, como el servidor X, deben ejecutarse desde la sesión de kmscon utilizando un programa especial llamado kmscon-launch-gui. Esto es necesario para la correcta transmisión de la propiedad de los recursos, en particular del dispositivo de salida.
Cambios en la versión 10.0
- se ha añadido la generación de un archivo específico de kmscon con la base de terminfo. La variable de entorno TERM=kmscon se puede definir en el shell, así como mediante un argumento CLI o una opción de configuración.
- soporte para fuentes de ancho variable, no solo para fuentes monoespaciadas.
- soporte para la obtención de recursos (como el dispositivo DRM) a través de libseat. Esto permitirá en el futuro ejecutar kmscon en una sesión de usuario y no solo como root, como es el caso actualmente.
Fuente: linux.org.ru
