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/.
Jacekalex napisał(-a):
Jak potrzebujesz coś zmienić w konfigu kernela, przy metodzie klasycznej, wystarczy zaznaczyć co trzeba w konfigu, potem przekompilować kernel.
U mnie kompilacja trwa około 20-25 minut, przekompilowanie tego jajka po zmianie konfigu (na tych samych źródłach) najwyżej 2-3 minuty.
Pozdro
;-)
W ponownej kompilacji wykonujesz wszystkie komendy co w pierwszej , tak ??
make make install make modules
Powrócę jeszcze do mojego pytania na które nie uzyskałem odpowiedzi z postu 69
Jak wyświetlić jakiego modułu używa sprzęt nie podłączony do pci(lspci -k) tylko np do lsusb
I jeszcze jedno, mam listę modułów z lsmod i chciałbym dodać te moduły do configa . Było by fajnie gdyby nazwy były takie same w lsmod i w configu lecz nie są. Jak znaleźć odpowiedniki nazw w configu ?? Przez przypadek uzyskałem coś w tym stylu gdy wykonałem "make localyesconfig" i wywaliło mi errory w postaci "module battery did not have configs CONFIG_ACPI_BATTERY"
Ostatnio edytowany przez Pablik (2012-01-31 00:02:30)
Offline
Nie make modules tylko make modules_install.
Moduły do USB:
lsusb -tv
Co do modułów z lsmod, to lepiej użyj skryptu
/usr/src/linux/scripts/ver_linux
Jest w każdych źródłach kernela.
Ostatnio edytowany przez Jacekalex (2012-01-31 00:44:30)
Offline
Jacekalex napisał(-a):
Nie make modules tylko make modules_install.
hehe nie wiem czego ale mi działało ;P
Jacekalex napisał(-a):
Co do modułów z lsmod, to lepiej użyj skryptu
Kod:
/usr/src/linux/scripts/ver_linuxJest w każdych źródłach kernela.
Mógł byś bardziej objaśnić jak tego użyć i co to robi ?/
ok ogarnełem zwraca załadowane moduły
Modules Loaded cryptd aes_i586 aes_generic acpi_cpufreq mperf cpufreq_stats cpufreq_userspace cpufreq_powersave cpufreq_conservative parport_pc ppdev lp parport bridge rfcomm stp bnep bluetooth crc16 uinput binfmt_misc fuse loop joydev snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq snd_timer psmouse snd_seq_device arc4 ac battery snd power_supply acer_wmi ath9k mac80211 uvcvideo serio_raw videodev ath9k_common ath9k_hw i915 ath evdev sparse_keymap drm_kms_helper soundcore drm pcspkr i2c_algo_bit cfg80211 i2c_i801 i2c_core snd_page_alloc wmi video rfkill processor button ext3 jbd mbcache sd_mod crc_t10dif uhci_hcd ahci libahci libata ehci_hcd fan usbcore scsi_mod thermal thermal_sys usb_common
Skoro jest taki skrypt co zwraca to możne jest też taki co ustawia, liste modułów ??
Ostatnio edytowany przez Pablik (2012-01-31 00:54:28)
Offline
ArnVaker napisał(-a):
Jakby teraz na tym konfigu zrobił metodą debianową bez initrd, to też powinno banglać. :)
Niestety metodą debianową dalej wywala kernel panic, na tym samym configu .
Offline
Skoro jest taki skrypt co zwraca to możne jest też taki co ustawia, liste modułów ??
To właśnie robi lacalyesconfig (wbudowanie na stałe), lub localmodconfig (zaznacza jako moduły).
Wywoływane komendą np:
make localyesconfig
Offline
no tak ale chodziło mi żeby wczytywało moduły z pliku .
Mam jeszcze jeden problem, zauważyłem ze ten skrypt "/scripts/ver_linux" wyświetla listę modułów tylko tych które były montowane jak M (moduł), a jak można sprawdzić jakie moduły są aktualnie załadowane na sztywno ?
Jeszcze jedno pytanko, podczas startu systemu widać co się załadowało a gdzie wyskoczył error (tylko to trwa chwilkę o nie zdążę zobaczyć co tam jest), to pewnie jest gdzieś przechowywane w jakichś logach , możecie mi powiedzieć jak to odczytać
Ostatnio edytowany przez Pablik (2012-01-31 17:30:46)
Offline
Pablik napisał(-a):
no tak ale chodziło mi żeby wczytywało moduły z pliku .
Mam jeszcze jeden problem, zauważyłem ze ten skrypt "/scripts/ver_linux" wyświetla listę modułów tylko tych które były montowane jak M (moduł), a jak można sprawdzić jakie moduły są aktualnie załadowane na sztywno ?
.........
Czy w ogóle przeczytałeś wątek, który założyłeś?
Moduły zaznaczone na sztywno stają się integralną cześcią kernela, i wczytuję się razem z tym kernelem - wszystkie.
I wyładować ich się nie da, np:
modprobe -r snd-usb-audio
FATAL: Module snd_usb_audio is builtin
Lista tych modułów zaznaczonych na sztywno?
Może:
grep '=y' /boot/config-$(uname -r)
A dla konfigu w źródłach:
grep '=y' /usr/src/linux/.config
W ogóle bez grepa Linux nie jest już Linuxem ;)
RTFM:
man grep
Jeszcze jedno pytanko, podczas startu systemu widać co się załadowało a gdzie wyskoczył error (tylko to trwa chwilkę o nie zdążę zobaczyć co tam jest), to pewnie jest gdzieś przechowywane w jakichś logach , możecie mi powiedzieć jak to odczytać
Jeśli system się uruchomił do poziomu konsoli, to masz
dmesg
natomiast jeśli masz kernel-panic - to wisi na konsoli ostatni komunikat z tego kernel panic.
To takie 2 podstawowe i typowe przypadki.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-01-31 18:12:01)
Offline
znowu nie o to mi chodziło, podam ci przykład, np jak bym zaznaczył na sztywno sterowniki których nie potrzebuje (bo np w danej chwili mam odłączony sprzęt który korzysta z tego sterownika) to rozumiem ze jak sprzęt jest odłączy to krenel nie ładuje tych sterowników (czy ładuje mimo że sprzęt jest odłączony ?) chodzi mi o to żeby wyświetlić które sterowniki załadował . ROZMAWIAMY TERA TYLKO O STEROWNIKACH ŁADOWANYCH NA SZTYWNO (*)
Offline
ROZMAWIAMY TERA TYLKO O STEROWNIKACH ŁADOWANYCH NA SZTYWNO(*)
One nie są ładowane, one są cześcią kernela.
Jak wsiadasz do tramwaju, to nie ładujesz do niego osobno ucha a osobno lewego pułdupka, tylko wsiadasz cały, niepodzielnie.
I tak samo jest z modułami wbudowanymi na sztywno w kernel.
One nie są ładowane tylko wbudowane w kernel, są jego integralną częscią.
Linux - to jajo monolityczne z ładowalnymi modułami.
Sterowników, których nie potrzebujesz, po prostu nie zaznaczasz.
make localyesconfig
też wyłacza większość modułów kernela, zaznacza natomiast te, które są używane przez podłączone urządzenia.
Ostatnio edytowany przez Jacekalex (2012-01-31 18:20:23)
Offline
no i o to mi chodziło , wielkie dzięki ;)
Jeszcze jedno pytano, kiedy komputer się szybciej uruchamia jak są sterowniki ładowane na sztywno czy jako moduł ???
Chyba jak są na sztywno bo wtedy nie są ładowane tylko po prostu są, tak ??
Ostatnio edytowany przez Pablik (2012-01-31 18:20:46)
Offline
Pablik napisał(-a):
ArnVaker napisał(-a):
Jakby teraz na tym konfigu zrobił metodą debianową bez initrd, to też powinno banglać. :)
Niestety metodą debianową dalej wywala kernel panic, na tym samym configu .
Może initrd się automatycznie wygenerował? Nie żeby mi zależało na dociekaniu w czym problem, nigdy nie byłem zwolennikiem „metody Debiana”.
Pablik napisał(-a):
Jeszcze jedno pytano, kiedy komputer się szybciej uruchamia jak są sterowniki ładowane na sztywno czy jako moduł ???
Chyba jak są na sztywno bo wtedy nie są ładowane tylko po prostu są, tak ??
Generalnie tak, ale różnice są tak znikome, że nie warto sobie nimi głowy zawracać. Więcej się już zyskuje w przypadku przejścia z domyślnego initrd (~10MB) na minimalne (~2MB), a potem przy całkowitym się jego pozbyciu.
Offline
ArnVaker napisał(-a):
Pablik napisał(-a):
ArnVaker napisał(-a):
Jakby teraz na tym konfigu zrobił metodą debianową bez initrd, to też powinno banglać. :)
Niestety metodą debianową dalej wywala kernel panic, na tym samym configu .
Może initrd się automatycznie wygenerował? Nie żeby mi zależało na dociekaniu w czym problem, nigdy nie byłem zwolennikiem „metody Debiana”.
tak, automatycznie generują sie te 4 pliki do /boot/ , lecz po usunięciu initrd.img dalej wyskakuje kernel panic
Offline
Może trzeba jeszcze puścić update-grub, żeby nie próbował ładować initrd, którego nie ma?
Offline
ArnVaker napisał(-a):
Może trzeba jeszcze puścić update-grub, żeby nie próbował ładować initrd, którego nie ma?
tzn ja zrobiłem tak :
make-kpkg --revision=782:jajko kernel_image - wygenerował mi te 4 pliki w katalogu /boot/
update-initramfs -c -k 3.0.17 - Wygenerował mi ponownie initr
update-grub
i teraz usunąłem init'a i po przewaleniu jest kernel panic
Offline
Ale po co generujesz initrd, jak nie chcesz initrd? ;) Usuń initrd i potem dopiero daj:
update-grub
Offline
ArnVaker napisał(-a):
Ostatecznie sam kernel powinien być przy obu sposobach taki sam, tyle że z pakietami po prostu zachodu więcej.
może na początku teraz chwila,
pakiety się zbudowały i już jestem na tym kernelu
linux-2.6 (3.2.2-1~bpo60+2) squeeze-backports; urgency=low
* Non-maintainer upload.
* Enable PREEMPT and HZ=300
* rt: Disable
[ Ben Hutchings ]
* Rebuild for squeeze:
- Use gcc-4.4 for all architectures
- Disable building of udebs
- Monkey-patch Python collections module to add OrderedDict if necessary
— arturek <arturek@debian.domain> Tue, 31 Jan 2012 17:14:54 +0100
linux-2.6 (3.2.2-1) unstable; urgency=low
Offline
arturek napisał(-a):
może na początku teraz chwila,
Za każdym razem. Nie, że to trudne, tylko że to dodatkowa strata czasu. Po prostu zabawa w pakiety dłużej trwa.
Offline
ArnVaker napisał(-a):
Po prostu zabawa w pakiety dłużej trwa.
Można przyśpieszyć
budować tylko jedną wersje kernela dla danej architektury
powyłączać pozostałe tak jak ja rt
budować bez linux-doc oraz linux-manual
Offline
Oj, to o czym piszesz to już w ogóle kosmos. Ja miałem na myśli proste pakiety z make-kpkg. :) U mnie kompilacja kernela pod sprzęt, czyli na własnym dosyć minimalistycznym konfigu, trwa jakieś 4 minuty (Athlon 64 X2 5000+). Tworzenie pakietów i ich instalowanie to dodatkowe kilkanaście/kilkadziesiąt sekund i właśnie o tę różnicę mi chodziło. Kiedyś też robiłem pakiety, bo to po debianowemu i w ogóle… No ale dłużej trwa. :P
Offline
masz racje po debianowemu, trwa dłużej
Offline
Pablik napisał(-a):
no i o to mi chodziło , wielkie dzięki ;)
Jeszcze jedno pytano, kiedy komputer się szybciej uruchamia jak są sterowniki ładowane na sztywno czy jako moduł ???
Chyba jak są na sztywno bo M wtedy nie są ładowane tylko po prostu są, tak ??
Na wbudowanych w jajo korzyść jest jedna:
Każdy potrzebny moduł oznacza rozpoznanie po identyfikatorze urządzenia i zidentyfikować, o ktory moduł chodzi i który załadować.
Do tego osobne ładowanie initrd.
W praktyce to nie są jakieś istotne wartości, u mnie to zysk niecałych około sekundy, natomiast na stabilności wyraźny.
Zwlaszcza drobiazgi, jak bluetooth i karty dźwiękowe zaczeły chodzić bardziej przewidywalnie, (na dystrybucyjnym jaju w Debianie karty muz losowały sobie numerki, trzeba było gimnastyki w /etc/moules.d/alsa.conf).
Także osobiście wolę, żeby co się da, było w jaju.
Ceną jest wielkość kernela: -
U mnie: kernel domowy ma 3,8 - 3,9 M, Aptosidowy ma 2,4 M,
za to mój przy starcie ładuje 27 moduiłów, a Aptosidowy ponad 100.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-01-31 20:29:14)
Offline
Jacekalex napisał(-a):
Ceną jest wielkość kernela: -
U mnie: kernel domowy ma 3,8 - 3,9 M, prosidowy ma 2,4 M,
Kwestia konfiga… Poniżej 2M nawet bez "-Os" spokojnie można zejść.
Offline
ArnVaker napisał(-a):
......
Kwestia konfiga… Poniżej 2M nawet bez "-Os" spokojnie można zejść.
Pewnie że można, ale tak kombinować mi się nie chce :D
A i przy 4GB RAM 1,5-2M w te czy w tamte, wielkiej różnicy nie robi.
Ostatnio edytowany przez Jacekalex (2012-01-31 20:31:57)
Offline