Zmagań z kartą TV ciąg dalszy…

Niby sytuacja beznadziejna, ale jeszcze się nie poddałem. Najpierw
spróbowałem odpalić system w 32-bitach. 32-bitowy chroot już miałem, więc
dorzuciłem tam kernela i parę innych pakiecików, skonfigurowałem gruba
i zabootowałem. Próba zgrania czegoś… i znowu, nie minęła minuta i kernel
płacze, że mu się filesystem popsuł… wrrr…

Kolejne podejście. Skompilowałem sobie własnego kernela (64-bity, skoro
nie widać różnicy), ale z wyłączonymi niektórymi podejrzanymi
ficzerami, jak np. CONFIG_PREEMPT. Reboot, próba zgrania czegoś… i znowu
oops.

Kolejne próby to wyłączanie wszelkich sterowników. Najgorzej było z USB,
ciągle coś mi ładowało moduły, nawet jak miały alias na „off” w modprobe.conf.
Przeniosłem gdzieś odpowiedni katalog z /lib/modules i się tego USB pozbyłem.
Dalej nic to nie dało.

Wszystko wskazywało na to, że programowe możliwości mi się wyczerpały,
więc zabrałem się za sprzęt. Wyciągnąłem nieużywaną kartę sieciową
i przestawiłem w slotach karty TV i SCSI. Start systemu, próba nagrywania…
i to samo.

Już właściwie postanowiłem, że wezmę tę kartę do pracy, sprawdzić ją na
płycie Intela, bo coś ten mój Asus A8N-E podejrzany jest… ale jeszcze
chciałem parę rzeczy sprawdzić…

I w końcu ruszyło. Nie wiem dokładnie co pomogło (dość mam rebootów, nie
będę sprawdzał), ale mogła to być jedna z dwóch rzeczy: albo options
bttv latency=248 gbuffers=32
w modprobe conf (wcześniej miałem
tylko latency=200, albo nic), albo przestawienie w BIOSie
synchronizacji zegara PCI (czy jakoś tak) z To CPU na 33.333.
W każdym razie teraz od ponad 1000 sekund idzie nagrywanie i nic się jeszcze
nie sypie. :-)

Update: chwilę po wysłaniu wpisu się jednak sypło :-(

Nowa zabawka

Kupiłem sobie nową zabawkę – kartę TV. Prawde mówiąc nie jest mi to
specjalnie potrzebne, ale chciałem się czymś nowym pobawić, a za kilkadziesiąt
złotych mogę zaszaleć. Karta to AverTV Studio Model 103, na bt878a.

Karta po włożeniu do kompa została automatycznie wykryta (został załadowany
odpowiedni sterownik), bez najmniejszego problemu. Nie mając innego sprzętu, ani kabla
do podłączenia sygnału TV, pierwsze co podłączyłem to aparat cyfrowy,
wykorzystując jego wyjście Video. Odpaliłem tvtime, ale bez oczekiwanego efektu
(karta została rozpoznana, ale obrazu nie było). Okazało się, że 32-bitowa aplikacja nie
może się dogadać z 64-bitowym sterownikiem w kernelu. Zainstalowałem 64-bitowe tvtime
i pojawił się obraz.

Pierwszego wieczora wypróbowałem jeszcze radio. To działało nawet poprzez
32-bitową aplikację (gnomeradio), ale niestety odbierało (na dołączonej do
karty antanie) tylko Radio Maryja. Po przestawieniu anteny udało się jeszcze
złapać Antyradio, ale słabo.

Następnego dnia zaopatrzyłem się w kabelki, żeby potestować kolejne funkcje karty.
Telewizja ruszyła, tylko większość kanałów zaśnieżone. Ale to można było
przewidzieć, bo sygnał w naszej kablówce jest nienajlepszy, a w komputerze
sporo szumów. W każdym razie Wiadomości obejrzeliśmy sobie na monitorze LCD.

Próbowałem też coś nagrać na dysk, ale wszelkie próby, jeśli już się
program dogadał z kartę, kończyły się tajemniczymi Oopsami, więc dałem sobie
z tym spokój.

W sobotę wpadł do nas mój ojciec i okazało się, że może nam odstąpić swoją
kamerę VHS (prawdę mówiąc nie miałem pojęcia, że miał coś takiego), bo kupił sobie
cyfrową. Teraz mogło zacząć się prawdziwe szaleństwo z moją nową zabawką…

Obraz z kamery wyświetlić na komputerze udało się od razu – tvtime
w końcu już się sprawdziło. Ale wypadałoby zrobić z tym coś więcej, równie dobrze
przecież mógłbym sobie podpiąć kamerę do telewizora. Zacząłem więc szukać jakiegoś
fajnego oprogramowania do tego. Najpierw coś do zrobienia kamerki internetowej.
W końcu znalazłem webcam_server które zaspokoiło
moje potrzeby na tę chwilę i przez jakiś czas parę osób mogło oglądać
niezwykle fascynującą transmisję: Ikę
przed laptopem.

Dzisiaj wróciłem do walki z nagrywaniem. Niestety wciąż tylko oopsy
i oopsy. Kombinowałem z różnymi opcjami bttv i kernela, z różnymi aplikacjami
i wciąż to samo. Pogooglałem i okazało się, że to najprawdopodobniej wina
sprzętu, najpewniej płyty głównej, która nie radzi sobie z dwoma transmisjami
DMA na raz (z karty TV i do kontrolera SCSI). Zamazywane są losowe fragmenty
pamięci jądra i właściwie powinienem się cieszyć, że na dysku mam jeszcze
jakieś dane, a nie już tylko śmieci (dobrze, że to ext3).

Wkurzyłem się trochę. Myślałem, że wreszcie mam porządną płytę główną,
a tu znowu jakiś feler wyskakuje. I to chyba nie do obejścia. Chociaż…
jeszcze wszystkich kombinacji nie sprawdziłem… z drugiej strony, żeby
sprawdzić z 32-bitowym kernelem, to znowu pół systemu musiałbym wywalić do
góry nogami… ech… może po prostu nigdy więcej składaków-PC?

fstab-sync zniknął?

Miesiąc temu opisałem jak
sprytnie skonfigurowałem sobie czytnik kart w moim nowym komputerku
. Dzisiaj
chciałem sobie tym sposobem zgrać zdjęcia z karty CF. Wkładam kartę,
robię mount /media/cf… i nie ma takiego katalogu. W fstabie
też żadnej wzmianki o włożonej karcie, mimo że wciąż jest nagłówek: #
This file is edited by fstab-sync - see 'man fstab-sync' for
details
. Chciałem spróbować odpalić fstab-sync ręcznie… ale
nigdzie nie ma czegoś takiego…

Szukam poldkiem po pakietach – nie ma. Zaglądam do hal.spec
i dowiaduję się, że fstab-sync zostało usunięte ze źródeł. Zaglądam do
ChangeLog i dowiaduję się tylko tyle, że zostało usunięte. Ani słowa na temat
dlaczego i co w zamian. Na stronach Hala wyszukiwanie
hasła fstab-sync nie pokazuje nic.

No pięknie… niech ja jeszcze się kiedyś jakąś ciekawą technologią
zainteresuję… Ciekawe, czy jak skonfiguruję udev, żeby mi robiło symlinki
dla urządzeń czytnika kart, to też to za miesiąc przestanie działać…

Zabaw nowym sprzętem ciąg dalszy…

Mój nowy komputerek sprawuje się znakomicie. Wszystko działa, nic się nie
sypie. Nawet 3D wreszcie działa znakomicie (potestowałem trochę w Enemy
Territory). Coś mi się zdaje, że moje poprzednie problemy z kartami ATI
związane były z walniętą płytą główną. Zresztą, nie tylko to. Na nowej płycie
wreszcie prawidłowo działa nagrywanie z mikrofonu. Na starej ciężko było
złapać cokolwiek poza szumem i to niezależnie od tego, czy używałem wejścia
audio z samej płyty, czy z dodatkowej karty muzycznej.

Dzisiaj postanowiłem zrobić porządek z czytnikiem kart i urządzeniami USB,
bo ciężko byłoby się w tym połapać – czy mój pendrive wyląduje pod
/dev/sdb1, czy /dev/sdf1… Ale od czego mamy takie
wynalazki jak udev i hal. Zrobiłe upgrade
tych ustrojstw no najnowszych wersji z PLD, ale domyślne zachowanie mnie nie
zadowoliło – wszystkie karty, pendrive’y i aparat lądowały pod
/media/usbdisk*. Więc spłodziłem sobie taki oto plik
konfiguracyjny (/etc/hal/fdi/policy/10-local-storage-policy.fdi,
na podstawie analogicznego w /usr/share):

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.fsusage" string="filesystem">
        <!-- skip for drives with the no partitions hint (they are handled somwhere else) -->
        <match key="@block.storage_device:storage.no_partitions_hint" bool="false">
          <merge key="volume.policy.should_mount" type="bool">true</merge>
          <match key="@block.storage_device:storage.drive_type" string="compact_flash">
                <merge key="volume.policy.desired_mount_point" type="string">cf</merge>
          </match>
          <match key="@block.storage_device:storage.drive_type" string="sd_mmc">
                <merge key="volume.policy.desired_mount_point" type="string">sd</merge>
          </match>
          <match key="@block.storage_device:storage.drive_type" string="smart_media">
                <merge key="volume.policy.desired_mount_point" type="string">sm</merge>
          </match>
          <match key="@block.storage_device:storage.drive_type" string="memory_stick">
                <merge key="volume.policy.desired_mount_point" type="string">ms</merge>
          </match>
          <match key="@block.storage_device:storage.model" contains="CAMERA">
                <merge key="volume.policy.desired_mount_point" type="string">camera</merge>
          </match>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

Teraz kartę CF mam pod /media/cf, aparat pod
/media/camera, a pendrive pod /media/usbdisk. Montuję
i odmontowuję to ręcznie, ale tu żadnej automatyki nie potrzebuję.

Kolejną sprawą którą chciałem załatwić, było zwolnienie obrotów
wentylatorów, gdy nie jest potrzebna ich pełna moc. Z Linuksa kontrolować mi się tego nie udało,
ale wystarczyło włączyć odpowiednią opcję w BIOSie, żeby to się robiło
samo. Niestety nie spowodowało to żadnego wyciszenia komputera –
prawie cały hałas produkuje zasilacz, a chwilami dysk. To już będzie trzeba
jakoś sprzętowo załatwić.

Kolejna sprawa to benchmarki. Przed zmianą sprzętu zrobiłem na starym
komputerze, teraz trzeba było spróbować na nowym. Już wczoraj je zrobiłem, ale
w systemie 32-bitowym. Dzisiaj jednak ciekawość już zżerała mnie na tyle, że
postanowiłem zrobić sobie bajzel w systemie i spróbować odpalić coś w 64 bitach…

Chciałem odpalić tylko nbench-byte w 64 bitach, ale do tego
potrzeba, jak do każdej innej 64-bitowej aplikacji, 64-bitowego kernela.
Zrobiłem więc backup obecnego i nadinstalowałem wersję amd64, wraz ze
wszystkimi używanymi dodatkowymi modułami. Wcześniej jeszcze wcisnąłem w
system 64-bitowe glibc. Wszystko z --ignorearch. Prawdę mówiąc
nie liczyłem na to, że to wystartuje, a nawet na to, że initrd się poprawnie
wygeneruje… Initrd się wygenerował, system wystartował. Tylko skrypt od
firewalla nie zadziałał, bo najwyraźniej 32-bitowe iptables z 64-bitowym
kernelem nie działają. Doinstalowałem 64-bitowe iptables (z
--ignorearch) i firewall też ruszył.

Zanim odpaliłem benchmarka, postanowiłem sprawdzić, czy sobie systemu
zbytnio nie rozwaliłem. Najbardziej obawiałem się o Xy, o to, czy 64-bitowy
sterownik ATI w kernelu dogada się z 32-bitowymi Xami. Nie dogadywał się –
Xy się niby odpaliły, ale ani nie wyglądały dobrze (przesunięty, migoczący obraz),
ani nie były stabilne (wszystko się sypło przy próbie przełączenia się na
konsolę). Wyłączenie VesaFB niewiele zmieniało. Trzeba było więc i Xserver
zainstalować w wersji 32-bitowej…

Miałem już trochę dość --ignorearch --replacepkgs, więc
postanowiłem zainstalować 64-bitowego Poldka z RPMem… Niestety jak
zainstalowałem 64-bitowego RPMa, to Poldek przestał działać. Skopiowałem
więc ręcznie wszystkie potrzebne binarki (poldek i biblioteki) z pewnego
64-bitowego serwera i już tak naprawionym poldkiem zainstalowałem to samo
z RPMów. --ignorearch --replacepkgs już więcej nie było
potrzebne, ale okazało się, że Poldek wcale sobie dobrze z mieszanym systemem (32/64
bit) najlepiej nie radzi. Jednak doświadczony PLDowiec jakoś nad tym
zapanuje. W każdym razie Xserver ze wszystkimi potrzebnymi modułami i
sterownikami udało się zainstalować. Cała reszta systemu pozostała 32-bitowa
(poza, oczywiście, bibliotekami, z których wiele mam teraz w obu wersjach). Co
więcej, Xy ruszyły i działają niegorzej niż w 32-bitach. :-)

Wszystko działa, więc mogłem zrobić te swoje benchmarki… Oto wyniki:

  1. hdparm -t -T

    To najprostszy test, którym można coś sprawdzić. Niby do
    dysku, ale pokazuje też przepustowość pamięci, jak i drobny wpływ
    innych części systemu na komunikację z dyskiem.

    Test przeprowadziłem po kilka razy, poniżej wkleiłem
    środkowy wynik.

    • Na starym kompie:
      /dev/sda:
       Timing buffer-cache reads:   808 MB in  2.00 seconds = 403.17 MB/sec
       Timing buffered disk reads:  148 MB in  3.03 seconds =  48.81 MB/sec
      
    • Na nowym, w 32-bitach:
      /dev/sda:
       Timing buffer-cache reads:   3364 MB in  2.00 seconds = 1681.89 MB/sec
       Timing buffered disk reads:  160 MB in  3.02 seconds =  52.91 MB/sec
      
    • Na nowym, w 64-bitach:
      /dev/sda:
       Timing cached reads:   3084 MB in  2.00 seconds = 1541.90 MB/sec
       Timing buffered disk reads:  158 MB in  3.02 seconds =  52.25 MB/sec
      

    Widać, że zmiana kompa spowodowała prawie czterokrotne
    przyspieszenie cache dysku, a także niewielkie przyspieszenie transferu
    z dysku. Jest z czego się cieszyć. :-)

    Niespodzianką jest odrobinę gorszy wynik w systemie 64-bitowym na
    tej samej maszynie, ale różnica ta raczej nie ma znaczenia.

  2. nbench-byte

    To pakiecik do benchmarków, jaki znalazłem w PLD. Coś on tam mądrego
    liczy i w ten sposób mierzy wydajność maszyny. Cokolwiek to jest, to do
    moich celów się nada. ;-)

    • Na starym kompie:
      CPU                 : AuthenticAMD AMD Athlon(tm) processor 1004MHz
      L2 Cache            : 256 KB
      OS                  : Linux 2.6.14.7-2
      C compiler          : i686-pld-linux-gcc
      MEMORY INDEX        : 5.565
      INTEGER INDEX       : 4.729
      FLOATING-POINT INDEX: 9.567
      
    • Na nowym kompie, w 32-bitach:
      CPU                 : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2011MHz
      L2 Cache            : 512 KB
      OS                  : Linux 2.6.14.7-5
      C compiler          : i686-pld-linux-gcc
      MEMORY INDEX        : 11.805
      INTEGER INDEX       : 10.001
      FLOATING-POINT INDEX: 20.263
      
    • Na nowym kompie, 32-bitowo, pod 64-bitowym kernelem:
      CPU                 : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2010MHz
      L2 Cache            : 512 KB
      OS                  : Linux 2.6.14.7-5
      C compiler          : i686-pld-linux-gcc
      MEMORY INDEX        : 12.047
      INTEGER INDEX       : 10.116
      FLOATING-POINT INDEX: 19.884
      
    • Na nowym kompie, 64-bitowo, pod 64-bitowym kernelem:
      CPU                 : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2010MHz
      L2 Cache            : 512 KB
      OS                  : Linux 2.6.14.7-5
      C compiler          : amd64-pld-linux-gcc
      MEMORY INDEX        : 13.785
      INTEGER INDEX       : 13.313
      FLOATING-POINT INDEX: 19.262
      

    Widać, że sama zmiana komputera przyspieszyła te testy
    mniej-więcej dwa razy. Uruchomienie 64-bitowego kernela
    poprawiło odrobinę memory index i integer index
    jednocześnie odrobinę psując floating-point index.
    Skompilowanie testów na 64 bity wyraźniej poprawia wydajność
    pamięci i liczb całkowitych, ale operacjom zmiennoprzecinkowym nie
    pomaga. Wniosek z tego taki, że jak komuś zależy na wydajności
    operacji zmiennoprzecinkowych, to 64 bity mu są co najmniej zbędne.
    W innych przypadkach można conieco zyskać (pewnie sporo więcej niż w
    powyższym teście, jeśli kod jest odpowiednio przygotowany), ale i w 32
    bitach Athlon 64 ma moc. Z drugiej strony, wydaje się od mojego
    starego Athlona szybszy o tyle, o ile ma szybszy zegar… mogłoby być
    lepiej. Jednak w normalnej pracy pewnie będzie lepiej – w
    przeciwieństwie do tego testu, w praktyce więcej się wykorzysta
    przepustowości pamięci i I/O.

Nowe zabawki

Postanowiliśmy sobie odświeżyć nieco sprzęt. Przez cały weekend
i poniedziałek oglądałem w sieci ceny i opisy sprzętu. We wtorek poszedłem do
sklepu Proline po płytę główną (A8N-E) i kartę grafiki (Sapphire Radeon X550
na PCI-Express). Resztę sprzętu, tj. procesor (Athlon 64 3200+), pamięć
(2* Kingston DDR 512MB 400MHz CL2.5) oraz taki panelik do obudowy z czytnikiem
kart i portami USB, zamówiłem na Allegro. Oczywiście od tej chwili nie mogłem
się doczekać przesyłek, ale liczyłem się z tym, że mogą dochodzić przez
tydzień… Żonka zamówiła sobie pamięć do laptopa.

Dzisiaj zadzwonił kurier Stolicy, a więc w sprawie paczki z procesorem
i pamięcią. Ja byłem w pracy, w Zabrzu, to odesłałem go do żonki, która
pracuje kilkaset metrów od domu. Niewiele później żonka doniosła, że odebrała
paczkę. Chwilę później, że jeszcze jedną – z pamięcią do jej laptopa.
Czyli pozostała tylko paczka z panelikiem, ale mało mnie to obchodziło, bo
reszta by mi wystarczyła do złożenia komputera.

W domku najpierw zrobiłem zaległy upgrade tropka (wiąże się to
z odłączeniem sieci, więc mogłem to zrobić tylko wtedy, gdy żonki nie ma),
a zaraz potem zabrałem się za rozbebeszanie kompa. W międzyczasie przyszedł
paczkonosz z Poczty Polskiej z panelikiem. A więc wszystkie zamówione w tym
tygodniu manele przyszły jednego dnia. 🙂

Komputerek udało się złożyć bez większych problemów, Linux wystartował,
jednak parę rzeczy na początku nie działało. Pierwsze: USB. Winną okazała się
opcja acpi=off w parametrach kernela – bez ACPI kontroler
USB nie miał przydzielonego IRQ. Drugie: karta dźwiękowa. Uaktualniłem
modprobe.conf i Linux widzi kartę… tyle, że nic nie
słychać, mimo wyłączenia wyciszenia w mikserze. Tym pobawię się później…

No i, oczywiście (może nie tak całkiem), nie zadziałała grafika. Ani
framebuffer, ani Xy. Sterownik radeon z X.org stwierdził, że nie zna
takiej karty. Znał jednak inne na podobnych kościach. Wymusiłem więc
ChipId 0x5b60 i ruszyło. Oczywiście tylko 2D, ale starczy.
Szkoda, że modułu radeonfb nie można (nie umiem?)
podobnie oszukać…

2D mi w zasadzie wystarcza… ale 3D też dobrze byłoby mieć. Więc
wypróbowałem też te paskudne (bo zamknięte) sterowniki od ATI. Po
zainstalowaniu ruszyły od kopa – nic nie musiałem ruszać w konfiguracji
– ruszyło na konfigu z moich prób ze starszymi Radeonami. Więc
mam działającą akcelerację 3D, a jednocześnie, przy normalnej pracy (2D) nie
jestem ograniczony zamkniętymi sterownikami. Niestety, na razie lepiej być nie
może.

Reszta wydaje się działać ok. Sieciówka (Gigabit Ethernet) ruszyła od
razu. Czytnik kart jest widoczny jako kilka urządzeń usb-storage odkąd
naprawiłem USB. Zegar procesora udało mi się zwalniać i przyspieszać za
pomocą cpufreq, czy idzie za tym zmiana prędkości wentylatora dowiem
się dopiero po tym jak dziecko poszło spać (wcześniej było za głośno)…

Na razie system działa 32-bitowego. Kiedyś pewnie zrobię upgrade całości
do 64-bitów, ale na razie nie chcę sobie psuć systemu. Zaraz zabiorę się za
benchmarki – wczoraj zrobiłem kilka na starym kompie i jestem ciekawy
jak wypadnie porównanie. Na oko jest trochę szybciej…

Dziennikarska fantazja…

Zawsze zadziwiała mnie fantazja niektórych dziennikarzy. Jeśli czegoś nie
wiedzą, to sobie wymyślą. Czasem całkiem sprytnie.

Właśnie przeczytałem sobie
całkiem
ciekawy artykuł w Rzeczpospolitej
. Artykuł bardzo optymistyczny, podane
liczby wręcz zaskakujące… ale ja nie o tym.

Pod artykułem jest komentarz przybliżający czytelnikom Linuksa. A w nim możemy przeczytać:

Sam Linux i część oprogramowania użytkowego działającego pod jego kontrolą są
bezpłatne. Oferowane są też płatne programy, ale tanie tzw. dystrybucje
Linuksa.

Backup głupku!

Już jakiś czas stwierdziłem, że dysk w moim drewnianym
serwerku Tropku
jest stanowczo za wolny i trzebaby coś z tym zrobić.
Jednocześnie przyszedł czas, żeby wymienić 18GB dysk SCSI (Ultra160, 10000RPM)
w desktopie na coś większego. Na urodziny zebrało mi się trochę gotówki, to
zacząłem zakupy. Kupiłem nowy dysk do desktopu (praktycznie taki sam jak
stary, IBM z tej samej serii, ale 36GB i ze złączem SCA), ustrojstwo do
podłączenia tego dysku, kontroler SCSI do Tropka i pamięć do Tropka (wymiana
dysku, gdy pamięci było tylko 256MB, mogłaby być nie w pełni uzasadniona).
Pamięć kupiłem niewłaściwą, więc wstrzymałem się z dalszymi zakupami do czasu
rozwiązania tego problemu.

Mając dysk (wyciągnięty z desktopa po zamianie na 36GB) i kontroler nie
mogłem tego od razu zamontować w Tropku, bo Tropek ma tylko jedno złącze PCI,
w którym siedzi sieciówka, przez którą nam do domku spływa ten cały Internet…
Mój szatański plan był taki: sieciówkę wymienić na taką na USB, dodatkowo
zaopatrzyć się w adapter USB<->IDE i podłączyć ten powolny dysk IDE na zewnątrz
serwerka. Co się ma te 40GB marnować…

W zeszłym tygodniu udało mi się wreszcie dostać właściwą pamięć do tropka.
Zamontowałem, działa, więc postanowiłem powrócić do wymiany dysku. Zamówiłem na
Allegro kartę sieciową USB i ten adapter USB<->IDE. Przyszły w poniedziałek.
Kartę sieciową podłączyłem od razu — to nie wymagało specjalnych przygotowań.
Zadziałała całkiem ładnie. Zachęcony tym, postanowiłem jak najszybciej
zamontować i dysk. We wtorek przymocowałem do szafki eleganckie
mocowanie do dysku, a wczoraj miałem dokończyć robotę.

Nie była to banalna operacja. Pierwsza sprawa – trzeba było do
stanowiska pracy Tropka doprowadzić zasilanie dla zewnętrznego dysku. Do
tego musiałem korki wyłączyć (to trzebabyło zrobić w czasie, gdy żonka nie chce
nic w TV oglądać, ani na komputerze robić) i trochę przy kabelku podłubać (nie
chciałem tam pakować normalnej listwy zasilającej, to miałem za swoje). Potem
pozostało tylko zamontowac nowy dysk i przegrać istotne rzeczy ze
starego.

Do kopiowania dysku postanowiłem użyć PLD Rescue CD. Wciąż miałem jedno
przygotowane do bootowania przez sieć. Niestety z zabootowaniem tego miałem
sporo problemów. Winnym okazało się zmienione MTU na maszynie serwującej obraz
po TFTP. Po zabootowaniu załadowałem sterowniki kontrolera i dysków SCSI
i usb-storage i zacząłem kopiować partycje: cat /dev/sdb3
> /dev/sda2
. Marnie szło, to zamieniłem to na bardziej przyjazne:
pipemeter < /dev/sdb3 > /dev/sda2.

Okazało się, że w tym RescueCD chyba coś skopane były sterowniki
usb-storage i po przekopiowaniu kilkudziesięciu MB dysk znikał
z systemu. Podłączyłem więc dysk do desktopa i tam skopiowałem zawartość tej
jedynej „normalnej” partycji, czyli /boot. Potem przez SSH poszło
na Tropka. Bez problemu i się nawet zamontowało. Ale samo /boot
systemu nie czyni… Pozostałe systemy plików były w LVM, na partycji
/dev/sdb3. No więc robię lvscan i nie ma.
vgscan… nie ma. file -s /dev/sdb3
data. Zamiast phisical volume LVM są jakieś śmieci. Super…

W tym momencie przypomniałem sobie o backupie. Przecież do backupów sobie
kupiłem nagrywarkę DVD i skonfigurowałem Baculę. I nawet jakiś backup Tropka
miałem… ostatni z początku lutego. Zawsze lepiej niż nic. Ale czemu nie
wpadłem na to, żeby zrobić świeży backup przed eksperymentowaniem
z dyskami???

Z backupu najpierw odzyskałem metadane LVM. Przy pomocy
pvcreate i vgcfgrestore udało mi się je
odtworzyć. Znowu zobaczyłem wszystkie wolumeny, większość z nich dała się też
bez problemu zamontować. Poza jednym… root. No to e2fsck
kupa. e2fsck -B 8193… kupa… przypomniałem sobie, że tam miałem
akurat XFS, a nie EXT3… No to xfs_repair… przeszło. Montuję… i mam
jeden katalog lost+found z masą niezidentyfikowanych katalogów i plików.
Jeden z katalogów udało się zidentyfikować jako /etc, inny jako nasze obrazki
do Joggerów. No to najważniejsze są, reszta w miarę aktualna w backupie.

Skopiowałem to /lost+found gdzie indziej, założyłem filesystem od nowa (tym
razem EXT3), odzyskałem zawartość z tego lutowego backupu, pojedyncze pliki
uaktualniłem ręcznie, lub przekopiowałem z lost+found i właściwie serwerek
można było uruchomić. Było jeszcze parę drobnych komplikacji ale w końcu Tropek
ruszył na swoim miejscu. Mogliśmy iść spać…

…ale nie mogliśmy zasnąć. Nowy dysk okazał się stanowczo za
głośny. Żonka zdecydowała, że trzeba go na noc wyłączyć i rano nie włączać,
żeby nie stresować teściowej. Byłem więc dzisiaj do wieczora bez poczty. Może
i dobrze, bo w pracy też się nieźle pokaszaniło (tym razem nie moja sprawka),
więc mi roboty nie brakowało.

Po pracy ruszyłem do Praktikera poszukać jakiś materiałów do wyciszenia
maszyny. Kupiłem jakieś samoprzylepne filcowe ślizgi do mebli, jakieś
gumowe (tak myślałem, okazało się, że z twardego plastiku) nóżki, trochę
śrubek i podkładek. W domu zacząłem kombinować. Rozwierciłem dziury, sanki
przykręciłem do obudowy poprzez filc. Podobnie dysk do sanek. Do tego zrobiłem
dziurę w klapie, żeby się domykała, mimo odstającego złącza SCSI. Dziurę od
zewnątrz też obudowałem filcem. Chyba jest trochę lepiej. Przekonamy się jak
wyłączymy desktopa i pójdziemy spać…

Po postawieniu tropka na miejsce zabrałem się za naprawianie tego, co
jeszcze było zepsute. Okazało się, że praktycznie wszystkie nasze ostatnie
obrazki z Joggerów zostały zniszczone. To co znalazłem w lost+found to
śmiecie. Poza tym wielkich strat nie widzę… Dobrze że żona ostatnio w dobrym
humorze…

Update: Nie sugerujcie się zbytnio tym desktop… to tylko zastosowana tutaj nazwa kodowa dla naszej maszynki, która do postawienia na biurko się średnio nadaje ;-). Komputer ten znany jest także jako duży, albo nic.

Pingwinaria, dzień drugi…

Dzisiaj będzie krócej…

Rano śniadanie, znowu się nażarłem. Potem wyprawa, tym razem w
towarzystwie, na Górę Parkową i główny deptak. Po spacerze chwilka oddechu
i przygotowania do prezentacji. Po krótkich problemach udało się odpalić
laptopa kolegi wraz z rzutnikiem, jeszcze 2 minuty przed czasem. Wtedy dała o
sobie znać trema (a już się dziwiłem, co tak spokojnie do tego podchodzę)… i
musiałem biegiem wylecieć z sali konferencyjnej, do mniejszego pomieszczenia
obok ;-). Zdążyłem jednak na czas. Publiczność dopisała i chyba
nawet nikt nie wyszedł w trakcie, a na końcu nie zostałem obrzucony niczym
poza pytaniami na temat prezentacji. Było więc OK.

Potem obiadek (jak zwykle solidny), i kolejne wykłady. Ten o funktorach z
C++ darowałem sobie po chwili, ten język zupełnie mnie nie pociąga, a te
funktory to dla mnie nic nowego, mimo że nie wiedziałem że to się tak nazywa.
Najlepiej wypadł wykład o palmtopach.

Po kolacji, chwilę posiedziałem w stołówce, a potem w pokoju, żeby się
uleżało i poszedłem na basen. Basen czynny do 20:00, więc nie ma rady
— trzeba pływać z kolacją. Później trafiłem na towarzystwo wybierające
się do Żabki po napoje. Skoro nie miałem nic lepszego do roboty, to poszedłem
z nimi. A teraz imprezujemy…

Impreza wygląda tak, że osiem osób siedzi w dwuosobowym pokoiku, z
sześcioma laptopami i czasem coś popija (ja wodę na zmianę z kolą, inni
bardziej tradycyjne napoje). Dyskusje o wszystkim, ale słownictwo i
skojarzenia wciąż branżowe. Poza tym, każdy stuka coś tam na swoim
laptopie. No cóż, nie ma to jak Gicza impreza… fajnie jest :-).

A może by tak LVM?

Ostatnio często się zdarzało, że nie mogłem w domu jakiegoś pakietu
doinstalować, bo na /usr brakowało miejsca, gdy na
/home i /var jeszcze było. Nie chciałem linkować,
ani bindować (mount --bind) katalogów, więc było kombinowanie co
by tu skasować, żeby co innego zainstalować. Nie wiele już do tego kasowania
zostało.

Od jakiegoś czas w firmie na serwerach stosuję LVM — dzięki temu na
początku przydzielam systemom plików tyle miejsca ile w danej chwili jest
potrzebne, plus niewielki zapas, a więcej mogę dodać wtedy, gdy będzie taka
potrzeba. Pomyślałem, że w domu też mógłbym to zastosować. Jednak
przeniesienie istniejących filesystemów na LVM to nie taka prosta sprawa,
wiąże się z przerzucaniem danych między partycjami, usuwaniem i dodawaniem
partycji, a także zmianą rozmiaru jednej z nich. W takim przypadku zawsze jest
ryzyko utraty danych…

Wczoraj zrobiliśmy nasze regularne (twardzi jesteśmy: raz na rok) bakupy
najistotniejszych danych, jednak mimo to żona by mnie zamordowała, gdyby
wyparował jej katalog domowy. Dlatego właśnie leci jego zawartość na
wolną partycję na serwerze u mnie w pracy. Oczywiście w locie kompresowana
i szyfrowana. Średnio około 400kB/s. Oby mi ISP kurka nie przykręcił za to
— to jest sieć osiedlowa, gdzie raczej nie są przewidziane takie
transfery dla pojedynczego użytkownika ;-).

Po obiedzie rozpoczynam operację (8-punktowy plan mam już przygotowany),
ciekawe co z tego wyniknie…

Rysowanie na ekranie

Aby dziecko czymś zająć odpaliłem Krysi Tux Painta. Już kiedyś
jej to pokazywałem, ale właściwie tylko na ślepo klikała myszką. Teraz
wyraźnie zaczynała rozumieć o co w tym chodzi…

Najpierw narysowałem jakąś buźkę i dałem jej myszkę. Stwierdziła, że
narysuje wąsy i rzeczywiście próbowała kursorem trafić w okolice nosa, ale coś
jej nie wychodziło. Potem pokazałem jej pieczątki i zaczęła stawiać
pingwinki, nawet w jakiś określony sposób. A jak ją poprosiłem o narysowanie
biedronki, to nawet udało jej się ją wybrać z menu i narysować. Nad celnością
kursora musi jeszcze popracować, ale chyba i tak jest to zdolne dziecko. Mam
nawet wrażenie, że szło jej lepiej niż kredkami na kartce (a to drugie ćwiczy
już dość długo).

Miło mnie zaskoczyło też to, że nie było ryków jak stwierdziłem, że trzeba
kończyć. Krysia nawet pomogła mi wyłączyć program.