Co można zrobić z Wyse 9150SE: Debian Live

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
  • uptime
  • 13:50:01 up 9 days, 19:35,  1 user,  load average: 1.23, 1.57, 0.95
  • free -m
  •              total       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 -h
  • aufs                  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/null
  • 859307+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ę.

Następny wpis
Zostaw komentarz

Komentarze: 3

  1. Ja 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.

    Odpowiedz
  2. Krzys

     /  6 marca 2012

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

    Odpowiedz

    Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

    *

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>