Colocando o XRDP para funcionar

Publicado por Daniel Roque em 13/11/2009

[ Hits: 61.662 ]

 


Colocando o XRDP para funcionar



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!

Outras dicas deste autor

Brincando com resolução do monitor

CCSM: Bug após atualização do Debian [Resolvido]

Criando um repositório rápido de contole de versão com o Mercurial

Emulação de Impressora Jetdirect

Expandindo partição ext3 em discos lógicos e qcow2 em ambiente de virtualização

Leitura recomendada

Problemas com campos maiores que 300MB no pg_dump

Peanut Linux - Guia de instalação

andLinux no XP

Configurando Cisco + NAT para LP Telefônica

Recuperando senhas de root com LILO ou GRUB

  

Comentários
[1] Comentário enviado por tiekookeit em 13/11/2009 - 07:17h

Faltou uma observação caros colegas, é necessário definir uma senha para o vnc dos usuários que utilizarão o serviço. Para tal execute
su nome_do_usuario
vncpasswd


t+

[2] Comentário enviado por domedfd em 21/06/2011 - 14:50h

oi diculpa mas fiz da mesma forma que voce indicou mudando so o repositorio que na verdade nao precisei colocar para instalar o xrdp
mais cuando eu entro no cliente eu nao consigo de jeito nenhum fazer funcionar

primero sai uma tela preta com o mouse, mais nao aparece mais nada

segundo a pasra /usr/local/xrdp na existe


eu to usando ubuntu 10.4 e 11.4 nenhum funciona

por favor me ayude eu sei que o seu topico e antigo mais no googlre nao se encontra nada

[3] Comentário enviado por rtkomp em 12/07/2012 - 16:21h

Estou usando o Ubuntu Server 12.04 e instalei o XRDP. Conecto via XP ou CE mas o teclado fica somente e ingles. Como faço para que ele funcione com o ABNT2 ?

[4] Comentário enviado por carvendiish em 14/03/2018 - 08:37h

aqui funcionou assim ...


XRDP - Após instalado o XRDP no debian9 (stretch) instale também o xorgxrdp, caso ja tenha instalado parta para as configurações.
1-Verifique se no arquivo /etc/xrdp/xrdp.ini os valores de entrada são 10 para x11 e 20 para xorg.
2-Crie o arquivo /usr/bin/XorgXrdp com o seguinte conteúdo: #! /bin/sh
exec /lib64/ld-linux-x86-64.so.2 /usr/bin/Xorg "$@"
3-ajustar o sesman.ini para chamar o arquivo XorgXrdp
4-caso dê problemas de login modifique o arquivo /etc/X11/Xwrapper.config e acrescente as seguintes linhas(debian, ubuntu): allowed_users=anybody
needs_root_rights=no

[5] Comentário enviado por tiekookeit em 14/03/2018 - 08:46h


[4] Comentário enviado por carvendiish em 14/03/2018 - 08:37h

aqui funcionou assim ...


XRDP - Após instalado o XRDP no debian9 (stretch) instale também o xorgxrdp, caso ja tenha instalado parta para as configurações.
1-Verifique se no arquivo /etc/xrdp/xrdp.ini os valores de entrada são 10 para x11 e 20 para xorg.
2-Crie o arquivo /usr/bin/XorgXrdp com o seguinte conteúdo: #! /bin/sh
exec /lib64/ld-linux-x86-64.so.2 /usr/bin/Xorg "$@"
3-ajustar o sesman.ini para chamar o arquivo XorgXrdp
4-caso dê problemas de login modifique o arquivo /etc/X11/Xwrapper.config e acrescente as seguintes linhas(debian, ubuntu): allowed_users=anybody
needs_root_rights=no



O post é bem antigo, estávamos engatinhando com o xrdp em 2009 e haviam vários bugs, desde o debian jessie para cá a versão disponível no repositório funciona bem. Agora usar esse modo via XorgXrdp não tinha utilizando ainda não, sabe dizer se deste modo eu consigo escalonar a resolução de uma sessão já existente?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts