รับการกำหนดค่าเคอร์เนลจากระบบ Linux ที่ใช้อยู่ในปัจจุบัน?


107

ฉันตั้งใจลบ. config สำหรับการกำหนดค่าเคอร์เนลของฉันบน Linux และดูเหมือนว่าจะมีวิธีดึงการกำหนดค่าเคอร์เนลผ่านระบบไฟล์ proc อย่างใด

มันยังคงเป็นไปได้และถ้าเป็นเช่นนั้นฉันจะทำอย่างไร


@Sonny Ordell: ตอนนี้มีสองคำตอบที่ถูกต้อง คุณสามารถยอมรับหนึ่งในนั้นได้หรือไม่
Hennes

3
@Hennes Jun 27 '11 at 16:19ผู้ใช้ไม่ได้รับออนไลน์ตั้งแต่ อย่าคิดว่าเขาจะยอมรับอะไร
DanteTheEgregore

คำตอบ:


110

ขึ้นอยู่กับระบบของคุณคุณจะพบได้ใน:

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

และอาจมีสถานที่มากขึ้น


4
ในบาง distros (Fedora / Redhat) มัน /boot/config-2.6.18-194.el5 หรือคล้ายกันกับสตริงปล่อยเคอร์เนลผนวก
Phil

1
@Phil ผมทำงาน distro (Zenwalk) ที่ชื่อไฟล์เหล่านั้นจะถูก symlinked /boot/configโดยแพคเกจใหม่ล่าสุดที่จะเคอร์เนล ฉันจะไปข้างหน้าและเพิ่มเข้าไปในรายการ - ขอบคุณที่เตือนฉัน
new123456

ใน / boot / config - $ (uname -r) สำหรับ amazon linux และ RHEL ที่เป็นไปได้
aeb0

1
ไม่มีไฟล์ดังกล่าวใน Ubuntu Mate หรือ Kali Linux สำหรับ RaspBerry Pi
Sopalajo de Arrierez

1
คุณควรพูดถึงว่ารายการแรกของคุณ (/ proc) จะใช้ได้เฉพาะเมื่อโหลดโมดูล "configs" แล้ว
Andy

55

สำหรับเคอร์เนลที่ใช้งานจริงวิธีหนึ่งในการรับไฟล์กำหนดค่านี้คือ

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

หรือ,

zcat /proc/config.gz > running.config

จากนั้นrunning.configจะมีการกำหนดค่าของเคอร์เนลที่ใช้งาน linux

/proc/config.gzอย่างไรก็ตามเรื่องนี้จะเป็นไปได้ถ้าเคอร์เนลลินุกซ์ของคุณทำงานได้มีการกำหนดค่าที่จะมี การกำหนดค่าสำหรับสิ่งนี้อยู่ใน

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

การแจกแจงส่วนใหญ่ไม่มีชุดการกำหนดค่านี้ พวกเขามีไฟล์ config kernel ในแพ็คเกจ kernel และมักจะพบใน/boot/ไดเรกทอรี


5
สิ่งเหล่านี้เป็นที่รู้จักกันCONFIG_IKCONFIGและCONFIG_IKCONFIG_PROCถ้าคุณกำลัง grepping สำหรับพวกเขา
chronospoon

2
zcat /proc/config.gzทำงานได้ดี
Quanlong

37

สายไปหน่อย แต่อาจช่วยใครซักคน ฉันไม่มี/proc/config.gzและ/boot/configไม่มี/boot/config-$(uname -r)ในคอมพิวเตอร์ ฉันต้องวิ่งmodprobe configsตามรูท จากนั้น/proc/config.gzเป็นปัจจุบัน


สามารถยืนยันบน Intel MIC ฝังตัว Linux (BusyBox) สิ่งนี้เป็นสิ่งที่จำเป็นและใช้ได้ผล
Mark Lakata

4
เหมือนกันสำหรับ Raspbian บน Raspberry Pi 2
Drew McGowen

2
FATAL: Module configs not found.ใน OMV 2.2 (Debian Wheezy) ดีใจมากที่พวกเขาให้ไว้ใน / boot / config - $ (uname -r)
tuk0z

คุณช่วยชีวิตฉันไว้ มี +1
Christian

'modprobe configs' มีประโยชน์มากฉันมีการทดสอบที่ตรวจสอบ kconfig ที่ล้มเหลวใน Raspberry Pi 3 โดยอัตโนมัติ แต่ตอนนี้ใช้ได้แล้ว ขอบคุณสำหรับทิป!!
ทิมเบิร์ด

9

หากคุณไม่พบการกำหนดค่าเคอร์เนลใน / boot / หรือใน /proc/config.gz คุณสามารถลองแยกข้อมูลนี้ออกจากเคอร์เนลได้

ภายในซอร์สโค้ดเคอร์เนลใด ๆ มีสคริปต์สำหรับการแยกscripts/extract-ikconfigการกำหนดค่าที่อยู่ในผ่านเคอร์เนลที่คุณต้องการกำหนดค่าเป็นพารามิเตอร์ไปยังสคริปต์นี้

วิธีนี้จะใช้งานได้ต่อเมื่อKernel .config supportเปิดใช้งานในเคอร์เนลที่คอมไพล์แล้ว


2
สิ่งนี้มีประโยชน์อย่างมากและช่วยให้ฉันได้รับการกำหนดค่ามากมายที่ฉันไม่ได้คาดคิดมาก่อน ขอบคุณ!
selurvedu


1

สำหรับ RedHat-based distributions ไฟล์. config ของเคอร์เนลที่ไม่อยู่ในชั้นวางสามารถพบได้ด้วยคำสั่งcat /lib/modules/$(uname -r)/build/.configที่พร้อมใช้งานหลังจากแพ็คเกจ kernel-devel ถูกติดตั้งโดยใช้คำสั่ง:

yum -y install kernel-devel

โปรดทราบว่าด้วยการกระจาย Red Hat Enterprise Linux ที่แท้จริงคุณจะต้องเปิดใช้งานแหล่งเก็บข้อมูลเพื่อรับแพ็คเกจนี้ บน RHEL8 ให้ใช้คำสั่งต่อไปนี้เพื่อทำสิ่งนั้น:

subscription-manager repos --enable=rhel-8-for-x86_64-baseos-source-rpms
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.