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


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

Ссылки


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.