Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam. Mam takie zaczepne pytanie czy jest sens istnienia kompilacji kernela na takim niskim poziomie bez dogłębnej możliwości edycji ustawień (brak znajomości języka).
Wczoraj zainstalowałem squeeze i co mnie strasznie zdziwiło to prędkość jaką osiągałem, pomyślałem, że skompiluję cudowny 2.6.37 (200 linijek cudownego kodu)
kompilowałem tak:
cp /boot/config-`uname -r` /usr/src/linux
make localmodconfig
sprawdziłem czy dobry procek jest zaznaczony (i to na tyle innych opcji się boję ruszać bo jak googluje to albo od jakiś zasobów energii albo jakieś inne cuda na których się nie znam)
make xconfig
make-kpkg linux-image linux-headers --initrd
i rezultat
(co prawda nie wiem czy do tego cudo jajka nie trzeba skompilować patcha - sprawdzę później).
1. 2. 3.
1 2.6.32-5-amd64
2 2.6.36-0.dmz.14-liquorix-amd64
3 2.6.37-rc2
Wiem, że czas startu systemu nie jest ważny, lepiej by się wszystko załadowało i dobrze działało, ale tu moje pytanie który kernel najlepiej stosować. Wiadomo z każdą wersją powinni podnosić ich ergonomiczność itp. Co do 2.6.37 wiem, ze to rc więc tego zapewne nie polecicie.
I ostatnie pytanie lepsze jajo dystrybucyjne czy takie skompilowane metodą powyżej. Będę starał się metodą prób i błędów pogłębiać swoją wiedzę, ale czy na takim poziomie nie geek jest sens :)
Offline
Nie ma sensu
Offline
raven18 napisał(-a):
Nie ma sensu
cóż za wyczerpująca odpowiedź, cóż za siła argumentów ;]
Offline
;-]
Ale pytań było więcej.
raven18 napisał(-a):
Nie ma sensu
tak myślałem że trzeba być geekiem :p Ale fakt faktem argument by sie przydał, choćby taki, że mogę coś zepsuć i wysadzić kompa w kosmos :P
Chociaż metoda kompilacji raczej nic zepsuć nie powinna.
Offline
Wcale nie trzeba być żadnym Geekkiem, po prostu wystarczy poznać swój sprzęt, i wiedzieć, na jakich sterownikach chodzi.
Kompa się raczej nie wysadzi, radziłbym tylko ostrożnie z localmodconfig, bo ta funkcja wywala wszystkie używane moduły jako ładowalne, a potem, jak któryś nie znajdzie się w initrd, to system nie wstanie.
Ja wole załadować co niezbędne do życia, statycznie w jajo, na zewnątrz trzymam tylko tunery TV, i moduły budowanie po zainstalowaniu kernela (nvidia, vbox, xtables).
Gdybym używał kartę wifi - to też moduł trzymałbym jako ładowalny.
Poza tym 2.6.37 - to w chwili obecnej wersja testowa rc2 - z całą pewnością nie jest dla kogoś, kto jeszcze w życiu działającego stabilnego kernela nie skompilował.
Radziłbym na początek 2.6.36, - pokombinować z różnymi łatkami, i jak komputer pochodzi z miesiąc na domowym jaju, dopiero wtedy testować kernele alfa czy beta.
W każdym razie nie święci garnki lepią, a le również póki kaczka doopy nie umoczy, pływać się nie nauczy.
Nikt się też nie urodził z biegłą znajomością kernela Linux, to tylko doświadczenie.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2010-11-22 12:16:12)
Offline
rafaloo napisał(-a):
(co prawda nie wiem czy do tego cudo jajka nie trzeba skompilować patcha - sprawdzę później).
Najpierw trzeba nałożyć patcha, a potem skompilować z opcją CONFIG_SCHED_AUTOGROUP=y (która pojawi się po nałożeniu patcha). Co do cudownego patcha, to on nie przyspiesza bootowania ani nie poprawia wydajności. Z dwóch rdzeni nie zrobią się nagle cztery, niestety nie ma tak dobrze... Ten patch poprawia płynność działania systemu, ogólną responsywność pod dużym obciążeniem procesora różnymi zadaniami.
rafaloo napisał(-a):
Co do 2.6.37 wiem, ze to rc więc tego zapewne nie polecicie.
No ja właśnie tego używam. Skusiłem się na tego "cudownego" patcha. Patch nie jest zawarty w czystym 2.6.37, ale został pod niego napisany i w pierwotnej wersji na niższe numerki kernela nie wchodzi czysto. Oczywiście pojawiły się już backporty na starsze wersje jądra.
rafaloo napisał(-a):
I ostatnie pytanie lepsze jajo dystrybucyjne czy takie skompilowane metodą powyżej.
W sumie nie robi to chyba większej różnicy. W dystrybucyjnym przynajmniej wiesz, że nic nie zepsułeś :P Na współczesnych maszynach kompilując własny kernel i tak cudów nie uświadczysz. System podniesie się trochę szybciej jeżeli zrobisz jajo bez initrd i bez zbędnych modułów ładujących się przy każdym starcie. System nie będzie musiał mielić po dysku szukając sterowników... U mnie to jest różnica zaledwie kilku sekund (2 - 4), za to ilin pisał ostatnio, że u niego dużo większa.
Natomiast co do samej wydajności, to dystrybucyjne kernele Debiana są pod wszystko. W rzeczywistości inne ustawienia będą optymalne pod desktop, a inne pod serwer. Pod desktopa można użyć jajca Sidux/Liquorix, tam niektóre opcje są pozmieniane. A kompilując własny, wiadomo, możesz ustawić kernel pod konkretny sprzęt, mający spełniać określane zadanie... Tyle że na początku trzeba jednak trochę nad tym posiedzieć.
Offline
ok czyli jak myślałem ;]
protestuje sobie dłużej liquorix, a w międzyczasie będę dłubał metodą prób i błędów.
Co do samego liquorix to teraz najczęściej aktualizujący się pakiet u mnie ;-]
Screen wyżej jest z numerkiem 14 a już mam 15 ;-]
Offline
Moim zdaniem, jeśli twój sprzęt jest dobrze obsługiwany przez dystrybucyjny kernel to nie warto (no, chyba że lubisz się bawić ;) ). Jakiegoś nagłego wzrostu wydajności pewnie nie zauważysz.
To nie jest tak, że każdy nowszy kernel będzie lepiej działał od starszego. Przykładowo mój sprzęt na 2.6.26 (lenny) działa całkiem spoko (jedynie brak obsługi kart sieciowych), na waniliowych od 2.6.32 do 2.6.35 pojawiła się jakaś regresja i nie jest na nim obsługiwane acpi (a że jest to laptop...), która została naprawiona dopiero w 2.6.36. Z kolei na 2.6.36 mam problem z grafiką (i915) - przy zmianie rozdzielczości, czy też próbie włączenia kamerki internetowej wyskakuje "Oooops..." i jedyne wyjście to wyłaczenie sprzętu przez długie naciśnięcie przyciska...
Poza tym jest dużo ciekawszych rzeczy na tym świecie niż ciągła kompilacja aby coś porawić.... ;)
Offline
Dokładnie, ja też po wielu próbach kompilacji jądra, tych udanych i tych nieudolnych, w końcu doszedłem do wniosku, że naprawdę cała zabawa zwykle nie jest warta zachodu, różnica nie jest tak BARDZO zauważalna (choiaż zwykle jest).
Offline
Co do różnicy to IMHO sporo zależy od tego jak się jajko skompiluje, no i oczywiście zlikwidowanie niepotrzebnych usług.
Po swojej pierwszej kompilacji doszedłem do wniosku, że warto.
Dawno temu jak zainstalowałem na repowym jajku wstawał dłuuugo >40s, wyłączenie śmieci i zostawienie niezbędnego minimum skróciło czas samego startu do około 25, kompilacja jajka, start około 14-16sekund. Nie były to jakieś zawrotne i oszałamiające osiągi ale w porównaniu do dystrybucyjnego - niebo a ziemia. No i rozmiar samego jajka, zamiast około 2.5M + 6M initrd całość mieściła się w 1.5 góra 2M (brak initrd - na co to komu :P)
Co do samego działania systemu - było dużo przyjemniej - system po starcie jakoś dziwnym trafem mniej pamięci zużywał, nawet na intelowskiej karcie wszystko ładnie płynni chodziło, xcompmgr też dawał radę.
Responsywność systemu nie była może aż tak zauważalna jak bootowanie, ale dawało się odczuć, że jest trochę lepiej.
Oczywiście co do responsywności systemu to tylko moje subiektywne odczucia i nie każdy musi się z tym zgadzać. Natomiast sam start był faktem niezaprzeczalnym :P
Offline
winnetou napisał(-a):
(brak initrd - na co to komu :P)
A to nie jest potrzebne żeby system mógł wstać z hibernacji (suspend-to-disk)? Bo tak mi coś świta. I chyba też do LVM-ów (zwłaszcza tych szyfrowanych) jest potrzebne.
Offline
Minio napisał(-a):
A to nie jest potrzebne żeby system mógł wstać z hibernacji (suspend-to-disk)?
Tylko jeżeli używasz uswsusp ("Userspace Software Suspend"). Przy zwykłej hibernacji zawartej w jądrze initrd nie jest potrzebne. Nie jest również potrzebne w przypadku TuxOnIce, obecnie chyba najlepszej... i jednocześnie najbardziej kłopotliwej do uruchomienia, z tych trzech metod hibernacji. O ile mi wiadomo nie jest ona dostępna w żadnym gotowym jądrze dla Debiana, konieczna jest własnoręczna kompilacja z dodatkowo nałożoną łatą i włączonymi odpowiednimi opcjami w konfiguracji kernela. Dobrze, że chociaż tuxonice-userui jest w repozytorium, z jądrem 2.6.36 działa bez zastrzeżeń.
Offline
Co do hibernacji to ArnVaker wszystko wyjaśnił. Jeśli chodzi o LVM to nie jest konieczny (przynajmniej w Gentoo)
winnetou@wigwam ~ $ ls -l /boot/ total 3455 lrwxrwxrwx 1 root root 1 10-10 00:39 boot -> . -rw-r--r-- 1 root root 3508512 10-24 00:13 gentoo-2.6.35-zen2 drwxr-xr-x 2 root root 1024 10-10 04:21 grub drwx------ 2 root root 12288 10-10 00:30 lost+found
wigwam ~ # df -Th Filesystem Type Size Used Avail Use% Mounted on rootfs rootfs 1012M 430M 531M 45% / /dev/root ext4 1012M 430M 531M 45% / rc-svcdir tmpfs 1,0M 64K 960K 7% /lib64/rc/init.d udev tmpfs 10M 296K 9,8M 3% /dev shm tmpfs 2,0G 0 2,0G 0% /dev/shm /dev/mapper/vol0-opt ext4 1008M 380M 577M 40% /opt /dev/mapper/vol0-usr ext4 5,0G 4,0G 748M 85% /usr /dev/mapper/vol0-var ext4 4,0G 368M 3,4G 10% /var /dev/mapper/vol0-portage ext2 4,0G 1,7G 2,2G 44% /usr/portage tmpfs tmpfs 512M 8,5M 504M 2% /tmp tmpfs tmpfs 1,0G 12K 1,0G 1% /var/tmp /dev/sda1 ext2 61M 5,0M 53M 9% /boot /dev/sdb1 ext4 118M 5,6M 106M 5% /mnt/cr /dev/dm-3 crypt 9,9G 3,4G 6,1G 36% /home/winnetou
poza / i /boot wszystko stoi na LVMach, /home/winnetou jest dodatkowo szyfrowanym LVMem.
Offline
ArnVaker, winnetou: no ok. Ja z LVM nie korzystam, hibernacje tylko sprawdziłem czy działa (na dystrybucyjnym działa, na innych nie sprawdzałem), więc tylko powtarzam to co gdzieś mi się obiło o uszy.
Offline