Nesta dica mostro como coloquei o XRDP, que instala bonitinho mas não funciona, para efetivamente funcionar. Utilizei uma versão do Debian com kernel 2.6.26.
Vamos lá, depois algumas tentativas sem sucesso e sem respaldo, já que é pobre o sistema de log do projeto, me enfezei hoje e coloquei o
XRDP para funcionar.
Aparentemente o "apt-get install xrdp" no Debian o instala sem problemas, mas na hora que se loga, não funciona nem com macumba.
Depois de muuuuuuito quebrar a cabeça e tentando abstrair o erro, cheguei ao que penso ser a luz do problema. O problema principal a meu ver é que alguns aplicativos dependem do retorno do
xrandr, o qual as versões do vncserver em repositório não possuem o xrandr extension, que seria o necessário para tal.
Sabendo o problema, foi questão de googlar e achar a solução, o cara no link abaixo aplicou um patch que corrige o problema do xrandr para nós (viva o software livre!):
Chega de falar, coloquei para funcionar da seguinte forma:
Instalei via apt o xrdp de um source do Debian/Ubuntu qualquer. As minhas por acaso estão assim, mas não que você precise alterar as suas:
deb http://ftp.br.debian.org/debian/ unstable contrib non-free
deb http://ftp.br.debian.org/debian/ experimental main contrib non-free
# apt-get install xrdp xtightvncserver libstdc++5 gunzip mc rdesktop
OK, você deve ter um carinha chamado /usr/bin/Xvnc que o xrdp vai utilizar e aparentemente vai funcionar, mas vai dar pau na hora de iniciar uma porrada de aplicativos que depende da saída do xrandr.
Baixe o Xvnc compilado já com o patch do xrandr extension aplicado:
http://www.freesoft.org/software/vncrotation/Xvnc-0.2.gz
Descompacte:
# gunzip Xvnc-0.2.gz
Remova o antigo:
# rm -f /usr/bin/Xvnc
Mova o novo para o local correto:
# mv Xvnc-0.2 /usr/bin/Xvnc
Ok, falta pouco agora!
Confira se existe a seguinte pasta:
# ls /usr/X11R6/lib/X11/fonts
Se existir ótimo, senão execute os 2 seguintes comandos:
# mkdir -p /usr/X11R6/lib/X11/
# ln -s /usr/share/fonts/X11 /usr/X11R6/lib/X11/fonts
OK, como meu intuito era gerar um servidor de sessões apenas, eu desabilitei as demais opções.
Edite o arquivo
/etc/xrdp/xrdp.ini e deixe ele com o seguinte conteúdo apenas:
# mcedit /etc/xrdp/xrdp.ini
[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
[xrdp1]
name=sesman
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
Agora abra o arquivo
/usr/local/xrdp/startwm.sh com:
# mcedit /usr/local/xrdp/startwm.sh
E dentro do arquivo coloque o gerenciador de janelas ou o comando que queira que ocorra quando o usuário iniciar uma sessão, lembrando que se o comando falhar, a sessão falha também. No meu caso eu coloquei para iniciar o xfce4, que ficou assim:
#!/bin/bash -l
#
# 2009-11-11 17:30
# Daniel Roque
#
#
startxfce4
exit 0
Para testar, se você não pretende usar o xfce4 ou ainda não decidiu o que fazer, coloque na linha startxfce4 o comando xterm se você tiver o xterm instalado.
Neste ponto aqui as coisa já devem estar funcionado, falta só testar.
Pois bem, mova-se para a pasta /usr/local/xrdp/ e execute:
# ./xrdp
Para iniciar o xrdp e para iniciar o gerenciador de sessão execute:
# ./sesman -n
ele vai permanecer em foreground e a última linha que deve aparecer se tudo estiver ok é:
[20091111-17:12:14] [DEBUG] listening...
ou algo parecido, o importante aqui é o listening.
Agora tendo em mãos um usuário e senha válidos na máquina a qual você instalou o xrdp, tente acessar a máquina via terminal server e se logar.
Para inicializar normalmente, utilize:
# /usr/local/xrdp/xrdp_control.sh start
e
# /usr/local/xrdp/xrdp_control.sh stop
Considerações e bugs
Percebi que se por algum motivo você MATAR via kill os processos xrdp e sesman, algumas vezes os serviço não sobem mais, a não ser que reinicie o servidor, o erro tende a ser mais comum caso tenha sessões de usuário abertas.
No mais parece que funciona bonitinho!
É isso!
Boa sorte e viva o
Linux!