Gdzie są przechowywane bieżące opcje kompilacji jądra?

23

Czy istnieje sposób, aby dowiedzieć się, czy jądro zostało skompilowane z aktywowaną określoną opcją (tj. CONFIG_PROC_EVENTS=y) Bez konieczności wyciągania pakietu źródeł jądra i szukania pliku konfiguracyjnego?

Alicia
źródło

Odpowiedzi:

18

Jeśli przejrzysz swój /bootkatalog, zauważysz te pliki:

$ ls -l /boot/|grep config
-rw-r--r--  1 root root   109919 Oct 21  2011 config-2.6.35.14-100.fc14.x86_64
-rw-r--r--  1 root root   109919 Oct 27  2011 config-2.6.35.14-103.fc14.x86_64
-rw-r--r--  1 root root   109919 Nov 23  2011 config-2.6.35.14-106.fc14.x86_64

Zauważ, jakiej wersji jądra używasz:

$ uname -r
2.6.35.14-106.fc14.x86_64

Jeśli przejdziesz grepprzez odpowiedni uname -rplik „config- ”, zobaczysz, z jakimi opcjami jądro zostało zbudowane:

$ grep CONFIG_PROC_EVENTS= /boot/config-`uname -r`
CONFIG_PROC_EVENTS=y

Referencje

slm
źródło
4
Dotyczy to dystrybucji opartych na Debianie, ale może nie być prawdą w innych, np. Arch Linux.
Alicia,
1
@ntrrgc - Nie mogę potwierdzić dla ArchLinux, ale w ten sposób działa RedHat, Debian i Ubuntu. Te 3 dystrybucje obejmują większość świata * nix. Jeśli ktoś ma dystrybucję ArchLinux, czy możesz potwierdzić to podejście?
slm
4
Używam Arch Linux i mogę potwierdzić, że to nie działa w Arch Linux.
Alicia,
@slm nie dotyczy to nawet Ubuntu, przynajmniej Kubuntu. Właśnie sprawdziłem - jedyne, co mam, /boot/to grubkatalog.
Cześć Anioł
@slm może te konfiguracje są częścią jakiegoś pakietu? Wtedy wystarczyłoby wylistować pliki tego pakietu.
Hi-Angel,
14

Opcje jądra można znaleźć w /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

jeśli jądro zostało skompilowane CONFIG_IKCONFIG_PROC=y.

Alicia
źródło
6
Działa to tylko wtedy, gdy jądro jest skompilowane z zestawem CONFIG_IKCONFIG_PROC.
Bruce Ediger,
1
Nie działało to dla mnie na żadnej z dostępnych dystrybucji: Debian, oparty na RedHat, ani Ubuntu. Są to wszystkie systemy podstawowe, więc nie sądzę, aby to podejście było tak przydatne, chyba że sam zbudowałeś jądro lub nie zapewniło go to twoje konkretne środowisko dystrybucyjne.
slm
1
W jądrach dystrybucji opcja IKCONFIG może być włączona tylko jako moduł. Spróbuj modprobe configssprawdzić, czy pojawia się /proc/config.gz.
XZS
1

Jeśli twoje jądro zostało zbudowane CONFIG_IKCONFIG_PROC, możesz znaleźć konfigurację wymienioną w/proc/config.gz

zless /proc/config.gz

Pakiety jądra oparte na Debianie i Redhacie zazwyczaj instalują config-$versionplik /boot,

less /boot/config-$(uname -r)

W Debianie możesz także znaleźć domyślne opcje w kernel-package's, ./kernel/Config/configa także opcje konfiguracji specyficzne dla architektury w ./kernel/Config/.

mkdir /tmp/k
cd /tmp/k
apt-get source kernel-package
find . -path '*/kernel/Config/*' -type f
Evan Carroll
źródło
-1

sudo find / -xdev -name .config(-xdev utrzymuje go w jednym systemie plików)

Ogólnie będzie poniżej /usr/src/some-specific-kernel-header-version/.config

Po prostu przeczytaj go jako dowolny tekst, wyszukaj za pomocą grep lub zobacz, jak różnią się dwie wersje diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

Maksymalna moc
źródło