Personal Raspberry Pi Client LTSP

Premessa

Il client deve collegarsi al Personal Server LTSP. Il client e` un Raspberry Pi.
 

Installazione

Non mi dilunghero` perche` non ho capito bene-bene come sia riuscito, fondamentalmente ho smontato pezzo per pezzo tutti gli script di una installazione LTSP, cercando di (ri)costruire tutti i passaggi e le configurazioni, ecco quel che ne e` uscito.

Installate la vostra distribuzione "raspbian" come da manuale, al termine ho anche effettuato un aggiornamento:

sudo apt-get update sudo apt-get upgrade

Ho installato il pacchetto "ltsp-client", questa operazione e` possibile solo sulla distribuzione "armel", se volete provare su un pc 386 o amd64 fallira`:

sudo apt-get install ltsp-client

Poi ho creato lo script per collegarmi ed utilizzare il Raspberry Pi come client LTSP, questo e` il contenuto:

#!/bin/sh

export LDM_SERVER="192.168.2.12"

export XAUTHORITY=/var/run/Xauthority
export DISPLAY=:0
export LOCALE=C

export LDM_THEME=ltsp
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LDM_LANGUAGE=en_US.UTF-8
export LDM_DIRECTX=True

export SOUND=True
#export SOUND_DAEMON=pulse

# Explicitly allow pulse user access to sound devices, ignore errors
if [ -x /usr/bin/setfacl ]; then
    /usr/bin/setfacl -m u:pulse:rw /dev/snd/* > /dev/null 2>&1
fi
# Requires 0.9.16+ which uses module-udev-detect instead of
# module-detect and module-stream-restore instead of
# module-volume-restore
PULSE_DETECT=module-udev-detect
PULSE_VOLUME_RESTORE=module-stream-restore
/usr/bin/pulseaudio --system \
--exit-idle-time=-1 \
--disable-shm \
--no-cpu-limit \
--resample-method=trivial \
--high-priority \
--log-target=syslog \
-L $PULSE_DETECT \
-L "module-native-protocol-tcp auth-anonymous=1" \
-L $PULSE_VOLUME_RESTORE \
-L module-rescue-streams \
-L "module-native-protocol-unix auth-anonymous=1" \
-n &

# FIXME: should introduce a way to embed keys in image to prevent man-in-the-middle scenario
export LDM_SSHOPTIONS="-o StrictHostKeyChecking=no -o CheckHostIP=no"

# Disable (reverse) DNS lookups
echo "" >/etc/resolv.conf

echo "Retrieving LDM settings from ${LDM_SERVER}"
if [ ! -d /var/run/ldm ]; then
    mkdir /var/run/ldm
fi
nc -w 5 ${LDM_SERVER} 9571 > /var/run/ldm/${LDM_SERVER}

if [ ! -s /var/run/ldm/${LDM_SERVER} ]; then
    echo "Error retrieving LDM settings from ${LDM_SERVER}. Not a LTSP server?"
    echo
    exit 1
fi

MCOOKIE=$(mcookie)
xauth -q add ${DISPLAY} . ${MCOOKIE} 2>/dev/null
clear
echo "Starting X .."

while true
    do
    Xorg -auth $XAUTHORITY &
    ldm
    killall Xorg
    clear
    echo "Restarting X and LDM .."
    sleep 1
done

exit $?

Lo script e` da eseguire come root, quindi:

sudo ./<script>

 

Attenzione:

Alcune righe dello script potrebbero essere riportate a capo dalla visualizzazione (spero di no).

 

Note:

Faccio notare che questa soluzione e` solo per uso personale, non ho bloccato l'accesso/login nelle altre console (tty).

L'audio funziona, ma non utilizzando il browser, forse manca qualcosa da configurare nel server (almeno credo).

Il server LTSP e` specificato con un indirizzo all'inizio dello script.

Riferimenti:

http://www.raspberrypi.org/downloads

http://www.raspbian.org/

http://www.berryterminal.com/doku.php

http://www.ltsp.org/download/