Fra le cose che ho fatto ieri e l'altro ieri, mi son messo a installare il Cygwin + XFree86 4.2 sulle macchine dell'aula computer, facendo in modo che offrissero il logon (via xdm) della macchina Linux che fa da server. Nel farlo ho notato un paio di intoppi, che forse vale la pena di segnalare: 1) Per far si che le macchine client possano collegarsi all'application server (via XDMCMP) e avere la finestra di logon, NON BASTA che xdm sia in funzione e che in /etc/X11/xdm/Xaccess ci sia il solito `*' (per indicare che qualunque client puo` essere gestito dall'xdm che funziona lato server): e` anche necessario che l'application server sia in grado di risalire al nome della macchina client che tenta di collegarsi (vien fatto un reverse lookup dell'indirizzo IP del client per risalire al suo nome). Quindi, o in /etc/hosts, o nel DNS usato, occorre che ci siano nomi ed indirizzi delle macchine client (con anche la zona a rovescio nel caso di un DNS), ANCHE SE si autorizza qualsiasi client alla connessione. Pare un controsenso, ma il matching lato server vien fatto sui nomi... anche se son tutti. 2) Sulla documentazione di XFree86 per Cygwin si parla di connessione ad un application server lanciando XWin.exe -query xxx.xxx.xxx.xxx -from yyy.yyy.yyy.yyy In altre parole bisogna specificare l'indirizzo dell'application server (xxx.xxx.xxx.xxx, e questo e` abbastanza ovvio) ed anche il proprio indirizzo: questo perche`, a quanto pare, XWin.exe non riesce a determinare in tutte le situazioni l'indirizzo IP della macchina. In realta`, se ad XWin.exe non si specifica l'opzione `-from', XWin.exe usa l'indirizzo della prima interfaccia di rete che trova sulla macchina. Ora succede che, in genere, la prima interfaccia di rete che trova e` la `scheda di Accesso Remoto', che quando la connessione e` down e` sconfigurata ed ha come indirizzo 0.0.0.0... Soluzione: o si rimuovono le varie interfacce di rete da pannello di controllo in modo che rimanga solo quella da usarsi per la connessione all'application server, oppure bisogna fare uno scriptino ad hoc con grep e sed (possibile, visto che c'e` il Cygwin) che macini l'output di `ipconfig' e deduca l'indirizzo locale da usare con il parametro `-from'. 3) A quanto pare (ma non ne sono ancora del tutto sicuro), XWin.exe non supporta l'opzione `-broadcast', per attaccarsi al primo xdm che risponde in rete... per cui sembra che sia necessario per forza fare una query diretta ad un server specifico, usando `-query' con il nome/indirizzo di un application server. 4) XWin.exe per default parte configurato con la tastiera statunitense, e non c'e` modo di specificargli alla partenza un layout diverso. E` comunque possibile cambiargli la mappatura della tastiera durante l'esecuzione, tramite xmodmap ed un file preparato ad hoc. Fortunatamente, i keycode (i codici numerici delle tastiere) sono identici sia su Linux che su Windows con Cygwin, per cui basta andare su una macchina Linux con XFree86 configurato con la tastiera italiana, eseguire xmodmap -pke > tastiera.it copiare il file `tastera.it' sulla macchina col Cygwin e poi far eseguire un `xmodmap tastiera.it' subito dopo l'avvio di XWin.exe (il file startxwin.bat sembra essere il posto ideale). Tuttavia, se ci si collega ad un application server, xdm prende controllo completo dell'X server lato client, e di fatto impedisce di eseguire altri comandi che richiedono una conessione finche` l'utente non si logga. Fortunatamente, e` possibile specificare lato application server degli script da eseguire per effettuare il setup dei client che si connettono. Tali script vengono eseguiti giusto prima che venga mostrata la finestra di logon su un certo client, ed in uno di essi (lato application server) ci possiamo aggiungere il nostro ``xmodmap tastiera.it'' e vivere (relativamente) tranquilli. 5) Per avere un'icona sul desktop di Windows che avvii l'X server fullscreen e lo faccia connettere direttamente all'application server, basta prendere come esempio il buon startxwin.bat (fornito con XFree86 per Cygwin), copiarserlo sul desktop e modificarselo per avviare XWin.exe con le opzioni del caso (i.e. XWin.exe -screen 0 1024 768 -fullscreen -query xxx.xxx.xxx.xxx (con anche `-from yyy.yyy.yyy.yyy' se non si riesce a risolvere il problema di cui al punto 2). Tenendo conto di questi punti, installare il Cygwin e XFree86 per Cygwin su una macchina Windows in modo che si connetta ad un application server con xdm o simili e` questione di poco tempo (piu` che altro speso ad attendere la copiatura dei file). Prossimamente (se mi riesce il trucco): uso di lbxproxy (o di dxpc: http://www.vigor.nu/dxpc) per ridurre la quantita` di banda e le latenze dell'X protocol su reti intasate (di messaggi di broadcast, ogni quarto d'ora, nientemeno... :-) -- | \ \ | ___|_ |_ | ianezz AT sodalia.it | _ \ | \ | _| / / Visita il LinuxTrent a _|_/ _\_| _|____|___|___| http://www.linuxtrent.it -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx