Czy 64 mb wystarczy każdemu
Podobnie jak zal, tak i ja stałem się dumnym posiadaczem t5520. I również zainstalowałem tam linuksa.
Z tą jednak różnicą, że ja postanowiłem pozostać przy standardowych, wbudowanych 64 mb (notacja marketingowa) powierzchni dyskowej. I co tu postawiłem, zapytacie? Oczywiście wybór mógł być tylko jeden: Gentoo.
Jak to zrobić najłatwiej, by to miało ręce i nogi, powiadam wam teraz. Zatwardziali gentoowcy (z architekturą 32 bity) mają łatwiej, bo szybciej przygotują całość. Inni powinni gentoo zainstalować, choćby na jakimś qemu. Tak, teraz natychmiast.
A więc sprawa jest prosta - potrzebujemy dowolnego linuksa wrzuconego na pendrive (np. minimal-install-cd gentoo), rozpakowany na pendrive stage3, prekompilowany (na hoście-gentoo z poprzedniego kroku) kernel i bootloader. Uruchamiamy z tego pendriva maszynkę, czyścimy dysk, tworzymy jedną partycję, formatujemy reiserfs (uwaga: journal należy ustawić na minimum parametrami -b i -s). Teraz można z owego stage3 przekopiować na nowy dysk: /etc, /bin, /sbin, /var, /usr/sbin, /lib i utworzyć brakujące /sys, /dev, /proc. Potem sprawdzamy jakich bibliotek brakuje za pomocą ldd - te przewalamy z /usr/lib - ale tylko te. Dokładamy kernel, robimy chroot i instalujemy bootloader. Trochę cudowania i powinniśmy mieć działający, uruchamiający się base system. Ja zrobiłem kernel bez modułów, zajmuje 3.3 mb i ma wkompilowaną obsługę sieci, usb, via-padlock i oczywiście standardowe funkcje. W sam raz. Choć ciągle się zastanawiam czy nie dołożyć wcześniej przygotowanych, acz jeszcze nie instalowanych modułów od karty dzwiękowej - taki music box dzięki mpd...
Na tym etapie mamy już wolną rękę - ja byłem niejako zmuszony do instalacji samby, która sama w sobie zabrała tyle miejsca co reszta systemu (nmbd + smbd to 10mb, biblioteki drugie tyle, do tego zmusiła mnie do instalacji /usr/lib/gconv/ ). Jeszcze jakiś lekki serwer www, ruby i mój fake-dns z poprzedniego wpisu i mam całkowicie cichy zamiennik poprzedniego serwera - który mimo wszystko był głośny i zjadał dużo prądu.
Co najlepsze jest doskonale kompatybilny ze zwykłym gentoo, więc na innym komputerze mogę elegancko używać portage do instalacji programów + zależności, a potem tylko przenosić po sieci/na pendrivie do malucha. A mnie ciągle zadziwia to, że najgłośniejszy to teraz jest kurz uderzający o biurko... no i zewnętrzny dysk z mediami, ale ćśś.
Testy trwają. Kurz opada. A po uruchomieniu wszystkiego mam ciągle wolne 78 mb ram.
Podobnie jak zal, tak i ja stałem się dumnym posiadaczem t5520. I również zainstalowałem tam linuksa.
It’s official now, groszek is geek.
Nie myślałeś o zrobieniu binhosta na desktopie? Oszczędziłbyś sobie wtedy przenoszenia wszystkiego na pendrive. Chociaż mam obawy że musiałbyś wtedy mieć wtedy całe drzewo portage, a ono samo chyba zajmuje z 600MB...
Myślałem, ale właśnie drzewko portage byłoby problemem.
Natomiast po napisaniu wpisu wpadłem na inny pomysł - base system zostaje jak jest, ale oprócz tego "pakiety" - kompilujemy z prefix=/opt/nazwa, potem tworzymy CramFS z zawartoscią a na komputerku montujemy i ustawiamy symlinki, w czasie uruchamiania. Łatwo, szybko i przyjemnie, a także daje to ogromne oszczędności miejsca. Właśnie rekompiluję ruby i sambę by się wszystko ładnie zmieściło :]
O kurcze, jakie kombinacje... Ja bym wpierw spróbował podmontować portage pod nfs, a na desktopie zrobić 32-bit chroota na którym bym robił bindisty... Ale mam w sumie małe pojęcie w zakresie embedded zastosowań gentoo, chociaż tez myślałem o czymś małym pod µserwer (chociaż raczej coś ARM-based)
Ale widzisz, nie licząc telefonu to jedyny linux jakiego używam, a "pełny" gentoo mam pod qemu ;) i tak naprawdę to wszystko jest bardzo proste, jak się nad tym zastanowić chwilę. A do ARM jakoś nie jestem przekonany, szczerze mówiąc. Szczególnie że t5520 to zwykły x86, o dość dużej mocy, małych rozmiarach i całkowicie bezgłośny :)
Ale widzisz, mam malutkie zacięcie do kombinowania z kabelkami, dlatego zwykle szukałbym czegoś co ma więcej niż port szeregowy, np. wypuszczone magistrale I2C czy SPI. Co prawda elektronik ze mnie żaden, ale ciągle mam nadzieję że coś jeszcze z siebie na tym polu wykrzesam ;) Często takie płytki mają slot SD, więc miejsca nie brak, i złącza do lcd (często również paneli dotykowych), więc można się pobawić :)
czy jest mozliwosc zebys udostepnij zrodla?
Źródła? Hm, kernel.org? ;) a tak poważnie, to w poniedziałek postaram się gdzieś wrzucić obraz partycji, tak że każdy będzie mógl użyć dd i zainstalować. Worksforme bardzo ładnie. Właśnie zainstalowałem ruby i przeniosłem sambę na cramfs - teraz mam ponad 6mb wolne :D
Dobry człowiek z Ciebie ;) Obraz partycji bardzo chętnie pobiorę i przetestuję.
Zresztą nie będę sam, więc dobierz odpowiedni serwer.
Okay, jednak dziś się udało wrzucić, nie było tak wiele jak myślałem. A więc panie i panowie, oto obraz dysku: http://evil.nomicon.pl/ghanima.7z
Jeśli ktoś chce wystartować w qemu, to prawdopodobnie będzie musiał na ekranie lilo dopisać "root=/dev/sda1" - w zwykłym komputerku działa bez tego. A, no i różne błędy mogą wyskoczyć, nie wiem dlaczego.
Jak ktoś się zdecyduje przetestować, to dd if=ghanima.img of=/dev/hda i reboot - powinno banglać (chyba że te dyski się różnią na poziomie liczby bajtów, to by trzeba ręcznie stworzyć partycję, zamontować moją, przekopiować wszystko, chroot i 'lilo', reboot)
Po wystartowaniu/rozpakowaniu należy wyedytować /etc/conf.d/local.start - jest tam trochę rzeczy które ja potrzebuję. No i /etc/conf.d/net obowiązkowo.
Z większych rzeczy to jest samba i ruby, jak ktoś nie chce / nie potrzebuje to wystarczy odmontować /opt/{samba,ruby} i usunąć /usr/portage/{samba,ruby}.cfs. To samo się tyczy screena. Ot, taki system pakietów tu zrobiłem, należy spakować do CramFS zawartość pakietu skompilowanego z --prefix=/opt/nazwa i wrzucić do /usr/portage/ jako nazwa.cfs.
No nic, testujta.