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. Od kilku dni zacząłem bawić się kernelem. Na razie ogranicza się to do tego, że sprawdzam jak sprawuje się system z pojedynczymi opcjami.
Wyczytałem gdzieś na tym forum, że nie powinno się używać configa z wersji distro, co obecnie robię, a na początek trzeba stworzyć config odpowiadający mojemu hardware. No i zbliżamy się do sedna. Jak stworzyć taki config?
Offline
http://forum.dug.net.pl/viewtopic.php?pid=225481#p225481
Linki w poście i posty niżej.
Offline
A więc są 3 opcje, które mnie zainteresowały, ale mam problem z dokładnym ich odróżnieniem. Mianowicie:
make localmodconfig - This option creates a config file based on the current list of loaded modules and system configuration. make localyesconfig - This will set all module options to yes - most of the kernel will be in module make defconfig - This option creates a config file that uses default settings based on the current system's architecture.
Zacznijmy od pierwszego. localmodconfig jak idzie przetłymaczyć tworzy config oparty na liście aktualnie załadowanych modułów i konfiguracji systemu. Jeżeli lecę na kernelu z configiem distro aktualnie może być załadowana masa niepotrzebnych modułów, więc użycie tej opcji mi nie pomoże.
localyesconfig - z opisu wynika, że stworzy mi config, który będzie miał ustawioną wartość yes dla każdego modułu. Co mam rozumieć poprzez każdy moduł?
defconfig - stworzy mi config na podstawie architektury systemu i ustawieniami domyślnymi.
Z opisów tych komend wynika, że najlepszy byłby defconfig natomiast z linków, które mi podałeś wynika, że ludzie używają localyesconfig. Jestem nieco zmieszany. Możesz mi to rozjaśnić?
Offline
localmodconfig
Uzywane sterowniki ustawia jako ładowalne moduły.
localyesconfig
Ustawia te same sterowniki na sztywno.
Nie da ich sie ich wyladować.
Może mieć kolosalne znaczenie gdy musimy definiować paramety modułu stosownie do sprzętu.
Karty dźwiękowe,telewizyjne u mnie nawet sterownik sata ,
Tego trzeciego nigdy nie używałem.Nie wiem dokładnie.
Offline
Na stałe radzę dawać tylko to, co jest niezbędne do podniesienia systemu, systemy plików, kontroler dysku, chipsetu, pamięci RAM, procesora, obrazu w konsoli.
Z resztą przyjdzie czas, nie wszystkie rzeczy działają dobrze, jeśli sterownik jest wbudowany na sztywno, inne zaś działają stabilniej i przewidywalniej, nie ma na to reguły.
Po kilku kernel-panikach, i kilku działających kernelach, już będzie jasne, co warto wbudować w jajo, a co zostawić, jako moduł ładowalny.
Może mieć kolosalne znaczenie gdy musimy definiować paramety modułu stosownie do sprzętu.
U mnie klika modułów wbudowanych na stałe łapała ustawienia opcji z /etc/modprobe.d/*, ale na to też nie ma reguły, trzeba sprawdzić lub poszukać ino dla konkretnego modułu.
Np nigdy na kolejnych 2 płytach głównych nie miałem problemu z modułem HDA-Intel wbudowanym na sztywno, z kernelami dystrybucyjnymi kilka razy miałem jakieś zabawy z opcjami przy ładowaniu tego modułu.
Ostatnio edytowany przez Jacekalex (2013-09-20 21:16:56)
Offline
Powiedzcie mi jeszcze, jak dodać poszczególne moduły, aby te ładowały się na sztywno?
Generalnie mam takie załadowane moduły na moim serwerze:
root@s3:~# lspci -k | egrep -i 'driver|modules' Kernel driver in use: ohci_hcd Kernel driver in use: ohci_hcd Kernel driver in use: ehci_hcd Kernel driver in use: piix4_smbus Kernel driver in use: pata_serverworks Kernel driver in use: tg3 Kernel driver in use: tg3 Kernel driver in use: aacraid
Z tego co mówisz, na początek warto spróbować z:
Kernel driver in use: piix4_smbus Kernel driver in use: pata_serverworks Kernel driver in use: aacraid
wbudowanymi w jądro, tak?
Ostatnio edytowany przez fifka (2013-09-20 21:40:42)
Offline
W
make menuconfig
Wyszukiwarkę masz pod /
Jeśli na sztywno to zaznaczasz je * jeśli moduły to M
Offline
Rozumiem. Teraz, mam nadzieje, ostatnie glupie pytanie. Jaka jest roznica w ladowaniu sterownika na sztywno a jako modulu? Moj serwer to dedyk i nie widzi mi sie zepsucie lub nie zaladowanie sie sterownika od eth, bo kvm swoje kosztuje.
Ostatnio edytowany przez fifka (2013-09-20 22:08:07)
Offline
To sobie kernel na jakiejś wirtualnej najpierw sprawdź.
Offline
Z miejscem slabo na takie kombinacje. Generalnie sterownik na sztywno laduje sie przy starcie systemu a jako modul po starcie, tak?
Offline
to i ja mam pytanie, a mianowicie jak skompilować krenela z taką flagą -mtune=amdfam10
Offline
Na sztywno nie ładuje się po starcie gdyż jest już w obrazie jadra wkompilowany.
Jeśli jest zaś jako moduł to rozruch rozpoczyna się od initrd potem część jest ładowana przez udev ,część jest zdefiniowana w skryptach startowych i plikach konfiguracyjnych.
Offline
Tak, ale zeby zaladowal sie jako modul to musze fizycznie uteorzyc jakis skrypt/dodac do initrd czy robi sie to automatycznie gdy wybiore M w menuconfig?
Offline
Nic nie musisz robić.
W make menuconfig zaznaczasz które sterowniki przy kompilacji kernela zostaną wkompilowane na stałe w obraz jądra ,które jako ładowalne moduły albo wcale nie zostaną skompilowane.
Offline
--initrd takiej opcji trzeba użyć jeśli kompilujesz z wykorzystaniem make-kpkg
Offline
Mhm. Teraz wszedłem w make menuconfig i zacząłem szukać np. ehci_hcd. Pokazują mi się wszystkie opcje, które zawierają ten ciąg znaków. Nie widzę, w którym miejscu mogę wybrać pomiędzy * a M. Dodam, ze wersja kernela to 2.6.33.9
Ostatnio edytowany przez fifka (2013-09-21 11:03:23)
Offline
Niektóre sterowniki trzeba zaznaczyć globalnie jako jakaś "rodzina" dopiero potem dostępne są poszczególne "gałązki".
Offline
root@s3:~/kernel/linux-2.6.33.9# make localmodconfig using config: '.config' module xt_limit did not have configs CONFIG_NETFILTER_XT_MATCH_LIMIT module xt_multiport did not have configs CONFIG_NETFILTER_XT_MATCH_MULTIPORT module serio_raw did not have configs CONFIG_SERIO_RAW module aacraid did not have configs CONFIG_SCSI_AACRAID module pcspkr did not have configs CONFIG_INPUT_PCSPKR module ata_generic did not have configs CONFIG_ATA_GENERIC module joydev did not have configs CONFIG_INPUT_JOYDEV module i2c_piix4 did not have configs CONFIG_I2C_PIIX4 module pata_serverworks did not have configs CONFIG_PATA_SERVERWORKS
Co to oznacza?
Offline
Starszego kernelu to już nie było?
Offline
Były :) Staram się znaleźć najbardziej optymalne jądro pod hosting HLDS i utrzymanie 1000 fps na serwerze. Z tego co ludzie piszą w necie, lepiej nadają się do tego jądra w wersji 2.6.x
Offline
Offline
Jaki sens ma taki komentarz?
Offline
Taki, że u większości osób powodujesz uśmiech na twarzy.
Offline
Rozumiem, że jesteś głosem większości forumowej? Sorka, ale nie nadążam za tutejszymi zwyczajami. Jestem tu od wczoraj.
Tak czy inaczej, jak już wspominałem są to moje pierwsze zabawy z kernelem więc nie powinno Cię dziwić to co napiszę. Skoro sam tego nie przetestowałem, a gdzieś o tym czytałem to chyba logiczne, że najpierw chcę to sprawdzić, prawda? Nie wiem w jakim celu obnosisz się, ze swoją wyższością tutaj... Logiczne jest, że jestem początkujący i nie mam wiedzy a Ty nie wiem po jakiego grzyba to wyśmiewasz...
Offline