11.04 çekirdek .config dosyasını nereden bulabilirim?


15

Maverick'i kernel.org'daki en son çekirdeklerle kullanıyorum ve kendim inşa ediyorum. Şimdiye kadar yapılandırmamı stok Maverick çekirdeğine dayandırıyorum ve make oldconfigvarsayılanları kabul ediyorum . Şimdi 3 büyük sürüm için bunu yapıyorum, bu yüzden mevcut "standart" arkasında kaymaya başlıyoruz anlıyorum.

Çekirdeklerimi yeni Natty .configdosyasından yeniden temel almak istiyorum . Bu çevrimiçi bir yerde mevcut mu veya tüm çekirdek paketini indirip çıkarmam gerekiyor mu?

Düzenleme: El ile en son Natty çekirdek paketinden config çekti ve muhtemelen bu erken yapmalıyım teyit edebilirim. Eski "evrimleşmiş" konfigürasyonum ve Natty varsayılanları arasında çok fazla fark var. Şimdi bunu 20 dakika avlanmadan ve paketi indirmeden yapabilseydim, böylece gelecekte tekrar temel alabilirim.

Yanıtlar:



30

Her linux-imagepaket içinde oluşturulduğu yapılandırma dosyasını içerir /boot/config-*. Şu anda çalışan Linux çekirdeğinin yapılandırma dosyasını görmek için şunları yapın:

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

Ben (Freenode Ubuntu çekirdek insanlarla kontrol ettikten #ubuntu-kernel) ve onlar "gerçekten olmadığını inancımı doğruladı yapılandırma", ama aslında bir takım dahil ederek inşa / derleme zamanında inşa edilmiştir dosyalar; bunlar kesin mimariye ve hedefe (masaüstü / sunucu / bulut) bağlıdır. Bu (kısa) konuşmayı şu adreste okuyabilmelisiniz:Kconfig

Bu çeşitliliğin bir listesi Packages.ubuntu.com ve aşağıdaki arama kullanılarak bulunabilir :

Avcılık, etrafta, paketlere .configde dahil olduğu görülüyor linux-headers-*. Bunlar, .deb( .araçılacak basit arşivler file-roller) ve her biri sadece yaklaşık 800 kB'dir. Arkanızdaki belirli hedefi, mimariyi ve sürümü biliyorsanız, bunları doğrudan Launchpad'den veya arşivin kendisinden alabilirsiniz:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. o zaman içeri bak /usr/src/linux-headers-2.6*/.config

Tüm işlemi tek bir komutta otomatikleştirmek istiyorsanız, aşağıdakileri deneyebilirsiniz; hepsini tek bir satırda tuttuğunuzdan emin olun!

Umarım yardımcı olur!


Bunu araştırdığınız için teşekkürler. Irclog'u okuduktan sonra, önemli bir indirme yapmadan istediğimi alacağım gibi görünmüyor. Otomasyon açısından, paketi kapmak ve ayıklamak için /boot-config-*kullandıkları sihirbazı taklit etmeye çalışmaktan daha kolay . Çevrimiçi bir paketten bir dosya yakalamanın bir yolu olmadığına dair bir utanç (ya da var mı?)
Oli

Bence bunu ayrı bir soruda soracağım.
Oli


1

Ubuntu git çekirdek deposu

debian/Yapılandırmaları içeren meta veriler ve çekirdek ağaç salınımı başına tek git deposunda hem izlenir: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

Repo sonra benim Ubuntu 18.04 her çekirdek paketi için bir etiket, örneğin vardır, ben pakete sahip linux-image-4.15.0-36-genericben etiketine karşılık gelir tahmin ediyorum,: Ubuntu-4.15.0-36.39.

https://help.ubuntu.com/community/Kernel/Compile , çekirdeğin nasıl derleneceğini ve dolayısıyla nasıl yapılandırılacağını ve yapılandırmaların son yapılandırmayla nasıl birleştirileceğini açıklar.

Konfigürasyonların tümü, aşağıdakileri debian.master/config/ARCHiçeren görünüyor :

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

bu yüzden bunu tahmin ediyorum linux-image-4.15.0-36-genericirade birleştirme config.common.ubuntu, config.common.amd64ve config.flavour.generic.

Birleştirmeyi yapan komut dosyası debian / scriptler / misc / kernelconfig gibi görünüyor ve yorumu içeriyor:

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

YAPILACAKLAR: debian.master/config/annotationsher kemer için her yapılandırma için değer içeren bir dosya da var, bu nasıl kullanılıyor?

Birisi bir şekilde ayrıntılı modda derleme komut dosyaları çalıştırarak bunları doğrulamalıdır, ancak şimdi tembelim, şunları yapabilirsiniz:

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

Daha sonra bu yerel olarak sahip olduğum aynı yapılandırmayı üreten doğruladı:

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

Ubuntu çekirdeği git repo'sunun da yukarı akış Linux'un üzerinde binlerce yaması olduğunu unutmayın, bu nedenle sadece doğru yapılandırmayı elde etmek davranışı yeniden oluşturmak için yeterli olmayacaktır.

Ayrıca, oluşturduğumuz çekirdeğin dmesg, aşağıdakileri içeren önyüklemenin başlangıcına bakarak paketlenmiş olanla eşleştiğini üç kez kontrol edebiliriz :

[    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)

Yapılandırma .deb

Başkaları tarafından belirtildiği gibi, son tam yapılandırma ayrıca şu şekilde de bulunur:

/boot/config-4.15.0-36-generic

her Linux çekirdeği görüntüsüne karşılık gelen:

/boot/vmlinuz-4.15.0-36-generic

Yani, diğer versiyonlar için, bunların hangi paketten geldiğini bulabiliriz:

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

hangi verir:

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

ve sonra sadece indirebilirsiniz .debgelen https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic ve yapılandırma almak için ayıklamak:

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'te test edildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.