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/.
Borykam się z problemem nowego jądra 3.1.8 czy coś źle robię? Proszę to sprawdzić i udzielić mi odpowiednie wskazówki.
1. Ściągam nowy kernel
2. Rozpakowuję do /usr/src
3. Łatam go patch-imqmq-3.1.diff
4. Kopiuję plik konfiguracyjny cp /boot/config* /usr/src/linux-3.1.8/.config
5. Uruchamiam make menuconfig i ładuję plik konfiguracyjny .config
6. Wychodzę z menuconfig nie robiąc nic i zapisuję plik .config
7. Wydaję polecenie make i po kompilacji make modules_install oraz make install
8. Aktualizacja grub'a update-grub
9. Restart laptopa Toshiba Satellite L45.
10. Start na nowym kernel i tu KERNEL PANIC
Debian Squeeze 6.0 / KDE4
Pozdrawiam
Ostatnio edytowany przez oli (2012-01-09 18:54:07)
Offline
Kompilacja przebiega prawidłowo? initrd tworzy się automatycznie przy make install, prawda? Znaczy masz je w /boot i zostało dodane do konfigu GRUB-a? Wiesz, najlepiej jakbyś skonfigurował jajo pod sprzęt skoro już kompilujesz. Natomiast jeśli chcesz dystrybucyjny konfig, to radziłbym wziąć ten z wersji 3.1, a nie z 2.6.32. Konfig na przestrzeni tylu wydań mógł się po prostu rozjechać… Czy to faktycznie tego wina musisz niestety sprawdzić sam.
PS
oli napisał(-a):
Debian Squizzy
Debian Squeeze
Offline
Poprawiłem ;)
Hmm, możliwe, że tak się dzieje na laptopie bo w przypadku gdy .config przenosiłem jak kompilowałem kernel na innym komputerze i było wszystko w porządku. Tylko na innym komputerze był sam netinstall. Komputer z P4.
Ostatnio edytowany przez oli (2012-01-09 19:01:26)
Offline
Z jakiego kernela bierzesz konfig?
Bo jeśli to są sąsiednie wersje, to problemu być nie powinno, jeśli natomiast przesiadka z 2.6.32 na 3.1.8 - to różnice są dość pokaźne.
make oldconfig
robiłeś?
To podstawa przy kompilowaniu na starym konfigu.
Poza tym nic nie kopiuj:
cała kompilacja:
konfiguracja:
make *config
kompilacja:
make -j2
Instalacja:
make modules_install make install update-grub
jajo gotowe do użytku.
Potem ewentualnie instalacja zewnętrznych sterowników oraz generowanie initrd (o ile ktoś go potrzebuje, ja nie używam).
Restart, odpalasz kompa na nowym jaju.
U mnie:
uname -sirvmo
Linux 3.1.8-gl3 #6 SMP PREEMPT Mon Jan 9 16:09:45 CET 2012 i686 GenuineIntel GNU/Linux
To wszystko.
Poza tym najpierw skompiluj czyste jajo bez łatek, jeśli ruszy, to wtedy na te same źródła nałożysz łatki, zaznaczysz co trzeba w xconfig i przekompilujesz.
Bo w tej chwili nawet nie wiesz, czy jajo winne, czy łata.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-01-09 19:01:17)
Offline
Tak z 2.6.32 brałem i ładowałem w 3.1.8. Nie robiłem make oldconfig. Z resztą kernel kompilował mi kolega na tym P4 i możliwe że on wydał takie polecenie, a ja o tym nie wiem. Robił mi to zdalnie przez ssh.
Dzięki Panowie, spróbuje tym sposobem.
Ostatnio edytowany przez oli (2012-01-09 19:05:14)
Offline
W sumie jak wczytałeś konfig w menuconfig, to przy nowych pozycjach po prostu wybrana została domyślna opcja (w przypadku make oldconfig dostajesz pytania dotyczące każdej takiej pozycji), przy odrobinie szczęścia mogło się udać. ;)
Offline
Jeśli skopiowałem .config stary i nie uruchamiałem menuconfig tylko od raz zacząłem kompilować dostawałem setki niekończących się pytań nawet w jakim formacie ma być skompresowany obraz i poza tym jakieś komunikaty problemowe z Kconfig.
Offline
Te pytania to chyba make oldconfig właśnie było. Pewien na 100% nie jestem, ale o ile dobrze pamiętam, to przy wywołaniu make wywoływane jest również oldconfig, świta mi komunikat w stylu „silent oldconfig” zaraz po wydaniu make, ale nie chce mi się sprawdzać.
Offline
ArnVaker napisał(-a):
Kompilacja przebiega prawidłowo?
Tak.
ArnVaker napisał(-a):
initrd tworzy się automatycznie przy make install, prawda?
Wróciłem z pracy i zerknąłem w /boot i okazuje się, że nie ma initrd dla 3.1.8.
Czekam z nowym jajcem w gotowości na Wasze odpowiedzi. Więc jak z tym teraz startować?
Ostatnio edytowany przez oli (2012-01-09 20:15:33)
Offline
To utwórz:
update-initramfs -c -k wersja_kernela
np.:
update-initramfs -c -k 3.1.0-8.dmz.1-liquorix-amd64
Wersja kernela, czyli to co zwraca uname -r, nazwa pod którą są moduły w /lib/modules itp.
Choć wydaje mi się, że wczoraj widziałem u Ciebie initrd dla 3.1.8…
Offline
Zainstaluj sobie najpierw dystrybucyjny kernel z backportów, 2.6.39 albo najlepiej 3.0/3.x, łatwiej będzie na bazie konfigu z takiego kernela skompilować własny.
Potem zrób sobie porządny konfig kernela.
Tu masz przypadek podobny do twojego:
http://forums.gentoo.org/viewtopic-t-885146-highlight-.html
A tu sposób, z jakiego pochodzi mój konfig:
http://forum.dug.net.pl/viewtopic.php?pid=153575#p153575
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-01-19 03:50:29)
Offline
ArnVaker napisał(-a):
Choć wydaje mi się, że wczoraj widziałem u Ciebie initrd dla 3.1.8…
Tak bo walczyłem wtedy z serewerem i tam jest wszystko OK.
Nie wykonam tych poleceń bo jajo poszło w /dev/null :) i muszę kompilować na nowo :(
Więc na razie mam rozpakowane i załatane tą jedną łatką imq i czekam co podpowiecie. A za 2h się odezwę jak się skompiluje :).
Offline
To już sam wybierz jaki kernel chcesz skompilować. :) Jeżeli z konfigiem dystrybucyjnym, to weź konfig z kernela 3.1. Jeżeli pod sprzęt, to linki podał Ci Jacekalex… Natomiast jeśli chcesz skompilować pod sprzęt i zrozumieć co robisz, to dorzucam jeszcze kernel-seeds.org.
Offline
Dzięki biorę się do roboty.
Offline
Tylko podziękować :)
Jajo nowe jest. Wtedy też by chyba było tylko brakowało initrd.
Zrobiłem to tak:
make oldconfig make -j2 make modules_install make install update-initramfs -c -k 3.1.8 update-grub
Więc poszło na starym configu.
Offline
oli napisał(-a):
Kod:
make -j2
Dodam jeszcze, że opcja -j[liczba], to liczba wątków na których odbywać ma się kompilacja. Przydatne jeśli masz kilka procesorów albo wielordzeniowy procek (+ ewentualnie HT) żeby wykorzystać je wszystkie. Na jednym jednordzeniowym procku dodatkowe wątki nie mają większego sensu.
Offline
A tak się zastanawiałem co to za opcja :). I powiem szczerze, że jajko się mi szybciej skompilowało.
Posiadam Pentium DualCore.
Jeszcze żebym umiał dobrze konfigurować jajco to by było super. Znam sprzęt ale tam jest tego tak dużo, że nie wiem co odznaczyć a co nie.
Ostatnio edytowany przez oli (2012-01-09 22:37:39)
Offline
ArnVaker napisał(-a):
oli napisał(-a):
Kod:
make -j2Dodam jeszcze, że opcja -j[liczba], to liczba wątków na których odbywać ma się kompilacja. Przydatne jeśli masz kilka procesorów albo wielordzeniowy procek (+ ewentualnie HT) żeby wykorzystać je wszystkie. Na jednym jednordzeniowym procku dodatkowe wątki nie mają większego sensu.
Czy jest sens, czy nie ma - pojęcie względne.
Jedni specjaliści twierdzą - że na 1 rdzeniu jeden wątek, inni - że na 1 rzdeniu 1+1 czyli 2, na dwóch rdzeniach 1+1+1 czyli 3.
Ja w jednej książce wyczytałem, zeby uzywać 2*core+1 - czyli na moim Core2 duo - 5 wątków, i w ten system się u mnie sprawdza idealnie.
Co ciekawe, spróbowałem kiedyś na 3, innym razem na 64 (test autogroup :D ), i zazwyczaj odrobinkę szybciej wychodziło na 5 wątkach, niż na innych opcjch.
Dlatego na wszelki wypadek (1 dostępnego rdzenia) poradziłem make -j2 - bez problemu na jednojajowym procku, do HT się nadaje, na dwóch rdzeniach też nieźle.
oli napisał(-a):
A tak się zastanawiałem co to za opcja :).......
Jeszcze żebym umiał dobrze konfigurować jajco to by było super. Znam sprzęt ale tam jest tego tak dużo, że nie wiem co odznaczyć a co nie.
Poczytaj uważnie:
http://forum.dug.net.pl/viewtopic.php?pid=153575#p153575
http://forum.dug.net.pl/viewtopic.php?id=16572
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-01-09 22:53:58)
Offline
Na pewno skorzystam.
Thx!
Offline
co do liczby wątków, to sam Linus Torvalds zapodaje make -j64 ;)
http://marc.info/?l=linux-kernel&m=128979084506774&w=2
Offline
rychu napisał(-a):
co do liczby wątków, to sam Linus Torvalds zapodaje make -j64 ;)
http://marc.info/?l=linux-kernel&m=128979084506774&w=2
U mnie link nie działa.
Połączenie zostało zresetowane.
Offline
Hm, u mnie działa normalnie. ;) Zresztą to żart. :P Linus Torvalds nie robi tak na co dzień, tylko testował w ten sposób jak sprawuje się to ustrojstwo: http://forum.dug.net.pl/viewtopic.php?id=17754, które poprawia ogólną responsywność systemu pod dużym obciążeniem procesora.
Linus Torvalds napisał(-a):
Yeah. And I have to say that I'm (very happily) surprised by just how small that patch really ends up being, and how it's not intrusive or ugly either.
I'm also very happy with just what it does to interactive performance. Admittedly, my "testcase" is really trivial (reading email in a web-browser, scrolling around a bit, while doing a "make -j64" on the kernel at the same time), but it's a test-case that is very relevant for me. And it is a _huge_ improvement.
It's an improvement for things like smooth scrolling around, but what I found more interesting was how it seems to really make web pages load a lot faster. Maybe it shouldn't have been surprising, but I always associated that with network performance. But there's clearly enough of a CPU load when loading a new web page that if you have a load average of 50+ at the same time, you _will_ be starved for CPU in the loading process, and probably won't get all the http requests out quickly enough.
So I think this is firmly one of those "real improvement" patches. Good job. Group scheduling goes from "useful for some specific server loads" to "that's a killer feature".
Linus
Offline
Pentium Dual-Core - testowałem na make -j2 i na make -j5. W htop zauważyłem, że wykorzystywanie procesora pokazuje cały czas 100% na dwóch rdzeniach w przypadku -j5, a w przypadku -j2 poziom się zmienia i lata w zakresie 70% do 100%. Więc coś w tym jest :)
Offline
Offline