Dzięki za regularne odwiedziny na moim blogu! Jeśli uważasz, że jest on godny polecenia to śmiało wyślij link do niego lub link do kanału RSS albo subskrypcje przez e-mail znajomym. Dzięki !
Wczoraj byliśmy w pracy małżonki. Tośka dzielnie odparła nawał nowych ciotek i wujków („a dziu dziu”, „jaka śliczna dziewczynka”, „ktos się tak patrzy? NO KTO SIĘ TAK PATRZY OCZKAMI”) i dostała prezent. A właściwie rodzice dostali utrapi… err, prezent ;)
Prezent wygląda tak:
Wieczorem kiedy mieliśmy trochę spokoju postanowiliśmy przetestować kojec i go rozłożyć. Zapakowany sprawiał solidne wrażenie i wyglądał jak długi pustak owinięty w materac, który wkłada się do środka :)
Zdjęcie materaca – prościzna. O jest instrukcja, eee po co mi instrukcja do tak prostej rzeczy, tu się pociągnie, tam coś zblokuje i sam się rozłoży. I nawet miałem początkowo rację. Maksymalnie udało mi się złożyć 3 boki (które złożone wyglądają mniej więcej tak \_/ , żeby je rozłożyć trzeba po prostu pociągnąć element _ i całość zmienia się w — . Przy czwartym elemencie, który by on nie był „nie wystarczało pałąka aby się zblokował”. Nie pomagały wyciągania go, przytrzymywanie nogą, zaklęcia, bluzgi. Upokorzony przez kawał plastiku owinięty materiałem sięgnąłem do instrukcji. O dziwo napisali dokładnie to co wiedziałem… Po dwóch godzinach ponownych prób i literowaniu instrukcji poddałem się i chciałem go złożyć aby oddać na reklamację. Jakież było moje zdziwienie kiedy przy składaniu dołu jakoś złożyła mi się góra , po czym dół nie stanowił już problemu! A więc nawet instrukcja źle napisana! Nieufny mojemu szczęściu powtórzyłem kilka razy nowo odkryty sposób i okazało się, że nagle kojec z bezużytecznej kupy plastiku stał się całkiem fajnym sprzętem :) Tosia na następny dzień przetestowała kojec i widać było że podoba jej się nowe miejsce do leżenia. A rodzice teraz mogą wybrać się na dłużej w odwiedziny i jednym ruchem zapewnić bezpieczną przestrzeń dla dziecka ;)
A co, admini też mają swój niszowy repertuar, enjoy!
Tekst:
a long long time ago
i can still remember
when my laptop could connect elsewhere
and i tell you all there was a day
the network card i threw away
had a purpose – and worked for you and me….
But 18 years completely wasted
with each address we’ve aggregated
the tables overflowing
the traffic just stopped flowing….
And now we’re bearing all the scars
and all my traceroutes showing stars…
the packets would travel faster in cars…
the day….the routers died
Chorus (ALL!!!!!)
So bye bye, folks at RIPE 55
Be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
But I spose we’d better give it a try
I suppose we’d better give it a try
Now did you write an RFC
That dictated how we all should be
Did we listen like we should that day
Now were you back at RIPE fifty-four
Where we heard the same things months before
And the people knew they’d have to change their ways….
And we – knew that all the ISPs
Could be – future proof for centuries
But that was then not now
Spent too much time playing WoW
ooh there was time we sat on IRC
Making jokes on how this day would be
Now there’s no more use for TCP
The day the routers died…
Chorus (chime in now)
So bye bye, folks at RIPE 55
Be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
But I spose we’d better give it a try
I suppose we’d better give it a try
I remember those old days I mourn
Sitting in my room, downloading porn
Yeah that’s how it used to be….
When the packets flowed from A to B
via routers that could talk IP
There was data..that could be exchanged between you and me….
Oh but – I could see you all ignore
The fact – we’d fill up IPv4
But we all lost the nerve
And we got what we deserved!
And while…we threw our network kit away
And wished we’d heard the things they say
Put all our lives in disarray
The day…the routers died…
Chorus (those silent will be shot)
So bye bye, folks at RIPE 55
Be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
But I spose we’d better give it a try
I suppose we’d better give it a try
Saw a man with whom I used to peer
Asked him to rescue my career
He just sighed and turned away..
I went down to the net cafe
that I used to visit everyday
But the man there said I might as well just leave…
And now we’ve all lost our purpose..
my cisco shares completely worthless…
No future meetings for me
At the Hotel Krasnapolsky
and the men that make us push and push
Like Geoff Huston and Randy Bush
Should’ve listened to what they told us….
The day…the routers….died
Chorus (time to lose your voice)
So bye bye, folks at RIPE 55
Be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
But I spose we’d better give it a try
I suppose we’d better give it a try
Sorry my polish readers, but I waste almost day to figure this out, so maybe this post will help more users if it will be in English.
I got couple of Proliants. Two DL380 G5 which are fully functional with BSDs, and three DL140 G3 that has a problems.
After booting it up from CD, both Net and Open BSD hangs just after initial kernel load. FreeBSD, CentOS even Windows works smooth. I tried diffrent branches – 4.0_STABLE, newest current, some old too. Nothing changed. Then I left it in „hang mode” ;) and went for dinner. After come back both NetBSD and OpenBSD welcomes me with it installers! Yay! I rebooted once again and waits. NetBSD hangs as before, then after about 5 minutes, it booted with green kernel messages and hangs again on pckbc0 at isa0, and after another minutes it continued straight to installer. With OpenBSD was the same, only time changed – 15 minutes dough. I installed both, and didn’t noticed any odd behavior. After install and boot from hard disk, both hangs again, then let me logged in, and work just fine.
Here comes sources for help :) Recompilation of kernel with no pckbc0 support completly solved problem. I was almost sure that with no pckbc0 I will not be able to use ps2 keyboard nor usb keyboard on console, but both works. So flawless success :) I think problem is in controler of keyboard in DL140 that is bridged with PS2 and USB connection.
So conclusion is if You want use BSD on DL140 G3, chose FreeBSD, or arm yourself with patient and sources for Your system :)
P.S. NetBSD on DL140 G3 with SMP support works like a charm :)
Pamiętacie dyskietki ZIP? Swego czasu dość popularne, jednak nie przyjęły się jako popularne nośniki danych. Zdarza się czasem, że w starych komputerach są używane. Dzisiaj trafiłem taki komputer z którego musiałem coś zgrać właśnie na ZIPa w tym komputerze. Operacja absolutnie normalna, niczym kopiowanie na pendrive’a, jednak finał operacji był dość zaskakujący :)
Był już post o tym nieczęstym wydarzeniu w życiu mojego biurka. Minęły 4 miesiące i 5 dni. Moje biurko wygląda w dniu dzisiejszym tak:
Wygląda na to, że kwalifikuję się na dzisiejsze święto, z drugiej strony porównując obydwa zdjęcia widzę, że mój bałagan pojawia się w bardzo podobny sposób. Zadziwiająco poukładany chaos ;)
W końcu przyszedł czas aby się ustabilizować. W tym krótkim howto postaram się dość szczegółowo opisać jak to wykonać i nie strzelić sobie w stopę a jak już się strzeli jak się połatać.
W moim przypadku upgrade był przeprowadzony z systemu z gałęzi -current do -stable a konkretnie z 4.99.32 do 4.0_STABLE.
Zaczynamy od ściągnięcia źródeł systemu odpowiedniej gałęzi.
Wchodzimy do /usr
cd /usr/
Ustawiamy w jaki sposób będziemy łączyć się z serwerem cvs
jeśli pominiemy -r netbsd-4 ściągniemy gałąź -current, możemy się także cofnąć do netbsd-3 (nie polecane :). Po całej operacji mniej lub bardziej czasochłonnej w katalogu /usr/src będziemy mieli wszystkie źródła potrzebne do budowy systemu. Jeśli masz kiepskie połączenie z Internetem możemy dodać po cvs flagę -zx gdzie x to liczba od 1 do 9 określająca stopień kompresji. Pamiętać należy jednak, że kompresja po stronie serwera dość poważnie go obciąża.
Możemy sprawdzić czy ściągnęliśmy dobrą wersję wykonując skrypt osrelease.sh w katalogu /usr/src/sys/conf/
cd /usr/src/sys/conf/
sh osrelease.sh
4.0_STABLE
Wszystko gra.
Teraz musimy przygotować katalogi do budowy systemu, /usr/tools i /usr/obj są obligatoryjne i kiedy ich nie ma budowa systemu nie zostanie przeprowadzona, build.sh powinien je stworzyć ale dla pewności lepiej zadbać aby były dostępne dla systemu. katalog gdzie faktycznie będą przechowywane setsy po budowie jest dowolny w moim przypadku nazywa się tak jak wersja NetBSD – /usr/4.0_STABLE
mkdir /usr/tools /usr/obj /usr/4.0_STABLE
Teraz zbudujemy sobie toolsy czyli narzędzia do budowy NetBSD. build.sh jest oczywiście na tyle sprytny, że sprawdza czy w systemie są odpowiednie narzędzia i jeśli ich nie ma to je buduje i korzysta z nowych, ale oczywiście na tym etapie mogą także pojawić się nieprzewidywane trudności więc dla pewności wskażemy konkretny katalog i powiemy co build.sh ma budować:
cd /usr/src/
./build.sh -T /usr/tools/ tools
Zależnie od szybkości naszej maszyny, może to potrwać od kilku minut to kilku godzin.
U mnie na p3 500 Mhz i 256 Mb ram toolsy jak widać budowały się godzinę z kilkoma minutami.
===> Tools built to /usr/tools
===> build.sh ended: Fri Dec 21 15:04:39 CET 2007
===> Summary of results:
build.sh command: ./build.sh -T /usr/tools/ tools
build.sh started: Fri Dec 21 13:58:46 CET 2007
NetBSD version: 4.0_STABLE
MACHINE: i386
MACHINE_ARCH: i386
Build platform: NetBSD 4.99.32 i386
HOST_SH: /bin/sh
No /usr/tools/bin/nbmake, needs building.
Bootstrapping nbmake
TOOLDIR path: /usr/tools
DESTDIR path: /usr/src/destdir.i386
RELEASEDIR path: /usr/src/releasedir
Created /usr/tools/bin/nbmake
makewrapper: /usr/tools/bin/nbmake-i386
Updated /usr/tools/bin/nbmake-i386
Tools built to /usr/tools
build.sh ended: Fri Dec 21 15:04:39 CET 2007
===> .
Po wybudowaniu toolsów możemy zbudować sobie system:
./build.sh -D /usr/4.0_STABLE -O /usr/obj -T /usr/tools -u build
===> Successful make build
===> build.sh ended: Fri Dec 21 21:53:03 CET 2007
===> Summary of results:
build.sh command: ./build.sh -D /usr/4.0_STABLE -O /usr/obj -T /usr/tools -u build
build.sh started: Fri Dec 21 15:07:38 CET 2007
NetBSD version: 4.0_STABLE
MACHINE: i386
MACHINE_ARCH: i386
Build platform: NetBSD 4.99.32 i386
HOST_SH: /bin/sh
TOOLDIR path: /usr/tools
DESTDIR path: /usr/4.0_STABLE
RELEASEDIR path: /usr/obj/releasedir
makewrapper: /usr/tools/bin/nbmake-i386
Updated /usr/tools/bin/nbmake-i386
Successful make build
build.sh ended: Fri Dec 21 21:53:03 CET 2007
===> .
A po wybudowaniu systemu potrzebujemy jeszcze kernel zgodny z wersją naszego NetBSD który będziemy instalować. Najlepiej jest zbudować oczywiście GENERIC, ale możemy oczywiście go trochę zmodyfikować (np. poprzez dodanie PF który nie jest domyślnie kompilowany)
vim sys/arch/i386/conf/GENERIC
(oczywiście dla innych architektur trzeba zmienić katalog określający architekturę np amd64, sparc, sparc64 itp.)
Kernel możemy wybudować następnie tak jak stara szkoła karze, poprzez config, make depend, make, make install, ale build.sh również pozwala nam go budować więc użyję właśnie tego narzędzia:
./build.sh -O /usr/obj -T /usr/tools -u kernel=GENERIC
===> Kernels built from GENERIC:
/usr/obj/sys/arch/i386/compile/GENERIC/netbsd
===> build.sh ended: Fri Dec 21 23:00:27 CET 2007
===> Summary of results:
build.sh command: ./build.sh -O /usr/obj -T /usr/tools -u kernel=GENERIC
build.sh started: Fri Dec 21 21:58:15 CET 2007
NetBSD version: 4.0_STABLE
MACHINE: i386
MACHINE_ARCH: i386
Build platform: NetBSD 4.99.32 i386
HOST_SH: /bin/sh
TOOLDIR path: /usr/tools
DESTDIR path: /usr/obj/destdir.i386
RELEASEDIR path: /usr/obj/releasedir
makewrapper: /usr/tools/bin/nbmake-i386
Updated /usr/tools/bin/nbmake-i386
Building kernel without building new tools
Building kernel: GENERIC
Build directory: /usr/obj/sys/arch/i386/compile/GENERIC
Kernels built from GENERIC:
/usr/obj/sys/arch/i386/compile/GENERIC/netbsd
build.sh ended: Fri Dec 21 23:00:27 CET 2007
===> .
Po wybudowaniu kernela musimy jeszcze tylko go podmienić backupując nasz stary (i działający ! ;) kernel.
Teraz jesteśmy gotowi na reboot i sprawdzenie czy nowy kernel podniesie nam system (błędami przy starcie usług na razie się nie przejmujemy)
Pamiętaj, rebootuj system poprzez shutdown -r now a nie reboot, ponieważ shutdown prawidłowo stopuje usługi z /etc/rc.conf
System wstał (mam nadzieję, że u Ciebie też :). Większość usług u mnie nie odpaliło się, ale np NAT z PF działał. Możemy więc zainstalować nowy system:
make installworld started at: Fri Dec 28 10:12:33 CET 2007
make installworld finished at: Fri Dec 28 10:17:43 CET 2007
===> Successful installworld to /
===> build.sh ended: Fri Dec 28 10:17:44 CET 2007
===> Summary of results:
build.sh command: ./build.sh -D /usr/4.0_STABLE/ -O /usr/obj -T /usr/tools -u install=/
build.sh started: Fri Dec 28 10:12:29 CET 2007
NetBSD version: 4.0_STABLE
MACHINE: i386
MACHINE_ARCH: i386
Build platform: NetBSD 4.0_STABLE i386
HOST_SH: /bin/sh
TOOLDIR path: /usr/tools
DESTDIR path: /usr/4.0_STABLE
RELEASEDIR path: /usr/obj/releasedir
makewrapper: /usr/tools/bin/nbmake-i386
Updated /usr/tools/bin/nbmake-i386
Successful installworld to /
build.sh ended: Fri Dec 28 10:17:44 CET 2007
===> .
Została jeszcze jedna rzecz, należy przeprowadzić update plików konfiguracyjnych, wydajemy polecenie etcupdate i uważnie (bardzo!) sprawdzamy o co nas pyta system. Polecam przekopiowanie /etc w bezpieczne miejsce! Mamy do wyboru kilka opcji przy każdym pliku. Najwazniejsze do i – install i d – don’t install. Wszystkie pliki, w których nie przeprwadzaliśmy zmian możemy śmiało zainstalować, tak samo wszystkie pliki które oznaczone są jako missing. Należy zwrócić szczególną uwagę na pliki z uzytkownikami i grupami, ponieważ jeśli nie opacznie damy install to zostaną zainstalowane czyste pliki tak jak po świeżej instalacji i nie będziemy mogli się zalogować ponieważ nasz uzytkownik nie będzie istniał.
etcupdate
Po etc update przeleci postinstall i powie co się udało a co nie i podpowie jakie komendy należy uruchomić aby pozbyć się niepotzrebnych rzeczy typu obsolete.
Po zakończonej operacji dajemy shutdown -r now i teoretycznie wszystko powinno działać. Teoria jednak mija się z praktyką i np u mnie wymagane było przeinstalowanie niektórych aplikacji (perl, mysql). To jest jednak dosyć proste do wykonania gorzej kiedy po etcupdate dostajemy błąd, że nie odnaleziono libc.so.12 co skutkuje brakiem możliwości zrobienia czegokolwiek łącznie z zalogowaniem się lub chociażby ls. A po restarcie dostajemy kernel pannic z powodu init died…
man init nie podaje nam wesołych wiadomości:
The role of init is so critical that if it dies, the system will reboot
itself automatically. If, at bootstrap time, the init process cannot be
located, the system will panic with the message ``panic: init died
(signal %d, exit %d)''.
Powodem tego jest to, że kernel przy starcie zna jedynie partycję / i w pierwszej kolejności odpala init który dalej inicjuje pozostałe partycje, i odpala skrytpty rc.d. Z koleii init do działania potzrebule /lib/lib.co.12 oraz /libexec/ld.elf_so. Jeśli z jakichś powodów nie może ich zlokalizować dostejemy init died. Plik /lib/lib.co.12 jest linkiem do innego pliku:
Ja upgreadując z gałęzi -current miałem zamiast libc.so.12.149 plik libc.so.12.150, a libc.so.12 nie zlinkował się prawidłowo z plikiem od 4.0 stąd problem.
Najprostrzym rozwiązaniem tego problemu jest wybootowanie z płyty instalacyjnej NetBSD i z menu narzędziowego uruchomienie /bin/sh, nastepnie podmontowanie / i stworzenie właściwego linku, lub też oprócz podmontowania / podmontowanie /usr (jeśli jest na innej partycji) i przekopiowanie całego /usr/4.0_STABLE/lib na miejsce /lib. Po takim zabiegu system wstał bez żadnego problemu.