Colocando o XRDP para funcionar

Publicado por Daniel Roque em 13/11/2009

[ Hits: 61.659 ]

 


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

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

Conectando Debian em roteador VPN Cisco 3000 com IPsec

e4rat - Acelerando o Boot em Partições EXT4

Steam no Debian Sid

OpenOffice / LibreOffice / BrOffice Base e JDBC Oracle Database 10g Express Edition

Leitura recomendada

Compartilhamento simples de arquivos com Samba no CentOS 6.4

Configurar IP estático no Damn Small Linux

Tabela ASCII

Atualizando listas de pacotes apt-get no Kurumin

Internet, de quem é a chave?

  

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