Ubuntu 14.04, LTSP ja ID-kaart19. Jan '16
Important
Käesolev juhend on aegunud, Ubuntu 16.04 jaoks sobiv juhend on aadressil http://lauri.vosandi.com/2016/09/xenial-ltsp-ja-id-kaart.html
Juhend eeldab Ubuntu 14.04 server paigaldust.
Iseseisva serveri seadistamine
Iseseisev (standalone) server antud kontekstis tähendab seda, et LTSP serveril on kaks võrguliidest, millest üks vaatab Interneti poole ning teine on ühendatud eraldatud võrgusegmenti kus terminalid asuvad. Sellisel juhul serveeritakse terminalide võrku kõiki vajalikke teenuseid: DHCP, TFTP, NBD, SSH, LDM jne.
Esiteks uuenda pakette:
apt-get update
apt-get dist-upgrade
Paigalda LTSP metapakett, see seadistab kõik teenused mis on LTSP toimimiseks vajalikud:
apt-get install -y ltsp-server-standalone wget ca-certificates apt-transport-https
Seadista võrk failis /etc/network/interfaces, asenda 192.168.77.1 omale sobiliku sisevõrgu aadressiga:
cat << EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.77.1
netmask 255.255.255.0
EOF
Asenda vaikimisi alamvõrk 192.168.0.0/24 ka DHCP serveri seadistustes:
sed -i "s/192\.168\.0\./192.168.77./g" /etc/ltsp/dhcpd.conf
Taaskäivita teenused:
/etc/init.d/networking restart
/etc/init.d/network-manager restart
/etc/init.d/isc-dhcp-server restart
/etc/init.d/nbd-server restart
LTSP serveri lisamine olemasolevasse võrku
Kui sul on juba toimiv DHCP server võid asendada ltsp-server-standalone paketi ltsp-server paketiga:
apt-get install -y ltsp-server wget ca-certificates apt-transport-https
Sellisel juhul pead vajalikud teenused, nagu näiteks TFTP ise seadistama:
apt-get install -y tftpd-hpa
sed -e 's/TFTP_ADDRESS=.*/TFTP_ADDRESS=":69"/' /etc/default/tftpd-hpa
Kontrolli üle, et ka muud teenused oleks kättesaadavad terminalidele.
Töölaua keskkonna paigaldus
Ubuntu töölaud on üsna resursinõudlik ning terminal-serveri puhul äärmiselt aeglane, kuna pilt liigub üle võrgu. Terminal-serverile on soovitatud paigaldada MATE töölaud:
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y mate-desktop-environment-extras
Kui serverisse on paigaldatud mitu erinevat töölaua keskkonda, saab vaikimisi töölauda vahetada järgnevalt:
update-alternatives --config x-session-manager
Lisa ka Eesti ID-kaardi baastarkvara varamu:
echo "deb https://installer.id.ee/media/ubuntu/ trusty main" > /etc/apt/sources.list.d/ria-repository.list
wget https://installer.id.ee/media/install-scripts/ria-public.key -O - | apt-key add -
apt-get update
apt-get install -y estonianidcard
Lisa Xsession skript mis näitab uut PCSC-lite sokkli asukohta:
echo "export PCSCLITE_CSOCK_NAME=\$HOME/.pcscd.comm" > /etc/X11/Xsession.d/80-pcsclite
Lisa minu tarkvara varamu, kust saab kohandatud OpenSSH serveri mis oskab ümber suunatud ID-kaardi tarkvara sokleid vastu võtta:
echo "deb http://packages.koodur.com trusty main ltsp" > /etc/apt/sources.list.d/koodur.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 054C36F8
apt-get update
apt-get upgrade
PC-baasil terminalid
Enamus PC riistvara toetab PXE-alglaadimist. Alusta terminali tarkvara juurfailisüsteemi loomisega:
MIRROR="http://ee.archive.ubuntu.com/ubuntu/" \
LANG=C \
ARCH=i386 \
ltsp-build-client
ID-kaardi jaoks vajalike komponentide paigaldamiseks sisene terminali juurfailisüsteemi:
chroot /opt/ltsp/i386 /bin/bash
Lisa minu tarkvara varamu, kust saab kohandatud OpenSSH kliendi mis oskab ID-kaardi sokleid serverisse suunata:
echo "deb http://packages.koodur.com trusty main ltsp" > /etc/apt/sources.list.d/koodur.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 054C36F8
Paigalda PCSC-Lite deemon:
apt-get install -y pcscd
Lisa SSH kliendi seadistused, tärni võib asendada oma serveri IP-ga:
cat << EOF > /etc/ssh/ssh_config
Host *
SendEnv LANG LC_*
RemoteForward ~/.pcscd.comm /run/pcscd/pcscd.comm
EOF
VIA terminalide UniChrome graafika tüürelite seis on suht halb seega ma lülitaks välja ka 3D kiirenduse:
cat << EOF > /etc/X11/xorg.conf
Section "Module"
Disable "glx"
Disable "dri"
EndSection
EOF
Välju terminali juurikast:
exit
Uuenda terminali juurfailisüsteemi SquashFS tõmmist:
ltsp-update-image
RDP sessiooni lisamine
Lisa terminali juurikasse rdesktop pakett:
chroot /opt/ltsp/i386 apt-get install -y rdesktop
Genereeri uuendatud tõmmis:
ltsp-update-image
Seadista ringi /var/lib/tftpboot/ltsp/i386/lts.conf:
[default]
SCREEN_07="rdesktop -x l -k et -u '' -f -r scard -r sound -r disk:floppy=/run/drives aken.edu.ee"
SCREEN_08="ldm"
Ubuntu 14.04 baasil terminalist Windows 2012 serveri pihta käies on mingi häda kursorite kadumisega, sellest saab mööda kui Windowsi poolel välja lülitada kursori vari 1 või terminali juurikasse paigaldada uuendatud RDP klient:
chroot /opt/ltsp/i386 apt-get install -y libgssglue1
chroot /opt/ltsp/i386 wget http://launchpadlibrarian.net/193620368/rdesktop_1.8.3-1_i386.deb
chroot /opt/ltsp/i386 dpkg -i rdesktop_1.8.3-1_i386.deb
chroot /opt/ltsp/i386 rm -fv rdesktop_1.8.3-1_i386.deb
ARCH=i386 ltsp-update-image
Sisselogimisdialoogi aegumise vältimiseks ava Windowsi register ning lisa HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp alla DWORD tüüpi LogonTimeout=0xffffffff võti-väärtus paar 2.
Cubietrucki ette valmistamine
Kuna PXE on x86 platvormi spetsiifiline siis säärast võimekust näiteks Cubietrucki kasutada ei saa. Küll aga saab Cubietruckile kõrvetada püsivara, mis analoogselt PXE-le laadib võrgust alla tuuma, initrd ning jätakb operatsioonisüsteemi alglaadimisega.
Esmalt paigalda QEMU emulatsioonikiht:
apt-get install -y qemu-user-static binfmt-support
Keela OMAP4 tuuma paigaldus, see pole naguinii enam kättesaadav tarkvaravaramutest:
sed -i -e 's/KERNEL_ARCH="omap4"/KERNEL_ARCH=""/' /usr/share/ltsp/plugins/ltsp-build-client/Ubuntu/020-kernel-selection
Loo ARM juurfailisüsteem:
DEBOOTSTRAP=qemu-debootstrap ARCH=armhf LANG=C ltsp-build-client
Lisa serveri SSH võti:
ltsp-update-sshkeys
Sisene Cubietrucki juurfailisüsteemi:
chroot /opt/ltsp/armhf /bin/bash
Cubietrucki jaoks paigalda Igori 3.4.x tuum ja moodulid kuhu sai külge poogitud LTSP jaoks vajalik overlayfs:
echo "deb http://apt.armbian.com trusty main" > /etc/apt/sources.list.d/armbian.list
apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5
apt-get update
apt-get install -y linux-image-sun7i
Lisa minu tarkvara varamu, kust saab kohandatud OpenSSH kliendi mis oskab ID-kaardi sokleid serverisse suunata:
echo "deb http://packages.koodur.com trusty main ltsp" > /etc/apt/sources.list.d/koodur.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 054C36F8
Uuenda pakettide nimekirju:
apt-get update
Paigalda kohandatud OpenSSH, PCSC-deemon, LTSP-kliendi metapakett ja muu tilu-lilu:
apt-get install -y openssh-client pcscd xf86-video-fbturbo
Lisa SSH kliendi seadistused, et terminal võimaldaks serveris ligipääsu terminalis jooksvale PCSC deemonile, vajadusel asenda tärn oma serveri IP-ga:
cat << EOF > /etc/ssh/ssh_config
Host *
SendEnv LANG LC_*
RemoteForward ~/.pcscd.comm /run/pcscd/pcscd.comm
EOF
Kui soovid kasutada ka RDP sessioone siis uuendatud RDP kliendi paigaldamiseks:
apt-get install -y libgssglue1
wget http://launchpadlibrarian.net/193620260/rdesktop_1.8.3-1_armhf.deb
dpkg -i rdesktop_1.8.3-1_armhf.deb
rm -fv rdesktop_1.8.3-1_armhf.deb
Välju juurikast:
exit
Uuenda NBD kaudu serveeritavat tõmmist:
ltsp-update-image
Cubietruck tuuma pakendamine
Paigalda esmalt u-boot tööriistad:
apt-get install -y u-boot-tools
Sikuta Cubietrucki riistvara konfiguratsioon, mis paneb VGA pesa käima resolutsioonil 1024x768 ja lülitab välja terminali jaoks ebaolulised komponendid (WiFi, Bluetooth jms):
wget https://www.koodur.com/cubietruck/1024x768.bin -O /var/lib/tftpboot/ltsp/armhf/1024x768.bin
Loo u-boot jaoks skript mis laeb tuuma, initrd ning riistvara konfiguratsiooni:
cat << EOF > /var/lib/tftpboot/ltsp/armhf/1024x768.scr
setenv bootm_boot_mode sec
setenv bootargs 'ro init=/sbin/init-ltsp init=/sbin/init-ltsp root=/dev/nbd0'
tftp 0x43000000 /ltsp/armhf/1024x768.bin
tftp 0x42000000 /ltsp/armhf/uImage
tftp 0x50000000 /ltsp/armhf/initramfs.uImage
bootm 0x42000000 0x50000000
EOF
Genereeri u-boot tõmmised:
mkimage -A arm -O linux -T script -C none -n boot.scr -d \
/var/lib/tftpboot/ltsp/armhf/1024x768.scr \
/var/lib/tftpboot/ltsp/armhf/1024x768.scr.uimg
mkimage -A arm -T ramdisk -C none -n uInitrd -d \
/var/lib/tftpboot/ltsp/armhf/initrd.img-3.4.110-sun7i \
/var/lib/tftpboot/ltsp/armhf/initramfs.uImage
mkimage -A arm -O linux -T kernel -C none -n Linux -a 42000000 -e 42000000 -d \
/var/lib/tftpboot/ltsp/armhf/vmlinuz-3.4.110-sun7i \
/var/lib/tftpboot/ltsp/armhf/uImage
Seadista ringi ka DHCP serverit failis /etc/ltsp/dhcpd.conf:
authoritative;
subnet 192.168.77.0 netmask 255.255.255.0 {
range 192.168.77.20 192.168.77.250;
option domain-name "ltsp";
option domain-name-servers 8.8.8.8;
option broadcast-address 192.168.77.255;
option routers 192.168.77.1;
next-server 192.168.77.1;
option subnet-mask 255.255.255.0;
if substring( option vendor-class-identifier, 0, 3 ) = "PXE" {
filename "/ltsp/i386/pxelinux.0";
option root-path "/opt/ltsp/i386";
} else {
filename "/ltsp/armhf/1024x768.scr.uimg";
option root-path "/opt/ltsp/armhf";
}
}
Cubietruck alglaaduri uuendamine
Viimase sammuna peab Cubietruckile peale laskma uue u-booti mis püüab võrku seadistada DHCP-ga ning siis sealt TFTP-ga skripti alla sikutada. IT Kolledži Robootikaklubist saab laenutada SD-kaarti millel on Priit Laes kirjutatud skript, mis uue u-booti kirjutab Cubietrucki sisemisele mälule, nii et eraldi mälukaarti hiljem vaja pole:
# Seda tuleb siis Cubietrucki peal jooksutada ;)
wget -c https://www.koodur.com/cubietruck/u-boot-sunxi-with-spl.bin -O /root/u-boot-sunxi-with-spl.bin
echo nand-disk >/sys/class/leds/cubietruck\:blue\:usr/trigger
flash_erase -N /dev/mtd0 0 0 && \
nandwrite -p /dev/mtd0 /root/u-boot-sunxi-with-spl.bin && \
flash_erase -N /dev/mtd1 0 0 && \
nandwrite -p /dev/mtd1 /root/u-boot-sunxi-with-spl.bin && \
echo 1 > /sys/class/leds/cubietruck\:orange\:usr/brightness && \
sync && \
echo 0 > /sys/class/leds/cubietruck\:orange\:usr/brightness && \
echo 1 > /sys/class/leds/cubietruck\:green\:usr/brightness