ที่เก็บเคอร์เนล Ubuntu git
debian/
เมตาดาต้าที่มีการกำหนดค่าและต้นไม้เคอร์เนลมีการติดตามทั้งในพื้นที่เก็บข้อมูลคอมไพล์เดียวต่อข่าว: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
ซื้อคืนภาคแล้วมีแท็กสำหรับแพคเกจเคอร์เนลแต่ละเช่นในอูบุนตูของฉัน 18.04 ผมมีแพคเกจซึ่งผมคาดเดาสอดคล้องกับแท็ก:linux-image-4.15.0-36-generic
Ubuntu-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.amd64
config.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
/boot-config-*
แทนที่จะพยายามเลียนแบบพ่อมดที่ใช้ในการสร้างอัตโนมัติในเวลาสร้าง มันเป็นความอัปยศที่ไม่มีวิธีการคว้าหนึ่งไฟล์จากแพคเกจออนไลน์ (หรือมี?)