उबंटू गिट कर्नेल रिपॉजिटरी
debian/
मेटाडाटा जो कॉन्फ़िगरेशन शामिल है, और गिरी पेड़ रिहाई प्रति एक भी Git भंडार में दोनों ट्रैक किए जाते हैं: 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
।
मर्जिंग करने वाली स्क्रिप्ट डिबियन / स्क्रिप्ट्स / misc / k गिरीकॉनफिग लगती है और इसमें टिप्पणी होती है:
# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>
TODO: एक ऐसी debian.master/config/annotations
फाइल भी है जिसमें लगता है कि प्रत्येक आर्च के लिए प्रत्येक कॉन्फिगर का मान है, उसका उपयोग कैसे किया जाता है?
किसी को इस बात की पुष्टि करनी चाहिए कि किसी तरह वर्बोज़ मोड में बिल्ड स्क्रिप्ट चलाकर, लेकिन मैं अब आलसी हूं, आप इसके साथ निर्माण कर सकते हैं:
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
ध्यान दें कि उबंटू कर्नेल गिट रेपो में भी अपस्ट्रीम लिनक्स के शीर्ष पर हजारों पैच होते हैं, इसलिए सिर्फ सही कॉन्फ़िगरेशन प्राप्त करना व्यवहार को पुन: उत्पन्न करने के लिए पर्याप्त नहीं होगा।
हम यह भी जाँच सकते हैं कि हमने जो कर्नेल बनाया था 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
जो प्रत्येक लिनक्स कर्नेल छवि के अनुरूप है:
/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
और फिर आप बस https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic.deb
से डाउनलोड कर सकते हैं
और इसे प्राप्त करने के लिए निकाल सकते हैं:
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
उबुन्टु 18.04 में परीक्षण किया गया।
/boot-config-*
बिल्ड-टाइम में उन्हें ऑटोजेन का उपयोग करने वाले विज़ार्ड का अनुकरण करने की कोशिश से निकालने के लिए आसान है। यह शर्म की बात है वहाँ नहीं एक पैकेज ऑनलाइन से एक फ़ाइल हथियाने का एक तरीका है है (या नहीं है?)