Uzyskać konfigurację jądra z aktualnie działającego systemu Linux?

104

Przypadkowo usunąłem .config dla konfiguracji jądra w systemie Linux i wydaje mi się, że pamiętam, że istnieje sposób na odzyskanie konfiguracji jądra za pośrednictwem systemu plików proc.

Czy to nadal możliwe, a jeśli tak, to jak mam to zrobić?

Sonny Ordell
źródło
@Sonny Ordell: Istnieją teraz dwie prawidłowe odpowiedzi. Czy możesz zaakceptować jedną z nich?
Hennes
3
@Hennes Użytkownik nie był online od tego czasu Jun 27 '11 at 16:19. Nie myśl, że on coś zaakceptuje.
DanteTheEgregore

Odpowiedzi:

107

W zależności od systemu znajdziesz go w jednym z poniższych:

  1. /proc/config.gz
  2. /boot/config
  3. /boot/config-$(uname -r)

i ewentualnie więcej miejsc.

nowy123456
źródło
4
W niektórych dystrybucjach (Fedora / Redhat) jest to /boot/config-2.6.18-194.el5 lub podobny, z dołączonym łańcuchem wersji jądra.
Phil
1
@Phil Prowadzę dystrybucję (Zenwalk), w której nazwy plików są dowiązane symbolicznie przez najnowszy pakiet jądra /boot/config. Dodam je do listy - dziękuję za przypomnienie.
new123456
w / boot / config - $ (uname -r) dla Amazon Linux i prawdopodobnie RHEL
aeb0
1
Brak takich plików w systemie Ubuntu Mate lub Kali Linux dla RaspBerry Pi.
Sopalajo de Arrierez
1
Powinieneś wspomnieć, że twój pierwszy element (/ proc) jest dostępny tylko wtedy, gdy załadowany jest moduł „configs”
Andy
54

W przypadku działającego jądra jednym ze sposobów uzyskania pliku konfiguracyjnego jest to

cat /proc/config.gz | gunzip > running.config

lub,

zcat /proc/config.gz > running.config

Następnie running.configbędzie zawierał konfigurację działającego jądra Linux.

Jest to jednak możliwe tylko wtedy, gdy działające jądro Linuksa zostało skonfigurowane /proc/config.gz. Konfiguracja tego znajduje się w

  • General setup
    • [*] Kernel .config support
      • [*] Enable access to .config through /proc/config.gz

Większość dystrybucji nie ma tej konfiguracji. Zapewniają pliki konfiguracyjne jądra w swoich pakietach jądra i zwykle znajdują się w /boot/katalogu.

Jarl
źródło
5
Są one znane jako CONFIG_IKCONFIGi CONFIG_IKCONFIG_PROC, jeśli się im życzysz.
chronospoon
2
zcat /proc/config.gzdziała w porządku.
Quanlong,
35

Trochę późno, ale może komuś to pomaga. Nie miałem /proc/config.gzani /boot/configani /boot/config-$(uname -r)na moim komputerze. Musiałem uruchomić modprobe configsjako root. Wtedy /proc/config.gzbył obecny

Thomas Sparber
źródło
Może potwierdzić na wbudowanym systemie Intel MIC (BusyBox), jest to konieczne i działa.
Mark Lakata
4
To samo dotyczy Raspbian na Raspberry Pi 2
Drew McGowen
2
FATAL: Module configs not found.na OMV 2.2 (Debian Wheezy) tak się cieszę, że dostarczyli go w / boot / config - $ (uname -r)
tuk0z 12.04.16
Panie, uratowałeś mi dzień. Miej +1
Christian
„Modprobe configs” jest bardzo pomocny. Miałem testy, które automatycznie sprawdzały kconfig, które zawiodły na Raspberry Pi 3, ale teraz działają. Dzięki za wskazówkę!!
Tim Bird
9

Jeśli nie możesz znaleźć konfiguracji jądra w / boot / ani w /proc/config.gz, możesz spróbować wyodrębnić te informacje z samego jądra.

Wewnątrz każdego kodu źródłowego jądra znajduje się skrypt do wyodrębnienia konfiguracji scripts/extract-ikconfig, przekaż jądro, którego konfigurację chcesz, jako parametr do tego skryptu.

To rozwiązanie będzie działać tylko wtedy, gdy Kernel .config supportzostało włączone w skompilowanym jądrze.

Ramast
źródło
2
Było to niezwykle pomocne i pomogło mi uzyskać wiele konfiguracji, których nie spodziewałem się zobaczyć. Dzięki!
selurvedu