Co w lesie piszczy

Pozazdrościłem żonie i córce atrakcji na świeżym powietrzu
i wybrałem się na wycieczkę do lasu. Już po drodze mogłem podziwiać piękno przyrody —
ukwiecone łąki i pobocza wyglądały naprawdę malowniczo. Widać burza dobrze zrobiła cykoriom,
dziewannom i innym roślinkom. Zresztą, burza była tam tuż przede mną. Co prawda, w Gliwicach sucho,
ale po drodze bardzo mokro, a jeszcze miejscami pokropiło.

W lesie już nie padało, ale było bardzo mokro i trochę parno, ale o niebo lepiej niż wczoraj
w mieście. Grzybów brak, ale też nie spodziewałem się udanych zbiorów. Jednak, jeśli pogoda (ciepło
i mokro) się utrzyma, to jest szansa na wysyp grzybów w przyszył tygodniu. Ale pewnie nie będę miał
już wtedy czasu albo chęci, żeby to sprawdzić.

W każdym razie moje dziewczyny moczyły nogi w morzu, a ja w leśnej trawie. Mam mokre spodnie,
buty i skarpety, ale jestem zadowolony z wycieczki. Teraz pójdę na miasto na jakiś obiad —
w lodówce skończyły się jajka, a więc i moje kulinarne możliwoście ;-).

PLD RescueCD i PXE

Po pierwsze trzeba mieć serwer DHCP (ten z pakietu dhcp,
zresztą chyba nie mamy innego w PLD) i TFTP. Uwaga serwer z paczki
tftpd nie chciał działać z syslinuxem, więc należy
zainstalować tftpd-hpa. Oprócz tego trzeba mieć bootloadera
umiejącego ładować system przez sieć. W moim przypadku był to
syslinux. No i potrzebna jest płytka RescueCD, z obrazem systemu do
uruchomienia. Trzeba użyć oficjalnego obrazu (datowanego
2004-07-18) dostępnego ze strony RescueCD. Nowsza wersja
(beta z 2005-06-19) się co prawda bootuje, ale nie można się
do niej zalogować.

Montujemy płytkę RescueCD i kopiujemy z niej pliki vmlinuz i rescue.sqf do
/var/lib/tftp. Dla pełniejszej funkcjonalności można tez skopiować
boot.msg, help.msg i memtest. Część plików jest w katalogu
głównym płytki, część w boot/isolinux. Z katalogu /usr/lib/syslinux
kopiujemy plik pxelinux.0 (część syslinux służąca do bootowania przez sieć), też do
/var/lib/tftp. Pozostaje przygotować plik konfiguracyjny dla pxelinux. W tym celu
tworzymy katalog /var/lib/tftp/pxelinux.cfg, a w nim plik default (nazwą
pliku może też być np. adres MAC maszyny którą będziemy bootować, szczegóły w dokumentacji
syslinuxa). Plik ten tworzony jest na podstawie isolinux.cfg
z RescueCD. U mnie wygląda on tak (i to powinno działać z tą wersją RescueCD u każdego):

serial 0
prompt 1
timeout 99
default pxe
label pxe
 kernel vmlinuz
 append initrd=/rescue.sqf init=/linuxrc root=/dev/ram0  ramdisk_size=54000  console=tty0 console=ttyS0,9600n81
 ipappend 1
label mem
  kernel memtest

Ta konfiguracja jest oczywiście przygotowana do użycia z konsolą szeregową. Jak ktoś chce standardową konsolę VGA,
to powinien wywalić serial 0 i console=tty0 console=ttyS0,9600n81.

Gdy już mamy przygotowane pliki dla startowanej maszyny, musimy je jej wskazać. Robi się to przy pomocy
serwera DHCP, jednocześnie przydzielając adres IP. W moim przypadku załatwiał to poniższy wpis w /etc/dhcpd.conf,
w odpowiedniej deklaracji podsieci:

host pxeinstall {
	hardware ethernet 00:40:63:c3:99:a9;
	fixed-address 10.253.0.99;
	filename "pxelinux.0";
}

Adresy MAC i IP należy oczywiście dostosować do swoich potrzeb. Nazwa pliku jest względna do
katalogu /var/lib/ftp i może być właściwie dowolna. Większość wspomnianych wyżej
ścieżek w /var/lib/tftp jest konfigurowalna. Wyjątkiem jest katalog
pxelinux.cfg.

To właściwie tyle konfiguracji. Należy jeszcze się upewnić, że serwery TFTP i DHCP działają
i używają właściwej konfiguracji (dhcpd trzeba zrestartować), włączyć na maszynie do
wystartowania bootowanie przez PXE i uruchomić ją. Po chwili powinna dostać adres IP, pobrać parę
plików po TFTP i uruchomić system.

Selwelek ruszył

Rano moje dziewczyny wyjechały na wakacje, więc ja zostałem słomianym wdowcem. Wdowieństwo
zacząłem od sprzątania — skoro mam robić bajzel, to muszę mieć gdzie. Gdy mniej-więcej
posprzątałem mieszkanie, to zjadłem śniadanie i poszedłem po zakupy. Jeszcze mi paru drobiazgów
brakowało do dokończenia selwelka. Gorąco było
— w mieście byłem właściwie w samo południe. Kupiłem co chciałem, a nawet coś więcej
i wróciłem do domu, robić bajzel.

Bajzel był naprawdę niezły, ale po paru godzinach udało mi się złożyć serwerek do końca.
Podłączyłem i nawet ruszył. Pojawił się problem: jak zainstalować na tym system nie mając
ani stacji dyskietek ani CDROMu. Przekładać dysku mi się nie chciało. Właściwie, to nie chciało mi
się nawet przepinać (tymczasowo) monitora i klawiatury, ale jednak ta maszynka za kilkaset złotych
to nie Sun Fire za ponad dziesięć tysięcy i nie ma ułatwiaczy typu Sevice Processor, czy BIOS na
konsoli szeregowej. Postanowiłem przez sieć zabootować system z którego zainstaluje sobie PLD. Do
setupu BIOSu musiałem więc wejść chociażby po to, aby włączyć bootowanie z sieci. Niestety, musiałem
monitor podłączać jeszcze kilka razy potem, żeby zobaczyć co się dzieje, jak nie chciało się
bootować.

Pogooglałem za PXE PLD i dowiedziałem się, że RescueCD obsługuje PXE. I nic więcej,
żadnej informacji jak to RescueCD z tego PXE wystartować. Poszukałem trochę ogólniej i znalazłem
jakieś HOWTO do instalacji Debiana przez PXE. Zaczynając od tego artykułu, używając obrazów RescueCD
i LiveCD, metodą prób i błędów i z lekką pomocą autora RescueCD, w końcu udało mi się zabootować
system i rozpocząć instalację. Dalej było z górki, więc opiszę dokładniej (w kolejnym wpisie) tylko
jak wygląda bootowanie RescueCD przez sieć.

Paczka

Przyszła dzisiaj do mnie paczka. Czekałem na dwie przesyłki, ale gdy
zobaczyłem od kogo, to wiedziałem już która. Ucieszyłem się z paczki,
a że byłem w domu z Krysią, to dziecko się zainteresowało.

— Co jest w ślodku?
— Nasz serwerek.
— Mamy selwelek i taty selwelek?
— Twój właściwie też, będą tam twoje zdjęcia.

Trochę trwało zanim dostałem się do środka tej porządnie zapakowanej paczki,
zacząłem wyciągać zawartość…

— Co to jest?
— Płyta główna.
— A co to jest?
— Zasilacz.
— A co to jest?
— Dysk.
(na tym zawartość paczki się kończyła)
— A gdzie selwelek?
— To wszystko to będzie nasz serwerek.
— A będą na nim moje zdjęcia?

Ciekawe jak sobie Krysia wyobraża te swoje zdjęcia na naszym serwerku… boję się, że
może być rozczarowana. Ale jak to działa będzie się mogła przekonać pewnie dopiero po powrocie
z wczasów, a do tego czasu może zapomni czego się spodziewała.

Teraz pozostaje czekać na przesyłkę z pamięcią, zmontować wszystko do kupy i uruchomić.

Naukowe flirtowanie

Trafiłem dzisiaj na ciekawy artykuł. SIRC Guide to
Flirting
. Artykuł, jak sam tytuł wskazuje, o flirtowaniu, napisany
przez brytyjskich naukowców. Strasznie długie, ale dość interesujące (dotarłem
do końca :-)). Miejscami powala szczegółowością (odległości
w stopach, czasy w sekundach, czy ułamkach sekund), miejscami wydaje się
banalne, ale zawiera wiele ciekawych spostrzeżeń dotyczących kontaktów
międzyludzkich. Miejscami jest nawet zabawne. Dobry tekst, jak ktoś chce
podszlifować język i to angielski, a nie amerykański.

Wreszcie jest nowy transport GG

Od jakiegoś czasu do źródeł transportu GG włączona jest biblioteka libgadu
(na dostępnych pakietach z libgadu nie można polegać). W libgadu ostatnio
znaleziono poważne błędy, więc trzeba było ją uaktualnić. Przy tej okazji
zajrzałem do kodu transportu GG… i wreszcie się porządnie za niego zabrałem,
co w rezultacie dało dzisiejsze
wydanie wersji 2.2.0
.

Od wersji 2.1.0 zmieniło się wiele. Większość jeszcze w lutym. Najważniejsze
zmiany to:

  • Wspomniane już włączenie libgadu do źródeł transportu.
  • Ignorowanie wybranych numerków.
  • Ustawianie osobnych statusów dla GG, można też ustawić specjalny status
    używany podczas niedostępności i niewidzialności.
  • Wywalenie całkiem zmiany haseł. Stary kod i tak nie działał z nowym
    protokołem (wymagającym czytania kodów z obrazków), a nowy protokół byłby
    dość niepraktyczny w implementacji.
  • Kupa różnych poprawek.
  • I chyba najważniejsze: obsługa subskrypcji obecności per-kontakt. Teraz
    powinny działać listy prywatności, ustawianie online/offline dla konkretnych użytkowników,
    jednokierunkowe subskrypcje (ja go widzę, a on mnie nie) itp.

Z ostatnim punktem związana jest pewna niedogodność: po upgrade’zie
użytkownicy będą musieli potwierdzić autoryzację dla każdego swojego
kontaktu z GG. To może być bardzo dużo klikania. Użytkownicy niektórych
serwerów mają już to za sobą, więc dobrze wiedzą o co chodzi.

Z poprawek wspomnieć mogę np. rezygnację z używania
GIOChannel
do czegoś, do czego się zupełnie nie nadają (śledzenie aktywności na sockecie obsługiwanym
przez coś innego niż GLib), czy wywalenie zupełnie niepotrzebnego (a pełnego
błędów) buforowania danych zapisywanych do strumienia XMPP. Ta druga zmiana
podobno spowodowała znacznie zmniejszenie obciążenia w dużych (tysiące zarejestrowanych użytkowników)
instalacjach transportu. A to buforowanie miało niby być optymalizacją… Poza
tym usunąłem ileś memleaków i innych błędów wykrytych przez Valgrinda.

Wersja
z wczorajszego wieczora już podobno całkiem stabilnie działała, a ja mam
nadzieję, że dzisiaj nie tylko poprawiłem kilka kolejnych błędów, ale i nie
wprowadziłem żadnych nowych. Jednak, jak znam życie, to pewnie za chwilę
dostanę parę bugreportów dotyczących jakiś nowych (a może i starych)
i strasznie głupich błędów. Jeśli tak, to postaram się szybko wydać poprawioną
wersję, jeśli nie, to pewnie kolejne wydanie będzie za jakiś rok albo i później.

Geek kontra zderzak

Dzisiaj znowu dwa razy (raz pod przychodnią, raz pod dworcem PKP)
zahaczyłem zderzakiem o krawężnik. Ten drugi raz to był akurat o ten jeden
raz za dużo i kawał zderzaka mi się odłamał. Nie mógł tak wisieć (to już
będzie zagadka dla mechanika — czy da się to jeszcze poskładać), więc
trzeba było coś z tym zrobić. Ale co to dla mnie? ;-) Wyciągnąłem
z torby zestaw naprawczy, czyli metrowy patchcord zakończony wtykami RJ-45
(chyba nie krosowany) i przywiązałem to jakoś tak, żeby się trzymało. Jutro
tak jeszcze pojadę do pracy, a po południu do mechanika, niech mi przynajmniej
powie czy i co będzie trzeba kupić.

Nowa zabawka w pracy

Gdzieś w okolicach marca/kwietnia stwierdziliśmy, że jedna z naszych maszyn
przestaje się wyrabiać i jak najszybciej trzebaby ją wymienić na mocniejszą.
Stara maszyna ma 2 Athlony MP 1800+, więc było wiadomo, że żadna
jednoprocesorowa maszyna nie starczy. Dodatkowo potrzebne było coś, co nam się
do szafy zmieści. Czyli maksimum 4U i 68cm głębokości. Drugi warunek okazał się
praktycznie nie do spełnienia dla nowoczesnych maszyn dwuprocesorowych, więc
szafa została powiększona o dupkę, a poszukiwania były kontynuowane po
złagodzeniu wymagań. Od początku chciałem coś z procesorami AMD, ale nic
ciekawego (o odpowiedniej mocy i nie za drogiego) u typowych producentów
serwerowych PeCetów (a więc: IBM, HP (dawniej Compaq) i Dell) nie znalazłem.
W końcu mi wyszło, że chcę IBM x336.

Wybór ten został wstępnie zaakceptowany przez szefostwo, bo cena
podstawowego zestawu, mimo że duża, była jeszcze znośna. Jednak gdy tylko
szef dowiedział ile kosztować to będzie po dokupieniu kolejnego procka i RAMu,
to propozycja upadła. Już miałem się zastanawiać nad jakimś składakiem, lub
po prostu dużo słabszą maszyną, gdy na newsach przeczytałem o Sun Fire v20z
z Opteronami. Że ja wcześniej nie wpadłem na to, żeby na strony Suna zajrzeć.
Udało się nawet jakoś znaleźć dystrybutora w Polsce (strony WWW Suna nie
ułatwiają znalezienia większości potrzebnych informacji). Dystrybutor za serwer
z wszystkim co potrzebujemy (2 procki, 2GB ram, dysk SCSI) zaproponował cenę
mniejszą niż ten wyjściowy IBM z jednym prockiem i 1GB ram (i dwoma
dyskami, których nie potrzebujemy). Niestety, okazało się, że akurat pieniędzy
nie ma… przez jakiś czas słyszałem może w przyszłym tygodniu, aż
w końcu zamówienie poszło i w ostatni piątek serwer do nas dotarł.

Już po przejrzeniu instrukcji (właściwie tylko ulotki, bo instukcje były na
płytce) dowiedziałem się, że ten serwer oprócz platformy z dwoma
Opteronami itd. ma jeszcze Service Processor, czyli Embeded PowerPC
z Embeded Linuksem, który kontroluje pracę całej maszyny. Maszyna ma więc
4 porty Ethernet — dwa gigabitowe z platformy i dwa 10/100 (właściwie
jeden z dwuportowym HUBem) z SP. Gdy serwer jest wyłączony, to SP pracuje
i można się na niego przez SSH zalogować i np. właczyć serwer. Oprócz tego cały
BIOS można obsługiwać przez port szeregowy. Tu na prawdę nie było sensu
podłączać monitora i klawiatury do serwera, żeby zainstalować system. Ja
zainstalowałem PLD z płytki PLD Rescue (wersja AMD64) używając konsoli
szeregowej. Ale mógłbym to nawet zrobić przez SSH posiłkując się SP (gdy
instalowałem PLD jeszcze SP nie miałem opanowanego ani skonfigurowanego).
Wszelkie eksperymenty z serwerem są bardzo proste — będąc fizycznie
zdala od maszyny można ją sobie włączać i wyłączać do woli, a konfigurację BIOSu
i systemu operacyjnego przeprowadzać przez konsolę szeregową (w razie potrzeby
tunelowaną po SSH).

SP pozwala też przeprowadzać pełne testy diagnostyczne
maszyny. Zresztą, przy tych testach dzisiaj wyszły dwie rzeczy. Pierwsza to to,
że większość testów nie chciała działać. Wywalały się one z komunikatem Unable to load module, a w jednym przypadku Module
has disappeared
. Okazało się, że to dlatego, że SP miało firmware w wersji
2.1.0.16, a pliki pomocnicze z płytki, udostępnione mu przez NFS, były dla
wersji 2.1.0.8. Ściągnąłem z sieci firmware i pliki pomocnicze w wersji 2.2.0.18
i problem zniknął. Przy okazji zrobiłem upgrade BIOSu (wszystko zdalnie). Drugi
problem, to nie działający dysk. Dysk który przyszedł z serwerem albo nie był
wykrywany przez BIOS kontrolera, albo zaraz potem odmawiał współpracy. Nie
zauważyłem tego od razu, bo system instalowałem na starszym, mniejszym dysku, bo
73GB w tej maszynie nie są nam potrzebne. Ale skoro już dysk przyszedł, to
powinien jednak działać. No cóż… sprawdzimy jak działa serwis Suna. IBM
ostatnio nie wypadł najlepiej.

Chyba znowu będą mnie kroić…

Po powrocie z pracy w łazience zaobserwowałem coś interesującego. Mam wyraźny
wzgórek łonowy ;-)… ej, coś tu nie gra… tylko z jednej
strony… raczej mi się to nie podoba. Poprosiłem żonę o opinię. Obadała
i stwierdziła do lekarza!. No to zadzwoniłem, umówiłem się, wziąłem
prysznic i pojechałem.

Lekarzowi powiedziałem, że zrobiła mi się taka buła nad lewym
jądrem
. Wypytał, od kiedy to mam, czy mnie to boli itd. W końcu przyszedł
czas na zdjęcie majtek i pokazanie problemu. Lekarz obmacał bułę i ze
zdziwieniem stwierdził to wygląda na przepuklinę. Później spytał co to
za praca po której mi się to pojawiło. Normalna, praca informatyka.
Dzisiaj już zupełnie. Siedziałem osiem godzin na tyłku i bawiłem się nowym
serwerem. Co prawda, trzeba było coś w serwerowni poprzestawiać, ale do tego
oddelegowałem kolegów (fajnie czasem być kierownikiem działu
;-)). W każdym razie lekarz stwierdził przepuklinę i dał mi
skierowanie do chirurga. Zobaczymy co powie chirurg…

Z licencji…

Oto co znalazłem w licencji (nawet niespecjalnie długiej i wymyślnej) do
firmware i sterowników dla serwera Sun Fire v20z:

You acknowledge that Software is not designed, licensed or intended for use in
the design, construction, operation or maintenance of any nuclear facility.

Na tą licencję trzeba się zgodzić, klikając na Accept aby ściągnąć
firmware i sterowniki. Żeby było śmieszniej wstęp do tej licencji mówi, że należy ją zaakceptować przed otworzeniem
opakowania z oprogramowaniem którego dotyczy. A samo oprogramowanie jest w większości na GPL. Na szczęście to akurat
ta licencja na ściąganie uwzględnia. Ale już sam do końca nie wiem, czy jak ściągnę od nich to oprogramowanie
(GPL) to mogę przy jego użyciu budować bombę atomową, czy nie… no i jak otworzyć to opakowanie…;-)