quinta-feira, 3 de julho de 2025
sexta-feira, 27 de junho de 2025
quarta-feira, 18 de junho de 2025
Cliente x2Go ThinClient Live Edition com base no Debian 12 Live
Histórico, Fundamentação, Perspectivas
Durante o período em que o Debian Wheezy ( Debian 7) era a versão estável do Debian, começamos a desenvolver uma nova Thin-Client-Edition, então chamada de TCE-Next Generation, ou TCE-NG, para abreviar — uma que é baseada no Debian-Live e, portanto, não depende mais do NFS (embora o NFS ainda possa ser usado para implantar a imagem — mas não recomendamos essa abordagem).
Em vez disso, a imagem inteira é carregada na RAM da máquina ThinClient. Para evitar confusão, e como ela já saiu do estado "NG", agora a chamamos de TCE-Live.
A desvantagem é que seu ThinClient agora precisa de pelo menos 512 MB a 1 GB de RAM (veja abaixo). Trabalhar com 256 MB é possível quando você usa armazenamento local em vez de inicialização via rede (também não use o parâmetro toram), mas não é realmente recomendado.
No entanto, a grande vantagem é que não há mais necessidade de nenhuma configuração de alta disponibilidade relacionada ao NFS (nem HTTP/HTTPS/FTP).
Se você seguir nossa recomendação de carregar a imagem inteira na RAM do ThinClient ou usar o armazenamento local, tudo o que você precisa é de um servidor HTTP (HTTPS opcional para etapas posteriores) ou FTP com um IP dedicado, caso queira usar o netbooting.
Também é possível implantar a imagem no armazenamento local do ThinClient, se houver, e atualizá-la em segundo plano.
Além disso, fazer alterações/atualizar o TCE clássico baseado em NFS (doravante denominado TCE-Classic) com todo o sistema de arquivos, não apenas a imagem compactada, espalhado pelo compartilhamento NFS era bastante trabalhoso — com o TCE-Live atual, você cria e implanta uma nova imagem sempre que faz uma alteração, e pode testá-la em um único cliente sem interromper seu ambiente de produção.
O recurso de armazenamento local também pode ser usado para criar uma versão portátil do X2Go-TCE e do X2GoClient para Windows, compartilhando a mesma configuração, em CD/DVD/mídia USB.
Também recebemos relatos de que o TCE-Classic não funcionava com Jessie (Debian 8), ou pelo menos era muito difícil fazê-lo funcionar. Nosso TCE-Live também funciona perfeitamente com Jessie (Debian 8), Stretch (Debian 9) e Buster (Debian 10).
Pré-requisitos do ThinClient para todas as variantes do TCE-Live
Pelo menos 1 GB de RAM, a menos que você use armazenamento local não NTFS. Nesse caso, 512 MB ou até 256 MB podem funcionar. Mas você realmente usaria um cliente com 4 megabytes de RAM livre (nosso resultado de teste com 256 MB de RAM no total) e sem espaço de swap?
Para clientes com menos de 1 GB de RAM e sem armazenamento local, você também pode usar httpfs= ou ftpfs= em vez de fetch=, ou netboot=nfs nfsroot=ip-do-seu-servidor-aqui:/caminho/para/x2go-tce-filesystem.squashfs ao inicializar pela rede, mas isso o tornará dependente de uma conexão de rede ininterrupta novamente.
Pelo menos uma CPU compatível com i586.
Capacidade de inicialização via PXE ou armazenamento local suficiente (espere 250-450 MB, dependendo do que você decidir incluir).
Uma placa gráfica e dispositivos de entrada (teclado, mouse / touchpad, etc.) suportados pelo Debian X Server padrão.
Pré-requisitos do sistema de compilação para todas as variantes.
Você precisa de um sistema Debian Bookworm (Debian 12 ) para compilar a imagem. Outras distribuições baseadas no Debian podem funcionar, mas estas não foram testadas e podem falhar. No momento, sabemos das seguintes limitações:
Se você tentar compilar imagens do Debian Bookworm no Debian Bullseye (Debian 11), só poderá criar imagens netboot, mas não imagens iso/iso-híbridas/hdd.
Se quiser tentar compilar imagens Debian (Bookworm) no Ubuntu, precisará instalar os pacotes live-build, debootstrap e debian-archive-keyring do repositório Debian.
Sugerimos usar um sistema de 64 bits; no entanto, é possível usar um sistema de 32 bits se você não quiser compilar uma imagem ThinClient de 64 bits.
Sugerimos deixar pelo menos 6 GB de espaço livre em disco para que a compilação não seja interrompida por espaço insuficiente enquanto os pacotes são baixados, descompactados e copiados.
1) Certifique-se de que sua lista de pacotes esteja atualizada executando:
sudo apt update
2) Instale o(s) pacote(s) necessário(s) executando:
sudo apt install genisoimage git-core live-build live-config-doc live-manual-html live-boot-doc lsb-release netcat-traditional rsync
3) Se você quiser acelerar as compilações subsequentes, instale o(s) pacote(s) recomendado(s) executando:
sudo apt install apt-cacher-ng
4) Se você quiser poder fazer a compilação cruzada entre diferentes arquiteturas (por exemplo, compilar uma imagem ARM em um host de compilação Intel/AMD), instale o(s) pacote(s) opcional(is) executando:
sudo apt install qemu-user-static binfmt-support squashfs-tools -y && update-binfmts --enable qemu-aarch64
Construindo sua própria imagem X2Go-TCE
Configurando a compilação
Vá para o diretório onde deseja salvar suas compilações e salve o seguinte arquivo como x2go-tce-config:
<<< >>>
Aplicar patches ao vivo na compilação
Para adicionar patches que ainda não fazem parte de nenhum pacote, você pode usar o diretório
./patch/
para patches que devem ser adicionados a todas as versões e
./patch-minidesktop/
./patch/includes.chroot/etc/
/etc/
/etc/x2go/x2gothinclient-minidesktop_start
mkdir -p ./patch-minidesktop/includes.chroot/etc/x2go/
./patch-minidesktop/includes.chroot/etc/x2go/x2gothinclient-minidesktop_start
x2gothinclient-minidesktop_start
<<< >>>
Iniciando a compilação
No diretório onde você deseja salvar suas compilações, salve o seguinte arquivo como x2go-tce-build e execute-o (por exemplo, via sudo bash ./x2go-tce-build):
x2go-tce-build
<<< >>>
Inicialização via rede netbooting
Pré-requisitos
Você precisa de uma configuração DHCP/PXE/TFTP existente com os arquivos de inicialização e configuração pxelinux.0/pxelinux.cfg, além de um diretório onde o kernel e o initrd possam ser armazenados. Isso não é abordado aqui, embora possamos adicionar um tutorial separado para isso posteriormente.
Observe que quem conseguir falsificar esse nome de servidor pode implantar imagens não autorizadas em seus ThinClients. Se isso for um problema sério para você, considere usar mídia de armazenamento local e o atualizador automático.
Pode ser possível já usar HTTPS neste estágio inicial ao usar o iPXE. Isso não foi testado e requer a criação de sua própria imagem iPXE. Consulte http://ipxe.org/crypto para obter detalhes. Como alternativa, use ipxe.lkrn (de http://boot.ipxe.org/ipxe.lkrn) e pxelinux.0 em combinação com comandos ipxe em script no pxelinux.cfg.
Você também precisará de um servidor HTTP/HTTPS/FTP com um IP dedicado (sem hosts virtuais baseados em nome) para a imagem squashfs. - Observação: defina LBX2GO_NOSQUASHFS=true e use iPXE (por exemplo, com ipxe.lkrn + pxelinux.0) se não puder usar um IP para o seu host. Outra opção (não testada) é explicada aqui.
Esta imagem não pode ser implantada via TFTP, pois é muito grande - alguns servidores TFTP (em particular o atftpd) se recusam a servir arquivos com mais de 32 MB, e alguns clientes TFTP também têm problemas com isso.
Além disso, mesmo que você tenha uma combinação de servidor/cliente TFTP que processe arquivos maiores que 32 MB, ainda será muuuuito mais lento do que a transferência HTTP/FTP.
Observe que qualquer pessoa que conseguir falsificar o nome deste servidor pode implantar imagens não autorizadas em seus ThinClients. Se isso for um problema sério para você, considere usar mídia de armazenamento local e o atualizador automático.
Pode ser possível usar HTTPS com o comando fetch=. Isso ainda não foi testado.
Assim que sua configuração atender a todos os requisitos listados acima, prossiga e crie a imagem usando os scripts listados em Configurando a Criação - certifique-se de escolher export LBX2GO_IMAGETYPE='netboot' (este deve ser o padrão).
Configurando seu próprio ambiente X2Go-TCE com inicialização via rede
Adicionando os arquivos X2Go-TCE ao(s) seu(s) Servidor(es) de Inicialização e Web
Isso pressupõe que você já tenha uma configuração de servidor PXE/TFTP e HTTP (com HTTPS opcional) ou FTP existente e funcional.
Após a mensagem "Criação concluída:", acesse o diretório mencionado e copie x2go-tce-vmlinuz e x2go-tce-initrd.img para um subdiretório adequado na raiz do seu TFTP.
Sugerimos usar ./x2go-tce.
<<< TEM MUITA COISA AQUI QUE NÃO VAMOS PRECISAR>>>
Inicializando a partir de CD/DVD/USB
Defina as variáveis conforme mostrado em Configurando a compilação
Depois disso, continue com export LBX2GO_IMAGETYPE=“iso-hybrid” (recomendado) ou export LBX2GO_IMAGETYPE=“iso”.
Veja Parâmetros de Boot para X2Go-TCE para uma descrição das opções possíveis, faça suas escolhas, adicione-as onde diz FURTHER-OPTIONS-GO-HERE e siga com
export LBX2GO_DEFAULTS+=" --bootappend-live boot=live components noswap aufs rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0 kernel.sysrq=1 keep_bootcon sysrq_always_enabled rd.driver.pre=loop rd.noverifyssl rd.skipfsck rd.live.overlay.check rd.live.overlay.reset rd.live.ram log_buf_len=1M quickreboot consoleblank=0 kernel.sysrq=1 keep_bootcon sysrq_always_enabled rootwait=120 silent quiet splash lang=de vconsole.keymap=de keyboard-layouts=de locales=de_DE.UTF-8 hostname=localhost noroot nouser live-media-path=live FURTHER-OPTIONS-GO-HERE
Depois disso, você pode iniciar a compilação.
Se você realmente pretende gravar a imagem em um CD/DVD ou mídia USB, o único arquivo necessário está localizado em ./original-x2go-tce-live-image-i386.hybrid.iso após executar o script de compilação.
Se a imagem não inicializar, verifique o sistema de arquivos - deve haver uma pasta live contendo um arquivo filesystem.squashfs. Ajuste o valor de live-media-path= de acordo.
Gravando em CD/DVD
Use xorriso -as cdrecord -v dev=/dev/your-writer-device -dao ./original-x2go-tce-live-image-i386.hybrid.iso ou qualquer software de gravação de CD de sua preferência. Veja https://wiki.debian.org/BurnCd para mais informações. Sugestões adicionais.
Gravando em mídia USB
Ao usar iso-híbrido, este arquivo pode ser copiado diretamente para a mídia USB, sem a necessidade de descompactar, formatar, mexer em um gerenciador de inicialização, etc.
Então, basta executar dd if=./original-x2go-tce-live-image-i386.hybrid.iso of=/dev/targetdevice e aguardar a conclusão.
Além disso, ao usar iso-híbrido e mídia USB, existem alguns "truques" para recuperar espaço não utilizado na mídia USB e transformá-lo em uma solução que permite executar o X2GoClient em modo portátil no Windows e inicializá-lo como X2Go-TCE, com um arquivo de configuração compartilhado.
<<<JA DA PARA TESTAR AS COISAS >>>