Uso das funções plot() e plot3d() do Scilab a partir de terminal LTSP

scilab-plot-ltsp

 

Trata-se do mal funcionamento das funções plot() e plot3d() do Scilab, quando utilizadas a partir de terminal thinclient LTSP executando imagem do S.O. Ubuntu 14.04 para se conectar em servidor LTSP executando S.O. Ubuntu 14.04 com ambiente gráfico Gnome ou Xfce.

As funções plot() e plot3d() do Scilab funcionam se a opção LDM_DIRECTX for definida para “False” no arquivo /var/lib/tftpboot/ltsp/i386/lts.conf (este arquivo reside no servidor LTSP ou no servidor de boot, no caso do projeto LTSP-Cluster). Entretanto, esta alteração habilita a encriptação na comunicação do terminal com o servidor LTSP, comprometendo o desempenho da sessão de área de trabalho remota como um todo e exigindo maior poder de processamento do terminal leve, que é bastante limitado.

O fato é que, independente do valor, se a variável de ambiente LIBGL_ALWAYS_INDIRECT for definida durante o início da sessão do usuário, as funções plot() e plot3d() do Scilab não funcionam. Além disso, essa variável de ambiente é definida somente se a opção LDM_DIRECTX estiver definida como “True” no arquivo /var/lib/tftpboot/ltsp/i386/lts.conf.

Para manter a opção LDM_DIRECTX habilitada, garantindo a performance da sessão de área de trabalho remota, e não definir a variável de ambiente LIBGL_ALWAYS_INDIRECT, se faz necessário alterar um dos scripts de início de sessão do LTSP, garantindo que a variável de ambiente LIBGL_ALWAYS_INDIRECT não seja definida e a função plot() do Scilab funcione.

  • Versão original do script /usr/share/ldm/rc.d/X51-opengl presente na imagem entregue aos terminais leves:
# Force indirect rendering when using LDM_DIRECTX so we have some working GL by default
if boolean_is_true "$LDM_DIRECTX" && ! boolean_is_true "$LTSP_FATCLIENT"; then
   CLIENT_ENV="$CLIENT_ENV LIBGL_ALWAYS_INDIRECT=true"
fi
  • Alteração proposta no script /usr/share/ldm/rc.d/X51-opengl:
# Force indirect rendering when using LDM_DIRECTX so we have some working GL by default
if boolean_is_true "$LDM_DIRECTX" && ! boolean_is_true "$LTSP_FATCLIENT"; then
   CLIENT_ENV="$CLIENT_ENV"
fi

Leave a Reply

Your email address will not be published. Required fields are marked *