Onde posso obter o arquivo .config do kernel 11.04?

15

Estou usando o Maverick com os kernels disponíveis mais recentes no kernel.org e construindo-os eu mesmo. Até agora, baseei minha configuração no kernel Maverick make oldconfigpadrão e aceitei os padrões. Eu venho fazendo isso há três grandes lançamentos agora, então acho que estou começando a ficar para trás do "padrão" atual.

Gostaria de re-basear meus kernels no novo .configarquivo Natty . Está disponível em algum lugar online ou tenho que baixar o pacote inteiro do kernel e extraí-lo?

Edit: Eu puxei manualmente a configuração do último pacote do kernel Natty e posso confirmar que provavelmente deveria ter feito isso antes. Muitas diferenças entre minha antiga configuração "evoluída" e o padrão Natty. Agora, se eu pudesse fazer isso sem 20 minutos de busca e download do pacote, para que eu pudesse me basear novamente no futuro.

Oli
fonte

Respostas:

30

Cada linux-imagepacote contém o arquivo de configuração exato com o qual foi criado /boot/config-*. Para ver o arquivo de configuração do kernel Linux em execução no momento, faça:

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

Eu verifiquei com o pessoal do kernel do Ubuntu (no Freenode #ubuntu-kernel) e eles confirmaram minha crença de que não existe realmente " a configuração", mas na verdade ela é construída em tempo de compilação / compilação, incluindo vários Kconfigarquivos; isso depende da arquitetura exata e do destino (desktop / servidor / nuvem). Você deve ler essa conversa (curta) em:

Uma lista dessa variedade pode ser encontrada usando packages.ubuntu.com e a seguinte pesquisa:

Caçando, ao redor, parece que o .configtambém está incluído nos linux-headers-*pacotes. Estes são .debarquivos (que são .ararquivos simples que serão abertos file-roller) e têm apenas cerca de 800 kB cada. Se você conhece o destino, a arquitetura e a versão específicos que você procura, pode obtê-los diretamente no Launchpad ou no próprio arquivo morto:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. então olhe /usr/src/linux-headers-2.6*/.config

Se você deseja automatizar todo o processo em um comando, tente o seguinte; certifique-se de manter tudo em uma linha!

Espero que ajude!

sladen
fonte
Obrigado por investigar isso. Depois de ler o irclog, não parece que vou conseguir o que quero sem um download significativo. Em termos de automação, ainda é mais fácil pegar o pacote e extraí-lo do /boot-config-*que tentar imitar a magia que eles usam para gerá-los automaticamente no momento da construção. É uma pena que não há uma maneira de pegar um arquivo de um pacote on-line (ou há?)
Oli
Acho que vou fazer isso em uma pergunta separada.
Oli
4

No meu sistema Ubuntu 11.10, a configuração do kernel está no arquivo '/boot/config-3.0.0-12-generic'.

Marat BN
fonte
1
A pergunta é para 11.04, não 11.10.
Christopher Kyle Horton
1

Repositório do kernel do git do Ubuntu

Os debian/metadados que contêm as configurações e a árvore do kernel são rastreados em um único repositório git por release: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

A repo em seguida, tem uma tag para cada pacote kernel, por exemplo, no meu Ubuntu 18.04, eu tenho o pacote linux-image-4.15.0-36-generic, que eu estou supondo que corresponde à tag: Ubuntu-4.15.0-36.39.

https://help.ubuntu.com/community/Kernel/Compile explica como compilar o kernel e, portanto, como configurá-lo e como as configurações são mescladas na configuração final.

Todas as configurações parecem estar embaixo das debian.master/config/ARCHquais contém:

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

então eu acho que isso linux-image-4.15.0-36-genericirá se mesclar config.common.ubuntu, config.common.amd64e config.flavour.generic.

O script que faz a mesclagem parece ser debian / scripts / misc / kernelconfig e contém o comentário:

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

TODO: também existe um debian.master/config/annotationsarquivo que parece conter o valor de cada configuração para cada arco, como isso é usado?

Alguém deve confirmar tudo isso executando scripts de construção no modo detalhado de alguma forma, mas agora estou com preguiça, você pode construir com:

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

Confirmei que isso produz exatamente a mesma configuração que tenho localmente:

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

Observe que o repositório git do kernel do Ubuntu também possui milhares de patches no Linux upstream, portanto, apenas obter a configuração correta não será suficiente para reproduzir o comportamento.

Também podemos verificar três vezes se o kernel que construímos corresponde ao pacote, observando o início da dmesginicialização, que contém:

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

Config no .deb

Conforme mencionado por outros, a configuração completa final também está presente em:

/boot/config-4.15.0-36-generic

que correspondem a cada imagem do kernel do Linux:

/boot/vmlinuz-4.15.0-36-generic

Portanto, para outras versões, podemos descobrir de qual pacote elas vêm:

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

que dá:

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

e então você pode apenas baixar o .debde https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic e extraí-lo para obter o config:

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

Testado no Ubuntu 18.04.

Ciro Santilli adicionou uma nova foto
fonte