ฉันจะรับไฟล์. config ของเคอร์เนล 11.04 ได้จากที่ใด


15

ฉันใช้ไม่ฝักใฝ่ฝ่ายใดกับเมล็ดล่าสุดที่มีอยู่ใน kernel.org และสร้างพวกเขาเอง จนถึงตอนนี้ฉันได้ใช้การกำหนดค่าของฉันออกจากเคอร์เนลที่ไม่ฝักใฝ่ฝ่ายใดและยอมรับmake oldconfigค่าเริ่มต้น ฉันได้ทำสิ่งนี้เพื่อวางจำหน่าย 3 รายการใหญ่ในขณะนี้ดังนั้นฉันจึงคิดว่าฉันเริ่มที่จะหลบอยู่หลัง "มาตรฐาน" ปัจจุบัน

ฉันต้องการนำเคอร์เนลออกจาก.configไฟล์Natty ใหม่ มีให้ใช้ที่ใดที่หนึ่งออนไลน์หรือฉันต้องดาวน์โหลดทั้งชุดเคอร์เนลและแตกไฟล์ออกมา?

แก้ไข: ฉันดึงการกำหนดค่าด้วยตนเองจากแพคเกจเคอร์เนล Natty ล่าสุดและฉันสามารถยืนยันได้ว่าฉันน่าจะทำได้เร็วกว่านี้ ความแตกต่างมากมายระหว่างการตั้งค่า "วิวัฒน์" แบบเก่าของฉันกับการเริ่มต้นของ Natty ตอนนี้ถ้าฉันสามารถทำได้โดยไม่ต้องล่าสัตว์ 20 นาทีและดาวน์โหลดแพคเกจเพื่อให้ฉันสามารถกลับฐานในอนาคต

คำตอบ:



30

แต่ละแพคเกจประกอบด้วยแฟ้มการกำหนดค่าที่แน่นอนว่ามันถูกสร้างขึ้นด้วยในlinux-image /boot/config-*หากต้องการดูไฟล์กำหนดค่าสำหรับเคอร์เนล Linux ที่กำลังทำงานให้ทำ:

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

ฉันได้ตรวจสอบกับคนที่ใช้เคอร์เนล Ubuntu (บน Freenode #ubuntu-kernel) และพวกเขายืนยันความเชื่อของฉันว่าไม่มี " การกำหนดค่า " แต่จริง ๆ แล้วมันถูกสร้างขึ้นเมื่อเวลาสร้าง / คอมไพล์โดยรวมKconfigไฟล์จำนวนหนึ่ง ขึ้นอยู่กับสถาปัตยกรรมและเป้าหมายที่แน่นอน (เดสก์ท็อป / เซิร์ฟเวอร์ / คลาวด์) คุณควรอ่านบทสนทนาสั้น ๆ ที่:

รายการของความหลากหลายนั้นสามารถพบได้โดยใช้packages.ubuntu.comและการค้นหาต่อไปนี้:

การล่าสัตว์รอบ ๆ ก็จะปรากฏว่า.configมีการรวมอยู่ในlinux-headers-*แพ็คเกจ นี่คือ.debไฟล์ (ซึ่งเป็น.arไฟล์เก็บถาวรแบบง่ายที่จะเปิดด้วยfile-roller) และแต่ละไฟล์มีเพียงประมาณ 800 kB หากคุณทราบเป้าหมายสถาปัตยกรรมและเวอร์ชั่นเฉพาะที่คุณต้องการคุณสามารถคว้าสิ่งเหล่านี้ได้โดยตรงจาก Launchpad หรือจากที่เก็บถาวร:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. จากนั้นดู /usr/src/linux-headers-2.6*/.config

หากคุณต้องการทำให้กระบวนการทั้งหมดเป็นคำสั่งเดียวโดยอัตโนมัติคุณสามารถลองทำสิ่งต่อไปนี้ ทำให้แน่ใจว่าคุณเก็บทุกอย่างไว้ในบรรทัดเดียว!

หวังว่าจะช่วย!


ขอขอบคุณที่ตรวจสอบสิ่งนี้ เมื่ออ่าน irclog แล้วดูเหมือนว่าฉันจะไม่ได้สิ่งที่ฉันต้องการหากไม่ได้ดาวน์โหลดอย่างมีนัยสำคัญ การทำงานอัตโนมัตินั้นยังง่ายกว่าที่จะคว้าแพ็คเกจและดึงข้อมูลออกมา/boot-config-*แทนที่จะพยายามเลียนแบบพ่อมดที่ใช้ในการสร้างอัตโนมัติในเวลาสร้าง มันเป็นความอัปยศที่ไม่มีวิธีการคว้าหนึ่งไฟล์จากแพคเกจออนไลน์ (หรือมี?)
Oli

ฉันคิดว่าฉันจะถามด้วยคำถามแยกต่างหาก
Oli


1

ที่เก็บเคอร์เนล Ubuntu git

debian/เมตาดาต้าที่มีการกำหนดค่าและต้นไม้เคอร์เนลมีการติดตามทั้งในพื้นที่เก็บข้อมูลคอมไพล์เดียวต่อข่าว: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

ซื้อคืนภาคแล้วมีแท็กสำหรับแพคเกจเคอร์เนลแต่ละเช่นในอูบุนตูของฉัน 18.04 ผมมีแพคเกจซึ่งผมคาดเดาสอดคล้องกับแท็ก:linux-image-4.15.0-36-genericUbuntu-4.15.0-36.39

https://help.ubuntu.com/community/Kernel/Compileอธิบายถึงวิธีการรวบรวมเคอร์เนลดังนั้นวิธีการกำหนดค่าและวิธีการรวมเข้ากับการกำหนดค่าสุดท้าย

การกำหนดค่าทั้งหมดดูเหมือนจะอยู่ภายใต้debian.master/config/ARCHซึ่งประกอบด้วย:

config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency

ดังนั้นฉันคาดเดาว่าlinux-image-4.15.0-36-genericจะผสานconfig.common.ubuntu, และconfig.common.amd64config.flavour.generic

สคริปต์ที่ทำการรวมน่าจะเป็นdebian / สคริปต์ / misc / kernelconfigและประกอบด้วยความคิดเห็น:

# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>

สิ่งที่ต้องทำ: นอกจากนี้ยังมีdebian.master/config/annotationsไฟล์ที่ดูเหมือนว่าจะมีค่าสำหรับแต่ละการกำหนดค่าสำหรับแต่ละส่วนโค้งวิธีการที่ใช้?

บางคนควรยืนยันสิ่งนั้นด้วยการรันสคริปต์การสร้างในโหมด verbose อย่างใด แต่ตอนนี้ฉันขี้เกียจคุณสามารถสร้างด้วย:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git linux
cd linux
git checkout Ubuntu-4.15.0-36.39
fakeroot debian/rules clean
debian/rules updateconfigs
fakeroot debian/rules build-generic

ฉันได้รับการยืนยันแล้วว่าสิ่งนี้สร้างการกำหนดค่าแบบเดียวกันกับที่ฉันมีในเครื่อง:

diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic

โปรดทราบว่า repo kernel kernel git ของ Ubuntu ยังมี patch มากมายที่อยู่เหนือสุดของ upstream Linux ดังนั้นการได้รับ config ที่ถูกต้องจะไม่เพียงพอที่จะทำให้เกิดพฤติกรรม

นอกจากนี้เรายังสามารถตรวจสอบสามครั้งว่าเคอร์เนลที่เราสร้างนั้นตรงกับแพ็คเกจที่ทำอยู่โดยดูที่จุดเริ่มต้นdmesgของการบู๊ตซึ่งประกอบด้วย:

[    0.000000] Linux version 4.15.0-36-generic (buildd@lgw01-amd64-031) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 (Ubuntu 4.15.0-36.39-generic 4.15.18)

กำหนดค่าใน .deb

ดังที่คนอื่น ๆ กล่าวถึงการกำหนดค่าเต็มรูปแบบขั้นสุดท้ายก็มีอยู่ภายใต้:

/boot/config-4.15.0-36-generic

ซึ่งสอดคล้องกับแต่ละภาพเคอร์เนล Linux:

/boot/vmlinuz-4.15.0-36-generic

ดังนั้นสำหรับรุ่นอื่น ๆ เราสามารถค้นหาแพ็คเกจที่มาจาก:

dpkg -S /boot/config-4.15.0-36-generic

ซึ่งจะช่วยให้:

linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic

จากนั้นคุณสามารถดาวน์โหลดได้.debจากhttps://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic และแตกไฟล์เพื่อรับการปรับแต่ง:

mkdir config
cd config
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
ar x linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
tar -xvf data.tar.xz
cat ./boot/config-4.15.0-36-generic

ทดสอบใน Ubuntu 18.04

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