Где хранятся текущие параметры сборки ядра?

23

Есть ли способ узнать, было ли ядро ​​скомпилировано с определенной активированной опцией (то есть CONFIG_PROC_EVENTS=y) без необходимости извлекать пакет с исходными кодами ядра и смотреть в файле конфигурации?

Алисия
источник

Ответы:

18

Если вы посмотрите в свой /bootкаталог, вы увидите эти файлы:

$ 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

Обратите внимание, какую версию ядра вы используете:

$ uname -r
2.6.35.14-106.fc14.x86_64

Если вы grepчерез соответствующий «config- uname -r» файл, вы можете увидеть, с какими опциями было построено ядро:

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

Ссылки

SLM
источник
4
Это верно в дистрибутивах на основе Debian, но может не быть верным в других, например, в Arch Linux.
Алисия
1
@ntrrgc - я не могу подтвердить для ArchLinux, но это так для RedHat, Debian и Ubuntu. Эти 3 дистрибутива охватывают большую часть мира * nix. Если у кого-то есть дистрибутив ArchLinux, можете ли вы подтвердить этот подход?
SLM
4
Я использую Arch Linux и могу подтвердить, что это не работает в Arch Linux.
Алисия
@ Это даже не верно для Ubuntu, по крайней мере, Kubuntu. Я только что проверил - единственное, что у меня есть, /boot/это grubкаталог.
Привет-ангел
@slm, возможно, эти конфиги являются частью какого-то пакета? Тогда будет достаточно перечислить файлы этого пакета.
Привет, Ангел,
14

Параметры ядра можно найти в /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

если ядро ​​было скомпилировано с CONFIG_IKCONFIG_PROC=y.

Алисия
источник
6
Это работает только если ядро ​​скомпилировано с установленным CONFIG_IKCONFIG_PROC.
Брюс Эдигер
1
Это не сработало для меня ни в одном из доступных мне дистрибутивов: Debian, RedHat или Ubuntu. Это все стандартные системы, поэтому я не думаю, что этот подход будет настолько полезен, если вы не соберете свое ядро ​​самостоятельно или ваш дистрибутив не предоставит его.
SLM
1
В ядрах дистрибутива опция IKCONFIG может быть включена только как модуль. Попробуйте modprobe configsи проверьте, появляется ли /proc/config.gz.
XZS
0

Если ваше ядро ​​было собрано с CONFIG_IKCONFIG_PROC, вы можете найти конфигурацию, указанную в/proc/config.gz

zless /proc/config.gz

Debian и Redhat пакетов ядра на основе вообще установить config-$versionфайл /boot,

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

В Debian вы также можете найти параметры по умолчанию в kernel-package, ./kernel/Config/configа также параметры конфигурации, специфичные для архитектуры, в ./kernel/Config/.

mkdir /tmp/k
cd /tmp/k
apt-get source kernel-package
find . -path '*/kernel/Config/*' -type f
Эван Кэрролл
источник
-1

sudo find / -xdev -name .config(-xdev хранит его в одной файловой системе)

Как правило, это будет под /usr/src/some-specific-kernel-header-version/.config

Просто прочитайте его как любой текст, выполните поиск с помощью grep или посмотрите, чем отличаются две версии diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

Максимальная мощь
источник