Po pierwszej, blisko 9 godzinnej próbie: o kant dupy rozbić. Po 3 tygodniach przerwy, bolesnej nauce cierpliwości, znienawidzeniu Wyse, thinclientów, Debiana i prędkości pendrive’ów: da się sporo. Oczywiście nie mam co narzekać – odkupiłem sprzęt za małą kwotę i może nie jest to wymarzony HP Compaq T5520, ale lepsza taka zabawka, niż żadna.
Technikalia
W całkiem schludnej obudowie (zdjęć nie będzie, kupcie mi aparat to zrobię) o szerokości 4cm (ale artysta miał wenę i z podstawką będzie 10cm, oczywiście nic nie stoi na przeszkodzie, by ją wymontować), długości 16cm i wysokości 21cm zmieściły się następujące podzespoły: procesor AMD Geode GX2 taktowany zegarem 400Mhz, 256MB ramu, 256MB pamięci wbudowanej (do której za cholerę nie mogę się dostać) oraz karta dźwiękowa. Łatwo więc się domyślić, że sprzęt nie jest demonem szybkości.
Debian
Konieczność uruchomienia systemu operacyjnego z pendrive bardzo skutecznie ograniczyła liczbę dystrybucji do rozpatrzenia: w efekcie został Debian i Alpine. Alpine wydaje się o wiele ciekawsze; skompilowane za pomocą uClibc powinno działać szybciej. Działało szybciej do drugiego uruchomienia, potem wcale. Dałem więc szansę Debian Live.
Przed pierwszym uruchomieniem
Po pobraniu odpowiedniego obrazu .img i przerzuceniu go za pomocą dd na pendrive, jest kilka rzeczy, które warto zrobić.
Domyślnie Debian Live działa jak każde LiveCD – nasze zmiany nie są zapisywane. Dowolnym programem do partycjonowania, na pozostałym wolnym miejscu, należy utworzyć partycję o etykiecie live-rw. Pozostaje jeszcze edycja dwóch plików na partycji z Debianem: /syslinux/live.cfg oraz /syslinux/syslinux.cfg. W pierwszym z nich należy dodać do linii z initrd wybranego jądra jedno słowo: persistent (zainteresowanym polecam słownik angielsko-polski). W drugim, najlepiej dla własnej wygody, należy zmodyfikować zmienną timeout. Inaczej SYSLINUX będzie pokornie czekał na zatwierdzenie wyboru kernela, z którego ma skorzystać. Et voilà!
Jak to działa
Zasady działania są zabójczo proste – zmiany dokonane podczas działania systemu są zapisywane na partycji oznaczonej etykietą live-rw. Przy kolejnym uruchomieniu systemu, zmodyfikowane pliki zastępują te oryginalne na partycji z systemem. Oczywiście, usunięty plik lub paczka znika całkiem.
Po uruchomieniu
Uruchamianie systemu trwa wieki i tyle samo w tym winy procesora, co pendrive’a. Nie pomyślałem zawczasu i kupiłem prawie-noname firmy Emtec, który osiąga żenujące prędkości. Trudno, może następnym razem wpadnę na taki genialny pomysł.
Jest kilka irytujących rzeczy, które dobrze poprawić.
Hasło roota
Domyślnie hasło roota nie jest ustawione – dostęp do tego konta możliwy jest tylko przez sudo: sudo su, potem nopasswd i gotowe.
Autologowanie użytkownika user
Domyślnie, na każdym tty jest ustawione autologowanie użytkownika user. Ze względów bezpieczeństwa najlepiej to wyłączyć. W tym celu w pliku /etc/inittab należy odnaleźć następujące linie:
1:2345:respawn:/bin/login -f user /dev/tty1 2>&1 2:23:respawn:/bin/login -f user /dev/tty2 2>&1 3:23:respawn:/bin/login -f user /dev/tty3 2>&1 4:23:respawn:/bin/login -f user /dev/tty4 2>&1 5:23:respawn:/bin/login -f user /dev/tty5 2>&1 6:23:respawn:/bin/login -f user /dev/tty6 2>&1
i zastąpić je agetty, dostępnym w systemie:
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
Od tego momentu będzie widoczny ekran logowania.
NOPASSWD i usuwanie użytkownika user z systemu
Skoro już jest swobodny dostęp do konta root, można pozbyć się domyślnego użytkownika z systemu. Poza wykonaniem userdel user, dobrze też się pozbyć linii odpowiadającej użytkownikowi w pliku /etc/sudoers, który edytuje się poleceniem visudo.
locale i hostname
Polonizacja systemu jest banalna. Można edytować plik /etc/locale.gen i zakomentować/odkomentować wybrane locale, a po zapisaniu go wygenerować je poleceniem locale-gen. Można również „wyklikać” wybrane języki w menu dpkg za pomocą dpkg-reconfigure locales. W swojej manii zwalniania miejsca na partycji systemowej pozbyłem się nieużywanych programem localepurge.
Ustawienie własnej nazwy hosta jest równie proste: struktura plików /etc/hostname i /etc/hosts jest wystarczająco czytelna, by ich nie opisywać.
Co jeszcze?
Poza oczywistościami typu instalacja serwera OpenSSH, polecam przejrzeć listę zainstalowanych paczek (dpkg -l|less). Jest sporo całkowicie zbędnych paczek, takich jak bind9, słowniki, czy dokumentacja. Zastąpiłem także domyślnego klienta DHCP (nie bijcie, nie pamiętam nazwy paczki) lżejszym udhcp. Agetty zastąpiłem także lżejszym mingetty. W /etc/apt/sources.list ustawiłem repozytoria contrib oraz non-free. W kwestii bazowego systemu to wszystko.
Statystyki
Garść statystyk dotyczących mniej lub bardziej wydajności systemu i thinclienta:
uname -a
Linux thinclient 2.6.32-5-486 #1 Mon Oct 3 03:34:28 UTC 2011 i586 GNU/Linux
uptime13:50:01 up 9 days, 19:35, 1 user, load average: 1.23, 1.57, 0.95
free -mtotal used free shared buffers cached Mem: 241 171 69 0 14 111 -/+ buffers/cache: 45 195 Swap: 0 0 0
ps_mem.py Private + Shared = RAM used Program
76.0 KiB + 27.5 KiB = 103.5 KiB mingetty
132.0 KiB + 12.0 KiB = 144.0 KiB udhcpc
128.0 KiB + 33.5 KiB = 161.5 KiB fcgiwrap
140.0 KiB + 31.0 KiB = 171.0 KiB atd
160.0 KiB + 47.0 KiB = 207.0 KiB init
292.0 KiB + 30.0 KiB = 322.0 KiB dbus-daemon
296.0 KiB + 74.0 KiB = 370.0 KiB cron
468.0 KiB + 400.0 KiB = 868.0 KiB udevd (3)
940.0 KiB + 81.0 KiB = 1.0 MiB rsyslogd
700.0 KiB + 345.5 KiB = 1.0 MiB screen (2)
2.0 MiB + 546.0 KiB = 2.5 MiB sshd (2)
1.6 MiB + 1.0 MiB = 2.6 MiB nginx (5)
2.4 MiB + 835.0 KiB = 3.2 MiB bash (2)
20.5 MiB + 5.2 MiB = 25.7 MiB php5-fpm (21)
---------------------------------
38.3 MiB
=================================
Private + Shared = RAM used Program df -haufs 3,5G 440M 2,9G 14% / tmpfs 121M 0 121M 0% /lib/init/rw udev 116M 104K 116M 1% /dev tmpfs 121M 4,0K 121M 1% /dev/shm /dev/sda1 286M 279M 7,6M 98% /live/image /dev/sda2 3,5G 440M 2,9G 14% /live/cow tmpfs 121M 0 121M 0% /live tmpfs 121M 0 121M 0% /tmp
dd if=/dev/sda of=/dev/null859307+0 przeczytanych recordów 859306+0 zapisanych recordów skopiowane 439964672 bajty (440 MB), 30,643 s, 14,4 MB/s
Podsumowanie
Nawiązując do pytania z tytułu wpisu – coś się da. Ciężko postawić na tym serwer WWW o dużym obciążeniu, bo 256MB ramu to za mało, by uciągnąć coś takiego. Poza małymi stronami, trzymam na tym serwer git z wyjściem na resztę Internetu, skromnego bota do tworzenia logów na kilku kanałach IRC i Transmission z WebUI do ściągania nowych dystrybucji Linuksa. ;) Nie jest to wiele, ale z pewnością potrzebuje mniej energii niż komputer stacjonarny. Jeżeli jednak masz możliwość zdobycia terminala HP, nie wahaj się i daruj sobie Wyse. Jeżeli nie – 9150SE jest sensownym wyborem za zwykle niską cenę.
michal_s
/ 2 listopada 2011Ja też walczyłem z nadciśnieniem spowodowanym zajebistiścią tego terminala :) Ale jak już zrobiłem wszystko, co opisałeś wyżej, to działał bez zająknięcia z wielotygodniowym uptimem.
Krzys
/ 6 marca 2012Mam ten terminal i od 2 lat pięknie śmiga pod linuxem. Jedna uwaga – warto poświęcić zawartość wbudowanej pamięci flash i umieścić tam /boot – znacznie przyspieszy to uruchomienie systemu.
Bartłomiej Piotrowski
/ 9 kwietnia 2012Mój problem polegał na tym, że za nic nie mogłem się do niej dobrać; system w ogóle nie zgłaszał jej istnienia, a wbudowany Windows odmawiał modyfikacji.