Home > Linux, Server, Ubuntu > Xephyr – X window system server in una finestra

Xephyr – X window system server in una finestra

In tutte le distruzioni linux è abbastanza agevole avviare sulla stessa macchina sessioni grafiche X server distinte con utenti diversi. Normalmente però si può avere attiva sul display una sola sessione alla volta e il passaggio tra i display delle sessioni avviene con i tasti Ctrl-Alt-Fn(con n>7). Xephyr è un window system server che consente di superare questo limite permettendo di visualizzare altre sessioni X server all’interno di finestre su un pre-esistente X display server.

I potenziali utilizzi di Xephyr sono ad esempio:

  • visualizzare desktop environment remoti in locale su ssh senza ricorrere a vnc.
  • aprire X session con lo stesso user o altro user per test vari ( ad esempio di altri desktop environment, visualizzione di applicazioni con risoluzioni diverse, ssh in chroot/server …) .

Di seguito alcuni screenshot di Xephyr in locale. Nella prima immagine il window manager awesome avviato in locale in una finestra 1024×768. Nella seconda il dettaglio della finestra xephyr ospitante awesome si nota in alto a sinistra la dvb-tv visualizzata con vlc.

Xephir con awesome in Ubuntu 12.10 con lxde

debian awesome in Xephyr in Ubuntu 12.10 con lxde

awesome in Xephyr

dettaglio della finestra Xephyr con awesome in debian 6.0

.
.

Xephyr X window system server annidato

Xephyr, il server X annidato leggero, consente, come gia detto, di creare finestre che agiscono come schermi aggiuntivi, fornendo un servizio di visualizzazione grafica ai programmi client, che possono essere applicazioni o interi desktop manager, anche di computer remoti. Xephyr ha il vantaggio di supportare le ultime estensioni di X e poichè è un X server reale non limitato dalle caratteristiche del X server host che viene usato come “framebuffer”.  Xephyr si basa su kdrive una versione ridotta di X.org.

Xephyr in ubuntu si installa con

sudo apt-get install xserver-xephyr

Avviare un desktop environment remoto in ubuntu con xephyr

a) Xephyr gira sulla macchina locale.

In questo esempio Xephyr funzionerà sulla macchina locale e visulizzerà il window manager fluxbox di una macchina debian 6.0 remota. Per fare questo creiamo un nuovo display (screen) in Ubuntu 12.10 con Xephyr utilizzando il comando base:

Xephyr :12 -screen 1024x768 -ac &

:12 è il display generato ovviamente sarà diverso dal display di default ( :0 normalemnte )
-screen 1024×768 le dimensioni dello screen
-ac disabilita le restrizioni di accesso ( consente in pratica la trasmissione di X)

connettiamoci ad un server remoto Debian 6.0 con ad esempio

ssh -XC user-name@192.168.1.14

-X = abilita il reindirizzamento X. Enables X11 forwarding.
-C = utilizza la compressione

adesso reindirizziamo il display della macchina Debian 6.0 verso il display virtuale :12 della macchina Ubuntu (192.168.1.3)   e avviamo il window manager fluxbox

DISPLAY=192.168.1.3:12  fluxbox

Nello screenshot seguente  il risultato

Xephyr in locale fluxbox in  debian 6.0 remoto

Xephyr in locale fluxbox in debian 6.0 remoto

Possiamo controllare i servizi Xephyr attivi nella macchina locale con

maurizio@Lub12120:~$ ps fax | grep "Xephyr"
24879 pts/11   S+     0:00  |   \_ grep --color=auto Xephyr
12111 pts/1    S      2:08      \_ Xephyr :12 -screen 1024x768 -ac

Nello screenshot la finestra xterm evidenzia il comando sopra riportato che però da esisto diverso evidenziando come nella macchina remota non sia attivo nessun X server Xephyr.

In generale per esportare il display il comando base è il seguente

DISPLAY=ip-target-machine:num-display desktop-environment

si possono ricercare i desktop environment avviabili con

grep "^Exec" /usr/share/xsessions/*
b) Xephyr gira sulla macchina remota.

In questo caso Xephyr viene fatto girare sulla macchina debian remota e trasmesso sulla macchina locale. Le performance sono inferiori.
Connettiamoci con ssh alla macchina remota consentendo il forward delle

ssh -XC user-name@192.168.1.14

quindi avviamo Xephyr

Xephyr :9 -ac -screen 800x600 &
DISPLAY=:9  fluxbox

Questa volta la finestra xterm dello screenshot evidenzia come nella macchina remota debian stia girando Xephyr nel display :9. Nella macchina locale il risultato non cambia è attivo solo il precedente Xephyr

maurizio@Lub12120:~$ ps fax | grep [X]ephyr
12111 pts/1    S      2:08      \_ Xephyr :12 -screen 1024x768 -ac
Xephyr remoto con fluxbox in debian remoto

Xephyr remoto con fluxbox in debian remoto

Le performance in questo seconda situazione sono inevitabilmente inferiori.

Disporre di una tale opportunità può risultare utile in caso si vogliano testare windows managere o desktop environemtne diversi senza chiudere e aprire sessioni.

Avviare awesome in Xephyr

Awesome è un window manager in lua pulito ed essenziale. Organizza efficacemente lo spazio video ed è altamente configurabile. Su doppio monitor mette a disposizone di default 9+9 “schermi virtuali” indipendenti. Avviare awesome in Xephyr rappresenta un buon metodo per testare le modifiche apportate al file di configuazione rc.lua evitando di perdere il controllo del sistema in caso di errore.

Di seguito come avviare il window manager awesome in Xephyr in Ubuntu 12.04 e 12.10 in modo da testare le modifiche del file di configurazione.

Avviamo Xephyr

Xephyr :1 -ac -br -noreset -screen 1280x1024  &

Impostare la variabile DISPLAY:

DISPLAY=:1

avviamo awesome nello slave X utilizzando la configuazione personalizzata presente in ~/.config/awesome/rc.lua.new:

 $ awesome -c ~/.config/awesome/rc.lua.new

Per velocizzare la fase di test può utilizzare anche predisporre script .sh con :

 Xephyr :1 -ac -br -noreset -screen 1024x768 &
sleep 1
DISPLAY=:1 awesome -c ~/.config/awesome/rc.lua.new

Using Xephyr – awesome

Le opzioni di base del comando Xephyr:

Il numero di display virtuali X server che è possibile avviare con Xephyr è condizionato esclusivamente dall’esaurimento della memoria disponibile. Di seguito un paio di comandi per avviare Xephyr con evidenziate le opzioni base di Xephyr

Xephyr : 3 -ac -screen 1280x1024 -br -reset-terminate 2> /dev/null &

:3 = indica il display usato da Xephyr.
In genere il display di default è :0 il pratica il monitor che si sta usando in condizioni normali . Qualsiasi display addizionale, reale o virtuale necessita di una nuova porta. In questo caso la scelta è caduta su :3 ma poteva anche essere :11.

-ac = disabilita le restrizioni di accesso.  L’accesso alla sessione X  può avvenire da qualsiasi host : agisce come host+, che permette di accettare X session reindirizzate.

-screen 1280×1024 = specifica le dimensioni del nuovo display virtuale: la finestra X server.

-br = imposta il colore di background della root window

-reset-terminate = consente di chiudere automaticamente Xephyr quando l’ultimo client viene terminato.

2> /dev/null = indirizza qualsiasi messaggio a /dev/null, un dispositivo che è una sorta di cestino digitale: riceve qualsiasi cosa gli venga inviato senza ritornare niente.

& = indica che Xepbyr sarà il comando viene eseguito in background questo ritorna il controllo del promt del terminale consentendo di continuare digitare comandi nella finestra.

Xephyr :11 -ac -br -kb -noreset -screen 1024x768  &

In questo caso Xephyr genera una finestra X server più piccola di 1024×768. Viene consentita la visualizzazione dei messaggi di errore. Al nuovo display virtuale viene assegnato il numero ( la porta) 11.
– kb  =  mantiene le impostazioni della tastiera della sessione che avvia xephyr. ( non sempre disponibile )
-noreset =  don’t reset after last client exists Non consente il reset

Risorse:

freedesktop.org – Software/Xephyr

Multiseat Configuration/Xephyr – Wikibooks, open books for an open world

X.Org Wiki – Home

Window Manager per linux ubuntu debian

Linux – Desktop Manager e Windows Managers

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: