Hace un par de días actualicé el sistema Debian que le había instalado a mi tablet, y me encontré con la desagradable sorpresa de que mi gestor de ventanas y mi driver táctil dejaron de funcionar. El motivo es que, recientemente, Debian se ha cambiado a systemd, por lo que tuve que hacer algunos cambios para adaptarlo.
El primer y más fundamental cambio fue reemplazar los scripts en bash por ficheros de configuración de systemd. Este es el fichero para lanzar el driver táctil:
[Unit] Description=GSLx680 user-space driver launcher for systemd [Service] Type=simple ExecStart=/bin/gslx680 -new_scroll /dev/i2c-1 /etc/gslx680/firmware.cfg ExecStop=killall gslx680 [Install] WantedBy=multi-user.target
Este fichero lanza durante el arranque el driver, y durante el apagado del sistema lo mata.
El fichero para lanzar las X es similar:
[Unit] Description=Launch X11 [Service] Type=simple User=debian ExecStart=/usr/bin/startx ExecStop=killall xinit [Install] WantedBy=multi-user.target
El único cambio es que especificamos con qué usuario queremos lanzar el comando: en este caso el usuario es debian.
Otro cambio que tuve que hacer fue eliminar, en el fichero .xinitrc, el que se lance ck-launch-session, el gestor de sesiones de ConsoleKit. Este ya no es necesario porque de ello se encarga systemd.
Por último, para apagar el sistema el gestor de ventanas ya no ejecuta halt, sino systemctl poweroff, con lo que ya no es necesario que haya un comando para ello con el bit suid activo.
Un último detalle: tuve que desinstalar el demonio pulseaudio para conseguir que reprodujese vídeos. Todavía no se el motivo de que con él lanzado no funcione (el audio queda bloqueado y tanto mplayer como vlc se quedan congelados esperando a que se libere).