Depois de muita pesquisa, eu encontrei as duas referências que impedem o descarregamento do módulo e como recarregar o módulo. As duas coisas segurando uma fechadura são:
- LightDM, um gerenciador de exibição X leve
- A estrutura genérica do framebuffer
Para remover os bloqueios, respectivamente:
-
sudo /etc/init.d/lightdm stop
-
echo 0 > /sys/class/vtconsole/vtcon1/bind
No entanto, a segunda opção desassocia o framework framebuffer do driver gma500_gfx, que interrompe a saída da tela. Então, é melhor combinar o nr. 2 com um script para desvincular, descarregar o módulo, redefinir a tela e carregar o módulo novamente. AFAIK, eu tenho que correr isso de um console.
#!/bin/bash
echo 0 > /sys/class/vtconsole/vtcon1/bind
modprobe -r gma500_gfx
modprobe gma500_gfx
/etc/init.d/lightdm start
De preferência eu gostaria de ter 1 restart-script, que eu posso executar diretamente do LightDM, que recarrega o driver e restaura a sessão. Ainda não consegui fazer isso, mas esse é um tópico diferente da questão acima. Qualquer sugestão para fazer isso me faria feliz. :)