Ubuntu 16.04, LTSP ja ID-kaart11. Sep '16

Juhend eeldab Ubuntu 16.04 server paigaldust.

InternetTerminal ServerTerminalsHub or switcheth0eth1

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 update
apt full-upgrade

Paigalda LTSP metapakett, see seadistab kõik teenused mis on LTSP toimimiseks vajalikud:

apt 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 en1
iface en1 inet dhcp

auto en0
iface en0 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:

systemctl restart networking
systemctl restart network-manager
systemctl restart isc-dhcp-server
systemctl restart nbd-server

LTSP serveri lisamine olemasolevasse võrku

Kui sul on juba toimiv DHCP server võid asendada ltsp-server-standalone paketi ltsp-server paketiga:

apt install -y ltsp-server ltspfs wget ca-certificates apt-transport-https

Sellisel juhul pead vajalikud teenused, nagu näiteks TFTP ise seadistama:

apt 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:

apt update
apt full-upgrade
apt 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/ xenial main" > /etc/apt/sources.list.d/ria-repository.list
wget https://installer.id.ee/media/install-scripts/ria-public.key -O - | apt-key add -
wget https://installer.id.ee/media/install-scripts/C6C83D68.pub -O - | apt-key add -
apt update
apt install -y open-eid

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

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

Paigalda PCSC-Lite deemon:

apt 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_*
PermitLocalCommand yes
LocalCommand /bin/sh -c "sh -c \"ssh -S /var/run/ldm_socket_* -l %r server rm .pcscd.comm; ssh -S /var/run/ldm_socket_* -O forward -R /home/%r/.pcscd.comm:/run/pcscd/pcscd.comm -l %r server\"&"
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

Mälupulkade haakimiseks paigalda ka NTFS ning exFAT jaoks vajalikud komponendid:

apt install -y ntfs-3g exfat-fuse

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 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"

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].

[1]http://www.thewindowsclub.com/enable-disable-mouse-pointer-shadow-windows
[2]http://serverfault.com/questions/422770/changing-the-login-timeout-for-windows-remote-desktop-services

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 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 xenial main" > /etc/apt/sources.list.d/armbian.list
apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5
apt update
apt install -y linux-image-sun7i

Uuenda pakettide nimekirju:

apt update

Paigalda kohandatud OpenSSH, PCSC-deemon, LTSP-kliendi metapakett ja muu tilu-lilu:

apt install -y openssh-client pcscd

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_*
PermitLocalCommand yes
LocalCommand /bin/sh -c "sh -c \"ssh -S /var/run/ldm_socket_* -l %r server rm .pcscd.comm; ssh -S /var/run/ldm_socket_* -O forward -R /home/%r/.pcscd.comm:/run/pcscd/pcscd.comm -l %r server\"&"
EOF

Kui soovid kasutada ka RDP sessioone siis uuendatud RDP kliendi paigaldamiseks:

apt install -y rdesktop

Mälupulkade haakimiseks paigalda ka NTFS ning exFAT jaoks vajalikud komponendid:

apt install -y ntfs-3g exfat-fuse

Välju juurikast:

exit

Uuenda NBD kaudu serveeritavat tõmmist:

ltsp-update-image

Cubietruck tuuma pakendamine

Paigalda esmalt u-boot tööriistad:

apt 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.*-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.*-sun7i \
    /var/lib/tftpboot/ltsp/armhf/uImage

Seadista ringi ka DHCP serverit failis /etc/ltsp/dhcpd.conf, siinkohal on välja nopitud Cubietruckid millel on 1024x768 resolutsiooniga ekraanid ning mõned mis on 1280x1024 resolutsiooniga ekraanid. Ülejäänud masinad sooritavad x86 terminali alglaadimise PXE abil:

authoritative;

group {
    filename "ltsp/armhf/1024x768.scr.uimg";
    host term1 { hardware ethernet 02:c1:08:c3:10:9f; }
    host term2 { hardware ethernet 02:8d:06:c0:c5:36; }
    host term3 { hardware ethernet 02:15:07:c2:ff:cc; }
}

group {
    filename "ltsp/armhf/1280x1024.scr.uimg";
    host term4 { hardware ethernet 02:c1:0a:01:d3:0f; }
    host term5 { hardware ethernet 02:c1:08:82:f6:9f; }
    host term6 { hardware ethernet 02:c8:07:c1:cc:93; }
}

subnet 192.168.77.0 netmask 255.255.255.0 {
    range 192.168.77.100 192.168.77.250;
    option routers 192.168.77.1;
    option domain-name-servers 192.168.77.1;
    option domain-name "ltsp";
    filename "pxelinux.0";
}

Cubietrucki võrgust alglaetavaks tegemine

Viimase sammuna peab Cubietrucki jaoks ette valmistama mälukaardi mis oskab võrgust alglaadimist sooritada. Laadi alla selle jaoks sobilik u-boot ning kirjuta see microSD mälukaardile.

wget http://os.archlinuxarm.org/os/sunxi/boot/cubietruck/u-boot-sunxi-with-spl.bin
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

Sisemisele mälule modernse u-booti kirjutamine on jätkuvalt problemaatiline, MLC mälukivi kasutuse tõttu kipub selle sisu korrumpeeruma andmete lugemisel.

Mälupulkade haakimine

Mälupulkade haakimine peaks toimima automaatselt, kui see pole nii kontrolli et serveris oleks paigaldatud ltspfs pakett.

apt install ltspfs

Terminali juurfailisüsteemis kontrolli, et oleks paigaldatud tarkvara NTFS ning exFAT failisüsteemide haakimiseks:

apt purge -y flash-kernel # armhf juurikas muidu püüab kernelit flashima hakata
apt install ntfs-3g exfat-fuse
Debian Cubietruck ID-card ID-kaart pcscd PKCS#11 LTSP OpenSSH Ubuntu PCSC-Lite NBD opensc-tool OpenSC