Instrukcja w fromacie pdf
Transkrypt
Instrukcja w fromacie pdf
Sławomir Ryszawy [email protected] ver. 0.03a z 25.05.2004 drakTermServ w US Stare PC jako Linuxowy terminal przeznaczony do pracy z Windows 2003 i POLTAXem. 14.03.2004 Niniejszy dokument, bez pytania autora o pozwolenie, wolno rozpowszechniać wyłącznie w oryginalnym formacie za pomocą sieci (w tym także Internet) oraz na dyskietkach, CDROMach i płytach DVD. Niniejszą instrukcję wykorzystujecie na własną odpowiedzialność 1. Wprowadzenie 1.1 Założenia Celem niniejszego instrukcji jest opisanie jak skonfigurować serwer terminali Linuxowych w oparciu o Mandrake 9.2. Pozwoli to na wykorzystanie starych PC jako terminali graficznych. Zalecana konfiguracja terminali to co najmniej Pentium 100MHz, 32 MB RAM oraz stacja dysków. Ponieważ terminale pracują jako NC a nie cienki klienty, nie powodują istotnego obciążenia serwera (poza okresem kiedy startują). Czas jaki potrzebuje taki terminal wyposażony w kartę 10MBit na start mieści się poniżej 4 minut. Oczywiście wąskim gardłem podczas uruchamiania kilkudziesięciu terminali może stać się karta sieciowa serwera. Można jednak ten problem ominąć dokładając dodatkową kartę sieciową i odpowiednio konfigurując system. Po skonfigurowaniu na vt1 będziemy mieli POLTAX, na vt2 rdesktop (linuxowy klient terminalowy dla systemów Windows Terminal Server), na vt3 konsola administracyjna. Przed przystąpieniem do konfiguracji należy wiedzieć co to jest DHCP, jak dodać użytkownika do systemu, jak korzystać z mc (linuxowy klon NC), zakładam też że nie jest dla nikogo zaskoczeniem informacja, iż w Linuxie, by można było program lub skrypt uruchomić musi on mieć atrybut wykonywalności. UWAGA Po konfiguracji nasz Linux będzie pracował jako serwer DHCP. Jeżeli w sieci mamy jeszcze jakiś serwer DHCP to musimy go wyłączyć. Z tej wersji instrukcji usunięto większą część opisu MDK 10. Zostanie on przywrócony i uzupełniony po ściągnięciu i przetestowaniu przeze mnie MDK 10 w wersji Official. 1.2 Troszkę (bardzo uproszczonej) teorii. Komputer sieciowy (NC od Network Computer) jest to komputer nie posiadający napędów lecz wykorzystujący napędy serwera. Przy starcie system operacyjny jest ładowany z serwera. Cienki klient (thin client). W przypadku cienkiego klienta aplikacje wykonywane są na serwerze. Jako cienki klient może pracować prawie dowolny PC, komputer sieciowy albo NetPC (rozwiązanie pośrednie pomiędzy NC i PC). Cienki klient ze względów marketingowych zwany jest także uproszczonym lub pasywnym klientem. 1 Jeżeli terminale startują poprzez sieć to mogą to robić wykorzystując pxe lub etherboot. Etherboot to specjalny bootrom przygotowany do startowania z sieci. Może być umieszczony na dyskietce, CDROMie albo w niektórych kartach sieciowych wyposażonych w EPROM. PXE to protokół do bootowania z sieci. Stare PC nie potrafią korzystać z PXE. Naszym celem jest skonfigurowanie starych PC tak by pracowały jako NCty bootujące dzięki Etherbootowi nagranemu na dyskietkę. Po wystartowaniu będą pracować jako cienkie klienty, korzystające z zasobów serwera Windows. 2. Konfiguracja Serwera Terminali 2.1 Serwer terminali na Linuxie Większość “dużych” dystrybucji Linuxa ma specjalne programy do pracy w roli serwera terminali. W Mandrake istnieje narzędzie o nazwie drakTermServ. Jest to aplikacja (a właściwie graficzna nakładka) korzystająca z kilku programów między innymi: tftpd, dhcpd, clusternfs, mkinitrd-net. Można za jej pomocą przygotować startowe dyskietki korzystające z etherboota oraz wybrać jądro wykorzystywane przez pxe (od MDK 10). DrakTermserv dostępny w Mandrake 10 jest nieco lepszy od tego z MDK9.2. Podstawowe różnice to dodanie kreatora “druid pierwszego uruchomienia” oraz możliwość korzystania z pxe (w tym przypadku musimy jednak zdecydować się na jeden, konkretny model karty sieciowej). DrakTermServ można uruchomić wpisując polecenie drakTermServ. Przed przystąpieniem do konfigurowania należy dodać do systemu użytkownika o nazwie “terminalowy” za pomocą jakiegoś narzędzia np. kuser lub userdrake. 2.2 Korzystanie z drakTermServ W MDK 10 do konfiguracji najlepiej skorzystać z kreatora a dopiero potem wybierać i dostosować poszczególne elementy wedle uznania. W MDK 9.2 nie ma kreatora więc musimy sami po kolei wszystko robić (co tak naprawdę nie jest trudniejsze, tyle że za pierwszym razem możemy o czymś zapomnieć). DrakTermServ z MDK9.2 2 A. Najpierw wybieramy “obrazy uruchamiane z sieci” Wybieramy najnowsze jądro jakie mamy na serwerze i klikamy “zbuduj całe jądro”. Trwa to kilkakilkanaście minut. Następnie w terminalu wchodzimy do katalogu /var/lib/tftpboot i wydajemy polecenie: for i in *.2.4.22-10mdk.* ; do ln -s $i ${i/.2.4.22-10mdk/} ; done Oczywiście o ile nasze jądro jest w wersji 2.4.22-10. W razie potrzeby należy zmienić numerki w powyższym poleceniu. Spowoduje to utworzenie dowiązań symbolicznych do plików ale z nazwami BEZ określania, które to jest wydanie jądra. Jeżeli są w tym katalogu pliki o takich nazwach to nie musimy tego robić, gdyż oznacza to że mamy jakieś starsze jądro już zbudowane z odpowiednimi nazwami. Lepiej jednak za pomocą drakTermServ->Obrazy uruchamiane z sieci usunąć przestarzałe jądra i zbudować tylko najnowsze. Jeżeli po usunięciu drakTermServ przestarzałego jądra pozostaną jakieś pliki w /var/lib/tftpboot można je ręcznie usunąć. Można też budować tylko dla wybranych kart sieciowych. Tutaj jedna uwaga. Zdarzyło mi się, że dla jednej karty nie zbudowało mi jądra po wybraniu “Zbuduj wszystkie jądra” i musiałem dla tej karty skorzystać z “Zbuduj pojedynczy NIC”. B. Wybieramy “Dodaj/usuń użytkownika”. Można tu wybrać, którzy użytkownicy mogą logować się z terminali. Nam wystarczy “terminalowy”. Jeżeli istnieje taka potrzeba to można też na jakiś czas dodać roota, choć jest to zdecydowanie niezalecane. W razie potrzeby można ręcznie skopiować linijkę dotyczącą roota z pliku /etc/shadow do /etc/shadow$$CLIENT$$. 3 C. Wybieramy “Dodaj usuń programy kliencke” Jeżeli zaznaczymy opcję “Włączenie lokalnej konfiguracji sprzętowej” to za pomocą narzędzi MDK: drak* można będzie zmieniać konfigurację terminali bezpośrednio na tych terminalach. W przeciwnym wypadku zmiana konfiguracji możliwa jest tylko z serwera. Oczywiście w tym celu będziemy musieli się zalogować jako root. Mamy tu także możliwość dodania indywidualnych klientów, wiążąc ich MAC adresy z określonymi adresami IP. Dzięki temu będzie można indywidualnie skonfigurować taki terminal. Zostanie bowiem wygenerowany dla niego zestaw plików konfiguracyjnych. W oknie tym wybieramy “Konfiguracja dhcpd...”. 4 Jak widać na załączonym rysunku, można tu dokonać tylko podstawowej konfiguracji DHCP, wystarczy jednak do naszych zastosowań. W razie potrzeby można ją potem innymi narzędziami dostosować. Niestety, nasz serwer terminali musi pełnić rolę DHCP. Po skonfigurowaniu proszę nie zapomnieć kliknąć “Zapisz konfigurację”. UWAGA! Należy upewnić się że w katalogu /etc powstał plik dhcpd.conf.etherboot.clients Jeżeli nie powstał to należy go utworzyć np. za pomocą polecenia >dhcpd.conf.etherboot.clients D. W celu rozpoczęcia pracy należy wybrać “Włącz serwer”, a następnie “Uruchom serwer”. Jeżeli dostaniemy informację iż Uruchamianie dhcpd: [NIEUDANE] należy w terminalu wpisać polecenie: dhcpd -cf /etc/dhcpd.conf. Na ekranie wyświetlony zostanie jaki mamy błąd w pliku konfiguracyjnym dhcpd. Zanim jednak włączymy serwer musimy dokończyć konfigurację. E. Przygotowanie dyskietek startowych Wybieramy “Uruchamianie sieciowe z dyskietki/obrazu ISO”. Umieszczamy w stacji dysków dyskietkę. Wybieramy stosowny pilk dla karty sieciowej i klikamy w “Dyskietka startowa”. Jeżeli nie wiemy który plik wybrać, stosowną informacje można znaleźć na stronie http://rom-o-matic.net. W MDK9.2 jest Etherboot w wersji 5.0.x. Po wejściu na wcześniej wymienioną stronę wybieramy link 5.0.11 a następnie odnajdujemy napis “PCI IDs for available NICs are documented here”. Klikamy słówko “here”. 3 Konfigurowanie terminali do pracy z serwerem terminali Windows UWAGA Opis poniższy oparty jest na dwóch Mandrakach, którymi administruję. Są to jednak systemy, które nie jedno już przeszły. Należy więc pamiętać iż w Waszych systemach mogą wystąpić drobne różnice w stosunku do tego co jest opisane w tym rozdziale. 5 3.1 Nazwy plików stosowane przez drakTermServ DrakTermServ tworzy pliki konfiguracyjne w formie zwykła_nazwa$$CLIENT$$ lub, w przypadku jeżeli konfigurowaliśmy określonego klienta by miał jakiś adres, zwykła_nazwa$$IP=IP_klienta$$ np.: inittab$$CLIENT$$ XF86Config$$IP=10.7.43.40$$ Modyfikacje plików zakończonych $$CLIENT$$ obejmują wszystkie terminale, zaś tych zakończonych na $$IP=10.7.43.40$$ obejmują tylko tylko ten jeden terminal. Jeżeli dla danego terminala istnieje plik dedykowany, to z tego pliku ów terminal skorzysta zamiast korzystać z wersji $$CLIENT$$.. 3.2 Ustawienie rdesktop jako menadżera pulpitu Rdesktop jest linuxowym klientem serwera terminali Windows. W celu automatyczeno pojawiania się okna logowania Windows na terminalach musimy skonfigurować automatyczne logowanie do XWindowsa na Linuxie z rdesktopem jako menadżerem pulpitu. Jako Menadżer Wyświetlania powinniśmy mieć wybrany MdkKDM lub KDM. KDM wymaga zainstalowania pakietu kdebase-kdm. Wyboru dokonujemy w “Centrum Sterowania -> System -> Wybór menadżera wyświetlania”. Centrum sterowania można wywołać pisząc mcc lub wybierając K->Konfiguracja->Konfiguracja komputera. W katalogu /usr/X11R6/bin tworzymy plik o nazwie startrdesktop: if [ `uname -n` != "poczta.sb.kr.mofnet.gov.pl" ] then for (( ; ; )) do sleep 5 /usr/bin/rdesktop -f -u "" -k pl 10.7.43.202 done fi /usr/bin/rdesktop -f -u "" -k pl 10.7.43.202 10.7.43.202 to adres naszego serwera terminali Windows. "poczta.sb.kr.mofnet.gov.pl" to nazwa naszego serwera terminali Linux. Rdesktop jest tu uruchamiany w trybie pełnoektranowym, bez nazwy użytkownika, z polską klawiaturą. 3.3 Konfigurowanie rdesktop jako menadżera pulpitu W katalogu domowym użytkownika “terminalowy” tworzymy plik z atrybutem wykonywalności o nazwie .desktop i zawartości: DESKTOP=rdesktop DISPLAYMANAGER=KDE Jeżeli pracowaliśmy w XWindow jako użytkownik “terminalowy” to powinniśmy zalogować się ostatnim razem do menadżera “rdesktop”. Można też po prostu usunąć plik /home/terminalowy/.wmrc oraz /home/terminalowy/.dmrc. 6 W MDK 9.2 w katalogu /etc/X11/wmsession.d tworzymy plik 01rdesktop, a dotychczasowemu, którego nazwa zaczynała się na 01KDE nadajemy pierwszy wolny nr np. 09KDE Wewnątrz plku 01rdesktop piszemy: NAME=rdesktop EXEC=/usr/X11R6/bin/startrdesktop DESC="rdesktop" SCRIPT: exec /usr/X11R6/bin/startrdesktop UWAGA!!! Inne katalogi, w których mogą być przechowywane pliki konfiguracyjne to /etc/X11/dm, /etc/X11/gdm lub /usr/share/apps/kdm/sessions (np. w MDK 10) w zależności od używanego Display Menagera, fantazji twórców naszej dystrybucji i tego co sami już nawojowaliśmy. W pliku /usr/share/config/kdm/kdmrc$$CLIENTS$$ odnajdujemy sekcję [X-:0-Core] i wpisujemy w niej następujące dwie linie: AutoLoginEnable=true AutoLoginUser=terminalowy W katalogu /etc/X11/xdm/ umieszczamy plik Xservers$$CLIENT$$ , w którym jest tylko jedna niewyhaszowana linijka: :0 local /bin/nice -n -10 /usr/X11R6/bin/X -deferglyphs 16 vt2 Dzięki temu XWindow będziemy mieli pod F2 zamiast F7. (deferglyphs – ilość KB przeznaczonych na cache fontów). 3.4 Dostosowywanie ustawień XWindow. Domyślna konfiguracja XWindow jest niezadowalająca. Można co prawda do modyfikacji tych plików użyć jakiś narzędzi (sam preferuję xf86cfg i edytory tekstu), jednak osobom nieobeznanym sugeruję raczej ominięcie problemu. Należy uruchomić program konfiguracyjny Mandrake np. pisząc w terminalu mcc i wybierając Sprzęt->XFdrake w MDK9.2. Za pomocą dostępnych tam kreatorów wybieramy i konfigurujemy kartę graficzną (korzystając ze sterowników XFree 4 ewentualnie XFree 3), następnie konfigurujemy rozdzielczość, typ monitora itd. Na końcu zapisujemy. Nie wychodzimy z XWindow. W katalogu /etc/X11 znajdujemy pliki: XF86Config-4 (dla XFree 4) lub XF86Config (dla XFree 3) i zapisujemy je z dopiskiem $$CLIENT$$ czyli XF86Config-4$$CLIENT$$ oraz XF86Config$$CLIENT$$ (zależnie od używanej wersji XFree). Jeżeli mamy jakiś komputer o specyficznych wymaganiach to zapisujemy te pliki z dopiskiem $$IP=adres_IP$$ np. XF86Config4$$IP=10.7.43.40$$ oraz XF86Config$$IP=10.7.43.40$$. Na koniec przywracamy kreatorem normalną konfigurację. Ewentualnie można rozpocząć od skopiowania plików XF86Config-4 oraz XF86Config i po skończeniu przywracamy je z kopii. Teoretycznie nie jest to konieczne ale stare karty S3 (w kilku odmianach), które u mnie stanowią absolutną większość nie chciały poprawnie pracować z domyślnymi ustawieniami XFree 4.x, do tego znaczna część miała monitory VGA. Ponadto komputer o adresie 10.7.43.40 miał kartę ATI Rage 3D i jako jedyny korzystał z myszki PS2. 7 Następnym problemem jest myszka. W katalogu /etc/sysconfig powinien być plik mouse$$CLIENT$$ o zawartości: MOUSETYPE=Microsoft XMOUSETYPE=Microsoft FULLNAME="serial|Generic 2 Button Mouse" XEMU3=yes WHEEL=no device=ttyS0 Dzięki temu większość naszych komputerów będzie korzystać ze zwykłej myszki. Jeżeli jaki komputer ma mysz PS2 możemy utworzyć dla niego plik np. mouse$$IP=10.7.43.40$$ MOUSETYPE=ps/2 XMOUSETYPE=PS/2 FULLNAME="PS/2|Standard" XEMU3=yes WHEEL=no device=psaux Jeżeli nie wiemy jak powinna wyglądać zawartość pliku mouse* dla jakiejś stacji, można wykorzystać mcc by wygenerować odpowiedni plik i skopiować go pod odpowiednią nazwą, podobnie jak to robiliśmy dla XFree. 3.5 Zmiana wywołania KDM Na koniec, choć nie jest to konieczne, zmieniamy jeszcze jeden drobiazg. W pliku /etc/inittab wstawiamy znak # na początku linijki: x:5:respawn:/etc/X11/prefdm następnie w katalogu /etc/rc.d/rc5.d$$CLIENT$$ tworzymy link symboliczny o nazwie S95dm do pliku /etc/rc.d/init.d/dm ln -s /etc/rc.d/init.d/dm /etc/rc.d/rc5.d$$CLIENT$$/S95dm 4. Konfiguracja POLTAXu Konfiguracja Poltaxu w oparciu o telnet dostarcza dwóch trudności. Pierwsza to konieczność redefinicji części klawiszy, drugą są znikające polskie literki po zalogowaniu do Poltaxu. 4.1 Źródłem problemu ze znikającymi polskimi literkami jest fakt że POLTAX wysyła przez telnet “\033(B”. Podczas przesyłania wyników pracy programów na ekran konsoli dokonywanych jest kilka odwzorowań. Ciąg “\033(B” powoduje włączenie domyślnego mapowania fontów. Dlatego potrzebujemy fontów iso01 które wyglądają jak polskie. W internecie najpopularniejsze są iso02grf, zaś w Knoppixie są dostępne ładniejsze iso02g. W Mandrake fonty konsoli są przechowywane w /usr/lib/kbd/consolefonts. Tu należy umieścić ściągnięty z Internetu lub knoppixa plik iso02g.psf lub iso02grf.psf. Pamiętajmy o ustawieniu odpowiednich praw dostępu do pliku, by wszyscy mogli ten plik czytać. chmod 622 iso02g.psf 8 4.2 Drugim problemem jest fakt, że do prawidłowej pracy POLTAXu potrzeba zmienić funkcjonalność niektórych klawiszy i ich kombinacji. Na szczęście w Linuxie jest to bardzo proste. Mamy dwie możliwości modyfikowania tablicy translacji. Pierwsza polega na zrzuceniu do pliku całej używanej tablicy za pomocą dumpkeys by móc ja zmienić, druga metoda polega na załadowaniu zmian tylko dla niektórych klawiszy i ich kombinacji. Za pomocą loadkeys pl ładujemy polską tablicę translacji klawiszy. Poleceniem dumpkeys > klawisze zrzucamy ją do pliku. Teraz wystarczy tą tablicę tylko zmodyfikować i za pomocą loadkeys klawisze wczytać z powrotem. Pierwsze pięc kolumn to: 0 - normal 1 - shift 2 - altgr 3 - shift + altgr 4 - control 5 - shift + control Jeżeli modyfikujemy całą tablicę, to przede wszystkim w powstałym pliku klawisze należy w pierwszej linijce zmienić: keymaps 0-4,6,8-9,12 na keymaps 0-6,8-9,12. Jest to potrzebne by móc zredefiniować kombinacje klawiszy z CTRL+Shift. Dokładniejszy opis znajdziecie w man keymaps. Zamiast tego można wykorzystać druga metodę i zmienić tylko niektóre wartości w tablicy. Ta metoda zostanie wykorzystana dalej. Stringi przypisane klawiszom i ich kombinacjom mogą składać się ze znaków i/lub cyfr w kodzie ósemkowym. Najpierw za pomocą polecenia showkey musimy poznań keycode interesującego nas klawisza. Klawisz F6 ma keycode 64. Przykładowy fragment pliku klawisze: keycode 64 = F6 control keycode alt keycode Shift keycode control Shift keycode 64 = F30 64 = F42 64 = F52 64 = F60 Łańcuchy przypisywane klawiszom nazywane są Fn gdzie n to jakaś liczba. W widocznym powyżej przykładzie naciśnięcie Ctrl+F6 wysyła łańcuch F30 a naciśnięcie klawisza F6 wysyła łańcuch o takiej samej nazwie F6. Przypisywanie łańcuchom wartości wygląda następująco: string F6 = "Ala ma kota" string F30 = "\033\033\133\062\071\176" Jak widać na powyższym przykładzie gdy chcemy wysyłać cyfry w kodzie ósemkowym musimy poprzedzać je znakiem \. W jednym łańcuchu mogą być i litery i cyfry w kodzie ósemkowym. Stringi te zapisujemy w pliku klawisze. Przygotowany w ten sposób plik klawisze umieszczamy w /etc. Jeżeli znamy string który ma zostać wysłany w kodzie szesnastkowym, to możemy uruchomić Edytor Binarny z KDE (khexedit). Z menu Narzędzia wybrać Skonwertuj aby uzyskać jego odpowiednik w kodzie ósemkowym.. 4.3 Ponieważ nie jesteśmy zainteresowani tym aby najpierw trzeba było logować się do linuxa a dopiero potem do POLTAXu musimy przygotować sobie skrypt który zostanie uruchomiony na vt1 zamiast pokazywać standardowe “login:” 9 W inittab$$CLIENT$$ na serwerze terminali należy umieścić poniższy tekst w miejsce zwykłego wywołania mingetty: 1:2345:respawn:/sbin/mingetty tty3 2:2345:respawn:/bin/bash -login /etc/POLTAX >/dev/tty1 2>&1 </dev/tty1 Spowoduje to że na vt3 będziemy mieli zwykłego Linuxa a na vt1 POLTAX. Na zwykłej Linuxowej stacji roboczej wpisujemy, by mieć dostęp do poltaxu pod F6 wpisujemy w inittab: 6:2345:respawn:/bin/bash -login /etc/POLTAX >/dev/tty6 2>&1 </dev/tty6 w miejsce 6:2345:respawn:/sbin/mingetty tty6 Należy jeszcze zmienić akcję podejmowaną po naciśnięciu alt+ctrl+del ca::ctrlaltdel:/sbin/shutdown -t3 -h now Skrypt POLTAX wygląda następująco: #!/bin/bash clear echo "Nacisnij ENTER" read tset -s vt320 setfont iso02g.psf -m iso01 loadkeys pl loadkeys /etc/klawisze clear su - nobody -c "telnet -8 X.X.X.X" loadkeys -d sleep 5 exit 0 5 Kilka spraw na zakończenie. 5.1 Ustawienie miejsca przechowywania dokumentów. Warto ustawić wszystko tak by niezależnie od tego czy stare PC jest uruchomione jako terminal czy też “normalnie” użytkownik zawsze miał dostęp do swoich dokumentów. Wystarczy 1 Zamapować użytkownikowi ten sam katalog udostępniony w sieci jako dysk G: 2 W tym katalogu utworzyć podkatalog do którego tylko ten urzytkownik ma dostęp. 3. Zarówno na serwerze terminali jak i w “normalnie” uruchomionym PC ustawić by służył on do przechowywania dokumentów użytkownika. Dzięki temu w przypadku awarii któregoś z serwerów wystarczy by użytkownik wyjął dyskietkę i zrestartował komputer by móc pracować “normalnie”. 10 5.2 Zmiana serwera DHCP. Najprawdopodobniej w Waszej sieci jest serwer DHCP na Windowsie. Należy pamiętać że dwa serwery DHCP w tej samej sieci nie mogą mieć w tym samym czasie pokrywających się zakresów. Należy więc skrócić czas dzierżawy do 8 godzin na serwerze Windows i ustawić zakres na np. X.X.X.130-X.X.X.199. Po uzyskaniu przez wszystkie hosty adresów z tego przedziału uruchamiamy DHCP na Linuxie z przedziałem X.X.X.30-X.X.X.129. Potem można wyłączyć DHCP na Windowsie a następnego dnia przestawić zakres Linuxowego DHCP na X.X.X.30X.X.X.199 5.3 Problemy przy starcie Jednym z problemów może być fakt że serwer nie potrafi zamienić nazwy terminala na jego IP. Aby rozwiązać ten problem należy dokonać odpowiednich wpisów do pliku hosts albo pozwolić naszemu dhcp aktualizować bazę DNS. 5.4 Uwaga dla MDK 10 W przypadku Mandrake 10.0 musimy w pliku /etc/X11/Xsession zmienić fragment: if type -p "$DESKTOP" > /dev/null; then exec $SSH_AGENT /bin/sh -c "$DESKTOP" else exec $SSH_AGENT /bin/sh -c "$(/usr/sbin/chksession -x=$DESKTOP)" fi ;; na: # # # # if type -p "$DESKTOP" > /dev/null; then exec $SSH_AGENT /bin/sh -c "$DESKTOP" else exec $SSH_AGENT /bin/sh -c "$(/usr/sbin/chksession -x=$DESKTOP)" fi ;; Spowodowane jest to tym że nazwaliśmy nasze wywołanie rdesktopa “rdesktop”. Zamiast wywołać nasz skrypt startrdesktop zostałby uruchomiony bezpośrednio program rdesktop. 11 Załącznik 1 Plik klawisze Fragmenty pliku napisanego na podstawie załącznika do umowy dotyczącej zakupu terminali Sherwood. keycode 14 = F61 shift keycode 59 = F1 control alt keycode 60 = F2 control alt keycode 61 = F3 control alt Shift control (...) keycode 111 = F77 keycode 15 = F66 keycode 59 = F25 keycode 59 = F37 keycode 60 = F26 keycode 60 = F38 keycode 61 = F27 keycode 61 = F39 keycode 61 = F49 Shift keycode 61 = F57 (...) string F1 = "\033\117\120" string F2 = "\033\117\121" string F3 = "\033\117\122" string F4 = "\033\117\123" string F5 = "\033\133\064\176" string F6 = "\033[17~" string F7 = "\033[18~" string F8 = "\033[19~" string F9 = "\033[20~" string F10 = "\033[21~" string F11 = "\033[23~" string F12 = "\033[24~" string F37 = "\033\033\117\120" string F38 = "\033\033\117\121" string F39 = "\033\033\117\122" (...) string F25 = "\033\033\033\117\120" string F26 = "\033\033\033\117\121" string F27 = "\033\033\133\062\065\176" (...) string F49 = "\033\133\062\065\176" (...) string F57 = "\033\033\033\133\062\065\176" (...) string F61 = "\010" (...) string F66 = "\033\040\040\040\040\040\040\040\040" (...) string F77 = "\177" 12