Essencial(Inglês) núcleo) é em torno do qual todo o resto é construído. Isso é o que se chama Linux. Hoje em dia, a palavra Linux na vida cotidiana refere-se a um sistema operacional construído sobre ele, embora no bom sentido seja chamado de GNU/Linux (o kernel Linux e software do projeto GNU, que está em desenvolvimento há muitas décadas).

O Ubuntu usa um kernel fortemente corrigido, alguns dos quais adicionam recursos instáveis ​​e experimentais.

Cada versão do Ubuntu possui sua própria versão do kernel. As versões LTS a partir de 10.04 têm a oportunidade de atualizar o kernel para as versões incluídas nas versões mais recentes.

Versão UbuntuVersão do kernel
4.10 2.6.9
5.04 2.6.11
5.10 2.6.13
6.06 LTS 2.6.15
6.10 2.6.18
7.04 2.6.19
7.10 2.6.20
8.04 LTS 2.6.24
8.10 2.6.27
9.04 2.6.28
9.10 2.6.31
10.04 LTS 2.6.32
10.10 2.6.35
11.04 2.6.38
11.10 3.0.4
12.04 LTS 3.2
12.10 3.5
13.04 3.8
13.10 3.11
14.04 LTS 3.13
14.10 3.16
15.04 3.19

Garfos

A numeração das versões do kernel no Ubuntu e no site kernel.org não corresponde, já que os desenvolvedores da Canonical adicionam uma microversão para indicar os patches adicionados. Por exemplo, a versão 3.2.0-23 significaria que o kernel é baseado na ramificação 3.2, que recebeu 23 patches.

Os seguintes tipos de kernel são suportados no repositório Ubuntu:

O kernel generic-pae permite que o sistema de 32 bits use até 64 GB volume total RAM, alocando no máximo 4 GB para as necessidades de um processo específico, enquanto um kernel genérico simples funciona com no máximo 4 GB de RAM.

O kernel de 64 bits permite endereçar até 1 TB de memória consumida pelos processos.

Se você precisar atualizar o kernel para uma versão principal mais recente (geralmente isso se deve ao fato de que novas versões adicionam suporte para novo hardware e eliminam regressões), você pode usar o arquivo oficialmente suportado http://kernel.ubuntu.com/ ~kernel-ppa/mainline/ .

Compilando o kernel

Construir o kernel a partir do código-fonte requer algumas habilidades e conhecimento de como o sistema operacional funciona.

Antes de começar a construir o kernel, você deve instalar os seguintes pacotes:

Fakeroot essencial para construção ncurses-dev libssl-dev

Todas as outras ações devem ser executadas em nome do superusuário:

sudo su

Obtendo o código-fonte

O código fonte do kernel usado no Ubuntu pode ser obtido instalando o pacote linux-source:

apt-get install linux-source

Após a instalação no diretório /usr/src um arquivo aparecerá chamado linux-source-verify_kernel.tar.bz2.

Você também pode baixar o arquivo com o código-fonte do kernel no site kernel.org.

Ao baixar o kernel do kernel.org, você terá que aplicar patches nele

Configuração

Descompacte o arquivo resultante e, por conveniência, crie um link simbólico para o diretório resultante:

cd / usr/ src tar xjf ./ linux-source-3.2.0.tar.bz2 ln -s ./ linux-source-3.2.0 ./ linux cd ./ linux

Para simplificar o processo de configuração do kernel, você pode copiar as configurações do atual.

Linuxé o kernel do sistema operacional. Ubuntu- Esse sistema operacional construído no kernel Linux. Grosso modo, o kernel Linux é o “cérebro” de todo o sistema operacional, que controla o funcionamento dos dispositivos entre si.

Por que você precisa atualizar o kernel no Ubuntu?

Nada fica parado, todas as tecnologias avançam e se desenvolvem. Estão sendo lançados novos processadores, chipsets e outros componentes que requerem suporte do sistema operacional para funcionar corretamente.

Para usuários particularmente avançados, o sistema operacional Linux permite reconstruir o kernel para atender às suas necessidades a partir do código-fonte. Neste caso, você pode obter alguns ganhos de desempenho eliminando componentes desnecessários, mas este é um processo bastante longo que requer algum conhecimento adicional.

Este artigo sugere atualizar o kernel do sistema no Ubuntu sem compilar o kernel do Linux a partir do código-fonte.

Um pouco de teoria

Segundo a Wikipedia, o nome do kernel contém o suficiente informações importantes, que não mostra apenas sua versão.

Normalmente o kernel é designado da seguinte forma: 2.6.33.3 , Onde:

  • primeiro número 2 - esta é uma versão do kernel que muda muito raramente,
  • segundo número 6 - esta é a versão mais antiga da revisão do kernel, onde números pares indicar versões estáveis, e números ímpares- versões de kernel não estáveis,
  • terceiro número 33 mudanças se drivers adicionais e melhorias tiverem sido adicionadas ao kernel,
  • quarto número 3 - este número muda se forem feitas pequenas correções, mas requer adição imediata.

Como determinar a versão do kernel instalado?

Para ver a versão do kernel instalado, você pode abrir Monitor do sistema ou digite no console:

Ambas as ações mostrarão a versão do kernel instalado.

Atualizando o kernel estável no Ubuntu

No site oficial do kernel Linux você pode ver a versão atual do kernel estável disponível. Se o kernel disponível tiver uma versão superior, você precisará atualizar o sistema operacional Ubuntu usando comandos padrão do repositório canônico oficial:

# sudo apt-get atualização && sudo apt-get atualização

Versões estáveis ​​de kernels são incluídas no repositório oficial do Ubuntu com boa regularidade.

Atualizando um kernel instável no Ubuntu

Em alguns casos, é necessário instalar uma versão do kernel que ainda não foi totalmente testada e está localizada na seção instável do kernel. A instalação de um kernel instável no Ubuntu é necessária, por exemplo, para o correto funcionamento de um novo dispositivo.

Não existe um repositório completo para a versão instável do kernel, como existe para outros aplicativos Ubuntu. Isso é feito por razões de segurança e estabilidade da distribuição Ubuntu.

Para atualizar tal kernel no Ubuntu, você precisa baixar 3 pacotes deb, que estão localizados aqui: http://kernel.ubuntu.com/~kernel-ppa/mainline, onde você pode selecionar qualquer versão disponível.

Os pacotes devem ser baixados de acordo com a classificação da sua distribuição (i386 - para 32 bits, amd64 - para 64 bits):

  • cabeçalhos linux- ... _i386.deb
  • cabeçalhos linux ... _all.deb
  • linux-image-..._i386.deb

Depois disso, instale manualmente os pacotes baixados e reinicie o computador.

Observação:

Nossas amadas mulheres sempre esperam de nós sinais de atenção. Por exemplo, você pode dar a uma mulher um lindo pingente de designer. O preço não é tão alto e tem muito brilho. As joias são vendidas na Internet em grandes quantidades Sites da Internet. Portanto, sempre há uma escolha. O melhor presenteé um presente feito de coração.

Você também pode surpreender uma garota dando-lhe um orgasmo prolongado, sobre o qual você pode ler no site kamasutra21veka.ru

7 artigos aleatórios:

Comentários

  1. Sergei Lukonin
    30 de abril, 16h20

    É mais fácil atualizar o kernel via Ubuntu-Tweak então)

  2. Dmitri
    14 de maio, 14h39
  3. Mut@NT
    16 de maio, 12h14

    Dmitri: Meu kernel é 2.6.32-22 genérico e no site é 2.6.33.4. Executei o comando que você escreveu, atualizei algo lá, mas a versão do kernel permaneceu a mesma. Qual é a piada?

    Você só precisa baixar 3 pacotes e instalá-los no sistema.

    No Grub, por padrão, a inicialização com o novo kernel é colocada na linha superior, incl. Ele inicializará automaticamente com o novo kernel.

    P.S. Talvez os pacotes ainda não tenham sido instalados?

  4. Dmitri
    16 de maio, 17h46

    Quero dizer, atualizar o kernel estável.
    “No site oficial do kernel Linux você pode ver a versão atual do kernel estável disponível. Se o kernel disponível tiver uma versão superior, você precisará atualizar o sistema operacional Ubuntu usando comandos padrão do repositório canônico oficial: # sudo apt-get update && sudo apt-get upgrade”
    Eu fiz isso, mas o kernel não foi atualizado. É possível que o kernel estável, listado no site http://kernel.org/, ainda não esteja incluído no repositório Canonical?

  5. Mut@NT
    19 de maio, 06:38

    Dmitri: Quero dizer, atualizar o kernel estável. “No site oficial do kernel Linux você pode ver a versão atual do kernel estável disponível. Se o kernel disponível tiver uma versão superior, você precisará atualizar o sistema operacional Ubuntu usando comandos padrão do repositório oficial da Canonical: # sudo apt-get update && sudo apt-get upgrade” Fiz isso, mas o kernel não foi atualizado. É possível que o kernel estável, listado no site http://kernel.org/, ainda não esteja incluído no repositório Canonical?

    Vale a pena esperar, eles provavelmente irão ligá-lo em breve. Você pode ver o link fornecido na postagem. Lá acho que você encontrará o que procura.

    Provavelmente vale a pena adicionar isso ao post.

  6. ainur101
    15 de agosto, 22h59

    Depois de atualizar o kernel de acordo com este esquema, alguns drivers falharam ((

  7. Mut@NT
    24 de agosto, 12h07

    ainur101: Depois de atualizar o kernel de acordo com este esquema, alguns drivers falharam

    Na versão mais recente do kernel, todas as funções do meu netbook foram finalmente concluídas. Nenhum problema foi notado. Em geral, ao instalar versões de teste do kernel, você deve se preparar para surpresas))

  8. Dmitri
    14 de março, 21h51

    Muito obrigado para o artigo. Deu tudo certo, meu 10.04 agora tem um 3º núcleo

  9. dima1978
    6 de fevereiro, 14h59

    Mas estou pensando que precisamos descobrir como criar um assembly que, quando instalado, compile automaticamente o kernel especificamente para uma determinada máquina e não instale um monte de módulos desnecessários

O kernel das distribuições Linux é a base do sistema operacional, que é responsável pela compatibilidade com os dispositivos e executa outras opções importantes. Agora os desenvolvedores estão tentando lançar atualizações do kernel a cada poucos meses ou até com mais frequência para introduzir novas funções e suporte para equipamentos fabricados. Este tópico também se aplica ao Ubuntu, portanto, alguns proprietários desta distribuição enfrentam a necessidade de instalar atualizações. Este procedimento é relativamente difícil de executar, pois cada ação será realizada através de "Terminal". A seguir, queremos demonstrar duas maneiras de lidar com essa tarefa.

O site oficial é chamado, que contém informações sobre cada atualização do kernel. É lá que você pode visualizar absolutamente todas as atualizações e alterações feitas na versão de seu interesse. Quanto ao processo de atualização em si, ele ocorre de forma manual ou automática. Cada uma destas opções tem as suas dificuldades e características próprias, pelo que nos propomos estudá-las detalhadamente, uma a uma, para finalmente decidirmos pela melhor. No entanto, primeiro vamos descobrir como descobrir a versão atual do kernel.

Determinando a versão atual do kernel no Ubuntu

A determinação da versão atual do kernel no Ubuntu ocorre através do padrão "Terminal" digitando apenas um comando. Você nem precisa de direitos de superusuário para fazer isso, e todo o processo levará apenas alguns segundos.


Agora você sabe qual kernel é usado em sua compilação e pode entender se vale a pena atualizar agora e de que tipo começar. No futuro, após concluir a instalação das atualizações, recomendamos usar este comando para determinar se os arquivos foram instalados corretamente.

Método 1: modo de atualização manual

O modo de atualização manual do kernel no Ubuntu demorará um pouco mais que o automático, mas ao mesmo tempo você terá variabilidade na escolha das versões e poderá até baixá-las antecipadamente de outro computador, por exemplo, para uma unidade flash. , se não houver conexão de rede no PC principal. Tudo que você precisa fazer é primeiro selecionar o assembly apropriado e usar os comandos fornecidos para instalá-lo.

  1. Abra seu navegador e acesse o link acima. Aqui você pode selecionar o primeiro diretório chamado "diário". Ele contém as versões mais recentes do kernel, atualizadas todos os dias. Caso contrário, basta rolar até o final da lista para encontrar a versão correspondente mais recente.
  2. Abra o diretório de versão para obter os pacotes DEB.
  3. Download "cabeçalhos Linux" E "imagem-linux" arquiteturas adequadas e versões idênticas em um local conveniente. Para fazer isso, basta clicar nos links azuis.
  4. Quando uma notificação sobre o processamento de arquivos aparecer, marque a caixa de seleção "Salvar arquivo".
  5. Navegue até o local dos pacotes baixados e clique com o botão direito em um deles.
  6. No menu de contexto que aparece, você está interessado no item "Propriedades".
  7. Observe a nota de rodapé "Pasta pai". Copie este caminho se achar difícil inseri-lo no console quando necessário.
  8. Agora inicie uma nova sessão em "Terminal", de onde navegue até a pasta de destino definida anteriormente digitando cd + path.
  9. Se a movimentação for bem-sucedida, o diretório atual aparecerá adicionalmente na nova linha de entrada, a partir da qual os comandos subsequentes serão executados.
  10. Use o comando dpkg -i *.deb para iniciar a instalação.
  11. Se você for notificado de que uma operação requer privilégios de superusuário, adicione sudo antes da linha principal.
  12. Para confirmar os direitos de superusuário, você precisará inserir uma senha. Observe que os caracteres não são exibidos durante a escrita, mas são inseridos. Depois de inserir sua senha, clique em Digitar para confirmação.
  13. Os arquivos existentes começarão a ser descompactados. Isso levará um certo período de tempo. Não interrompa sua sessão de terminal nem execute qualquer outra ação durante esta operação.
  14. Você será notificado de que a operação foi concluída com sucesso ou um erro poderá aparecer na tela indicando uma violação de dependência. Caso isso não aconteça, preste atenção apenas nas últimas ações seguindo instruções, e se a instalação for interrompida, serão necessárias manipulações adicionais.

Problemas com a instalação do kernel através de um gerenciador de pacotes padrão são uma situação comum. Na maioria dos casos, isso pode ser resolvido usando um instalador de terceiros. Primeiro, você deve adicioná-lo e depois usar as funções integradas.

  1. Você pode usar a mesma sessão "Terminal" ou crie um novo. Digite o comando sudo apt-get install gdebi nele e clique em Digitar.
  2. Para confirmar os direitos de acesso, você precisará inserir a senha de superusuário.
  3. Quando aparecer uma notificação indicando que seu espaço em disco está aumentando, selecione a opção D.
  4. Após isso, navegue novamente até o caminho onde os pacotes DEB foram colocados, por exemplo, através do comando cd ~/Downloads.
  5. Use a linha sudo gdebi linux-headers*.deb linux-image-*.deb .
  6. Aguarde até que os arquivos terminem de ser lidos e descompactados.
  7. Confirme a operação de instalação do pacote.
  8. Para aplicar todas as alterações, você precisará atualizar o bootloader digitando sudo update-grub .
  9. Você será notificado de que a atualização foi bem-sucedida.

Imediatamente após reiniciar o computador, todas as alterações entrarão em vigor. Agora você usará o sistema operacional no novo kernel. Se o bootloader quebrar repentinamente por algum motivo, consulte a seção no final deste material. Lá falaremos detalhadamente sobre as causas dos problemas e descreveremos o método de solução.

Método 2: atualização automática do kernel

Este método adequado para aqueles usuários que desejam receber atualizações regularmente, usando a mesma ferramenta que instala a versão mais recente do kernel em seus PCs. Esta operação é realizada por meio de um script. Vejamos como criá-lo e instalar atualizações para o kernel do Ubuntu.

  1. Primeiro, vá até a pasta onde o script será instalado. Inicie o console e digite o comando cd /tmp.
  2. Use o comando git clone git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater.
  3. Se você receber uma notificação de que uma equipe está faltando idiota, siga as recomendações de instalação fornecidas.
  4. Depois disso, resta escrever o script usando bash Ubuntu-Mainline-Kernel-Updater/install .
  5. Confirme a adição de arquivos selecionando opção positiva responder.
  6. A verificação de atualizações é iniciada por meio de KernelUpdateChecker -r yakkety . Observe que a filial -r usado para determinar a versão de distribuição. Especifique a opção de acordo com suas necessidades.
  7. Se forem encontradas atualizações do kernel, instale-as via sudo /tmp/kernel-update .
  8. Quando terminar, certifique-se de verificar o kernel ativo atual via uname -r e atualize o GRUB.

Agora, toda vez que precisar procurar atualizações do kernel, você pode usar o comando acima para executar a tarefa automaticamente. Tudo o que você precisa fazer é confirmar todos os avisos sobre a expansão do espaço ocupado em disco. Caso o script não seja mais necessário, é recomendado removê-lo do sistema usando os seguintes comandos:

rm ~/.config/autostart/KernelUpdate.desktop
sudo rm /usr/local/bin/KernelUpdate(Checker,ScriptGenerator)

Resolvendo problemas com o bootloader GRUB após uma atualização do kernel

Às vezes, durante a instalação das atualizações do kernel, ocorrem erros ou o próprio usuário concluiu a instalação dos arquivos na hora errada. Nessas situações, ocorre um problema em que o sistema operacional simplesmente para de carregar. Isto também se aplica aos proprietários de drivers proprietários da NVIDIA. Só existe uma solução: inicializar a partir do kernel antigo e remover o novo, seguido de reinstalação ou escolha de uma versão mais estável.

  1. Ligue o computador e pressione imediatamente a tecla Esc para ir para o menu de download. Use as setas para ir para um item "Opções avançadas para Ubuntu" e depois clique em Digitar.
  2. Encontre seu antigo kernel funcional aqui e selecione-o para download.
  3. Faça login no seu conta e depois de ativar o shell gráfico com êxito, inicie o console.
  4. Digite sudo apt remove linux-header-5.2* linux-image-5.2* onde 5.2 — versão do kernel instalado anteriormente.
  5. Forneça uma senha para conceder direitos de superusuário.
  6. Após a desinstalação bem-sucedida, atualize o bootloader via sudo update-grub .
  7. Você será notificado de que a geração do arquivo foi bem-sucedida e agora inicializará a partir do kernel antigo novamente.

Como parte do material de hoje, você aprendeu dois métodos para atualizar o kernel no Ubuntu. Como você pode ver, para implementar cada um deles você terá que realizar uma série de comandos do console, mas a escolha da opção em si depende das suas necessidades. Use as instruções fornecidas no final do artigo para resolver rapidamente quaisquer problemas de inicialização do PC após a instalação. nova versão grãos.

As informações disponíveis sobre a montagem do kernel variam muito, então descreveremos a montagem do kernel especificamente para Ubuntu. Vamos tentar. para que não haja erros nos comandos escritos neste artigo. Ao descrever o processo de compilação, não nos limitaremos apenas à obtenção do kernel. Obter um kernel funcional não é suficiente. Para proprietários de placas nVidia, aqui estará uma descrição de como obter um sistema com gráficos funcionais no novo núcleo. Além disso, os gráficos funcionarão tanto no kernel antigo quanto no novo.

1. Instalando fontes do kernel

Primeiro, precisaremos dos fontes do kernel. Para Ubuntu 7.04 eles já estão no repositório, você precisa encontrar o pacote linux-source-desperdício(no nosso caso será fonte-linux-2.6.20) e instale-o (tudo isso pode ser feito via Sináptico). Depois de instalar este pacto, no diretório /usr/src um arquivo com o nome aparecerá linux-source-2-6-20.tar.bz2.

Nós fazemos isso sob sudo equipe

chmod 777 /usr/src

Entramos no diretório como um usuário normal /usr/src e descompacte este arquivo

tar -jxvf linux-source-2-6-20.tar.bz2

Um diretório com fontes aparecerá /usr/src/linux-source-2-6-20. Excluímos o arquivo compactado (você precisará de direitos de root).

2. Instalação de pacotes acompanhantes

Você precisará de mais pacotes para montagem. pacote de kernel, libncurses5-dev, raiz falsa. Nós os instalamos via Sináptico. Claro, um compilador também deve estar instalado no sistema gcc E desenvolvedor- pacotes para bibliotecas de sistema, como libc6-dev.

3. Crie um arquivo de configuração do kernel

Agora precisamos da configuração do kernel com a qual o kernel do Ubuntu foi construído. Vá para o catálogo /bota, e vemos lá um arquivo como config-2.6.20-15-genérico. É disso que precisamos. Copie-o para o diretório de origem /usr/src/linux-source-2-6-20 e renomeie-o para .config. Observe que o nome do arquivo começa com um ponto, isso não é um erro de digitação.

Agora, estando no diretório /usr/src/linux-source-2-6-20, dê o comando como um usuário normal

Isso iniciará a interface de texto de configuração do kernel. Você também pode executar a configuração em modo gráfico

Em ambos os casos, será aberta uma interface com caixas de seleção, através das quais configuramos o kernel. Parece que por padrão o arquivo é aberto .config, que atualmente contém a configuração padrão do kernel do Ubuntu.

O que você deseja configurar - pense por si mesmo; há muita documentação em russo sobre esse assunto na Internet. O objetivo deste artigo é apenas descrever as ações reais executadas ao compilar o kernel do Ubuntu.

Ao final da configuração, selecione o item “Salvar configuração residual”, especifique um nome de arquivo diferente de .config, Por exemplo .config_my_01. Vamos sair.

Agora vamos renomear .config V .config_ubuntu. E você obtém dois arquivos - .config_ubuntu E .config_my_01. Você pode ver as diferenças entre o padrão e sua configuração, por exemplo assim

diff.config.config_my_01

Agora vamos copiar sua configuração .config_my_01 sob o nome .config. Aqueles. você receberá 3 arquivos de configuração. Ao compilar, o arquivo será usado .config. Arquivos .config_ubuntu E .config_my_01 eles nos ajudarão no futuro para uma nova compilação. Isso ocorre caso o novo kernel esteja inoperante ou com erros.

4. Compilação

Antes da compilação, certifique-se de verificar a disponibilidade de espaço livre (na partição onde as fontes estão localizadas). Seria bom marcar 4-5 GB(!) em estoque. Ao compilar, o tamanho do diretório de origem pode crescer para 3,5 GB. Você pode verificar o espaço livre com o comando

Agora, sendo um usuário normal no diretório /usr/src/linux-source-2-6-20, damos um comando que irá deletar os objetos compilados por alguém no código fonte, que sobraram da compilação anterior e estavam no arquivo.

Então, através do sudo, obtemos direitos de root e iniciamos a compilação.

make-kpkg --initrd --revision=mybuild.1.0 kernel_image kernel_headers

Onde em vez de " minhaconstrução.1.0"escreva o que você precisa. Aceitável letras inglesas, números, pontos. Sublinhados e travessões não são permitidos.

Na verdade, de forma amigável, a compilação do kernel deve ser feita sob os direitos de um usuário comum. Formalmente, criar um binário de kernel não é diferente de compilar um binário para qualquer outro programa. Mas não compilamos em modo manual(por meio de comandos como faça módulos bzImage), e em semiautomático (via make-kpkg). E este programa, após a compilação, iniciará o programa por si mesmo dpkg-deb obter débito-pacote kernel. É neste momento que você precisará de direitos de root.

Agora vamos ver o que o comando acima faz. Ele começa a compilar o kernel e então cria débito-pacote com nome linux-image-version.deb, que conterá o binário do kernel e os módulos do kernel (isso será feito graças ao objetivo imagem_do_kernel). E também será criado débito-pacote com nome linux-headers-versão.deb, ele conterá os arquivos de cabeçalho do kernel (isso será feito graças ao objetivo kernel_headers). Os pacotes recebidos estarão localizados no diretório /usr/src.

Veja quais arquivos estão nestes débito-pacotes, possíveis em Konqueror(no Kubuntu) clicando com o botão direito naquele em que você está interessado débito-arquivo e selecionando " Menu do pacote Kubuntu" -> "Mostrar informações do pacote“As informações serão geradas bem lentamente, cerca de um minuto, já que os pacotes são grandes.

5. Instalando o kernel

Agora instalamos o kernel. Estar com direitos de superusuário no diretório /usr/src, dê o comando

dpkg -i linux-image-version.deb

após o qual seu kernel (arquivo vmlinuz-2.6.20.3-ubuntu1) será colocado no diretório /bota(todos os kernels anteriores também não irão a lugar nenhum, eles permanecerão em seus lugares), e no catálogo /lib/módulos, próximo ao diretório com módulos regulares do kernel (em Ubuntu 7.04 chamado /lib/modules/2.6.20-15-genérico) aparecerá um diretório com os módulos do seu novo kernel (no nosso caso será /lib/modules/2.6.20.3-ubuntu1). O novo kernel será automaticamente registrado em /boot/grub/menu.lst.

Em princípio, você já pode reiniciar e na tela de carregamento Comida um novo item com seu núcleo aparecerá. O novo kernel aparecerá no início da lista. Mas ainda não temos pressa, daremos outro comando

dpkg -i linux-headers-versão.deb

que instalará os cabeçalhos do kernel no diretório /usr/src/linux-headers-versão, no nosso caso este será um diretório /usr/src/linux-headers-2.6.20.3-ubuntu1. Precisaremos desses cabeçalhos, por exemplo, para recompilar drivers nVidia para o novo kernel.

6. Reinicie

Reinicie e no menu Comida você verá dois novos itens - inicialização normal com seu kernel e inicialização no modo de console mínimo. Escolha o primeiro item. Se o núcleo não caísse imediatamente em Pânico do kernel, então este é um bom sinal. Aguarde a conclusão do download. Se você tiver sorte, o Ubuntu inicializará no modo gráfico e mostrará um prompt gráfico de login. Neste caso, você não pode ler mais.

Mas para usuários de cartão nVidia que usaram drivers instalados através do "Proprietary Driver Manager" ou usaram drivers de um pacote nvidia-glx(ou lá nvidia-glx-novo), dou 99% de garantia de que você não terá sorte! E você não verá gráficos no novo núcleo!

7. Instalando drivers nVidia de nvidia.com

Para fazer o X funcionar em um novo kernel, a primeira coisa que vem à mente é instalar os drivers de nvidia.com no novo kernel. E esta é a decisão errada! Assim que os drivers para o novo kernel forem instalados, os gráficos em seu antigo kernel comprovado irão parar de funcionar (devido ao fato de que os arquivos do driver da nVidia estão estritamente vinculados à versão e ao nome do kernel). E como você ainda não testou a funcionalidade do novo kernel, você pode obter um sistema “com um kernel nativo, mas sem gráficos” e “um kernel com bugs, mas com gráficos”. Não creio que alguém fique feliz com esta situação.

No popular artigo "Física Nuclear para Donas de Casa", há recomendações sobre como obter gráficos em ambos os núcleos. A seguinte maneira é sugerida - tenha o pacote de instalação do driver pronto em nvidia.com e, se desejar inicializar em um kernel específico, você deve primeiro inicializar no modo de console deste kernel, instalar o driver e, em seguida, inicializar normalmente. Acho que essa abordagem também agradará a poucas pessoas.

Faremos o possível para que os gráficos funcionem tanto no kernel antigo quanto no novo, e para isso não haverá necessidade de executar a instalação (compilação) da lenha todas as vezes. Para fazer isso, precisaremos cumprir apenas uma condição - que os drivers gráficos em núcleos diferentes sejam da mesma versão.

Breve plano de ação- instalar lenha do local nvidia.com para o kernel padrão em na íntegra. Vamos garantir que eles funcionem. Então, a partir do mesmo pacote, instalamos lenha para o kernel caseiro, mas no modo “somente módulo gráfico”.

8. Instalando drivers nVidia para um kernel normal

Tudo o que está escrito abaixo também é adequado para aqueles que simplesmente decidiram instalar novos drivers nVidia no kernel padrão!

Baixe do site nvidia.com lenha para Linux. Eu baixei a versão lenha para mim 96.43 . O arquivo é chamado NVIDIA-Linux-x86-96.43.01-pkg1.run. Mas você pode tentar outras versões estáveis ​​que estão presentes no site nVidia.

Para instalar, crie no diretório /usr/src subdiretório nomeado nvidia, copie este arquivo lá. Enquanto estiver neste subdiretório, damos permissão ao arquivo para executar

chmod 777 NVIDIA-Linux-x86-96.43.01-pkg1.run

É isso, é aqui que termina o trabalho na interface gráfica por enquanto. Antes de sair do modo gráfico, execute Sináptico e certifique-se de ter

  • aptidão Este é um wrapper front-end para o gerenciador de pacotes em modo texto.
  • linux-headers-2.6.20-15. Estes são os arquivos de cabeçalho do seu kernel padrão.
  • linux-headers-2.6.20-15-genérico. Não vou dizer exatamente para que serve esse pacote, mas que assim seja.

Uma boa dica é imprimir o texto deste artigo em um pedaço de papel ou salvá-lo em um arquivo de texto que possa ser visualizado em modo texto.

Reinicializamos no modo console de um kernel normal (em Comida existe esse ponto). EM Ubuntu você receberá direitos de root automaticamente, nem precisa digitar uma senha. Agora precisamos retirar a lenha nVidia, que estão no sistema. Se você instalou os drivers através do "Proprietary Driver Manager" (ou instalando o pacote nvidia-glx ou nvidia-glx-novo), então o pacote nvidia-glx/nvidia-glx-new precisa ser removido do sistema, e não apenas desinstalado, mas desinstalado no modo purga.

Sou um usuário bastante estúpido e, em vez de entender as opções dpkg, eu uso o programa no console aptidão. Digite o comando

e você se encontrará em uma concha que lembra vagamente Sináptico. Haverá uma dica importante no topo. Para acessar o menu, pressione Ctrl+t(inconveniente, mas o que fazer). No cardápio
setas e chaves Digitar encontre e selecione o item " Encontrar". Escrevemos a string de pesquisa - nvidia-glx. A luz incidirá sobre a embalagem desejada. Acesse o menu novamente e encontre o item " Purga". Clique nele, e o pacote no qual o destaque está localizado será marcado para desinstalar completamente todos os seus arquivos do sistema (o próprio pacote permanecerá no cache, pode ser reinstalado se necessário). Uma dica aparecerá no fundo - " e - Examine, ! - remover". Clique em " e" - e vemos quais pacotes serão excluídos. Se de nvidia-glx dependerá dos pacotes, eles também serão desinstalados. Geralmente este é um pacote nvidia-glx-dev. Tudo bem que ele também será excluído.

Agora pressione " ! " (para especialmente talentosos - Mudança+1), concordamos com nossas alterações. Em seguida, clique em " q" (sair). Ao sair, o programa removerá os pacotes que marcamos.

Agora é o momento. Estamos agora no nível iniciar 1(somente console, muitos serviços não estão em execução). Se você executar a instalação do driver nVidia, então ela jurará que talvez seu serviço não esteja funcionando devfs, que geralmente é executado no nível 3 . Portanto damos o comando

telinit3

e o sistema carregará os serviços necessários e ao mesmo tempo sairá do modo de usuário único (aparecerão vários consoles que podem ser alternados com as teclas ALT+F1...ALT+F6). Para mais trabalho, precisamos apenas de dois consoles. Aliás, o sistema tentará carregar os gráficos, mas não terá sucesso, pois... Acabamos de remover o driver. E ela vai ficar em 7 o console com uma tela em branco. Não entre em pânico, vamos continuar ALT+F1, vemos o primeiro console, lá digitamos o login e senha da mesma forma que no login gráfico (somente após o login e senha clicamos Digitar e não TAB).

Uma vez logado, ligue MC como superusuário

Vá para o catálogo /usr/src/nvidia

./NVIDIA-Linux-x86-96.43.01-pkg1.run -e

Opção " -e" nos permitirá ver um relatório sobre as ações e ver os arquivos conflitantes. Iniciamos a instalação. Concordamos com a licença. Recusamos-nos a baixar o código-fonte de FTP nvidia. Vamos conversar OK esses módulos serão criados por nós. Para inserir caminhos, basta clicar Digitar.

Por fim, antes da instalação propriamente dita, será mostrada uma lista dos arquivos que serão instalados. E no início desta lista (se encontrado) eles aparecerão arquivos conflitantes. Estará escrito " Arquivo de backup..." - isso é o que eles são. No meu caso, eram arquivos

/usr/lib/xorg/modules/extensions/libGLcore.so
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/lib/modules/2.6.20-15-generic/volatile/nvidia.ko
/usr/include/GL/glext.h
/usr/include/GL/gl.h
/usr/include/GL/glxext.h
/usr/include/GL/glx.h

Estes são os arquivos do pacote módulos restritos da nvidia. O fato é que se você simplesmente excluir este pacote, junto com esses arquivos todos os arquivos para nVidia-chipsets ( nVidia afinal, não fabrica apenas placas de vídeo). Você também precisará remover pacotes dependentes módulos restritos ao linux-2.6.20-15-genérico, módulos restritos ao linux-genéricos E linux-genérico. Portanto, não é aconselhável remover este pacote. Portanto, faremos as coisas de maneira diferente.

Assim que você vir essa lista, faça login no segundo console (vá para - ALT+F2), correr

e transfira metodicamente esses arquivos conflitantes para algum lugar em um diretório separado em seu diretório inicial, verificando a lista no primeiro console. Por que transferir e não excluir? O fato é que os nomes dos arquivos no Linux são “ilegíveis” e você pode facilmente cometer um erro e excluir o arquivo errado.

Depois de excluir todos os arquivos destinados a Backup, retorne ao primeiro console. Abortar a instalação ( Ctrl+c) e execute-o novamente. Se " Arquivo de backup..."não existirá mais e conclua a instalação. Tudo deve correr bem. Você pode concordar com a correção xorg.conf, o arquivo de backup ainda será criado.

Agora atenção! O mais importante é não se sobrecarregar nesse momento! E vá para o arquivo /etc/default/linux-restricted-modules-common e adicione à opção DISABLED_MODULES módulos novo E nvidia_new. Eu fiz assim

DISABLED_MODULES="nv nvidia_new"

Se você não fizer isso, na próxima vez que carregar o arquivo (que você excluiu!) /lib/modules/2.6.20-15-generic/volatile/nvidia.ko será automaticamente restaurado do pacote módulos restritos da nvidia. E o seu arquivo que você compilou ao instalar os drivers se chama /lib/modules/2.6.20-15-generic/kernel/drivers/video/nvidia.ko. Então, ao iniciar o X, o primeiro arquivo será encontrado. Mas não chegará ao seu arquivo. E os X não conseguirão inicializar.

Reinicializamos no kernel padrão em modo completo. Se tudo foi feito corretamente, os X's serão iniciados. Alegre-se, pelo menos você ainda tem um sistema funcionando.

9. Instalando drivers nVidia para um kernel caseiro

Agora eu fiquei última etapa- fazer os gráficos funcionarem no novo kernel. Tudo é bastante simples aqui. Inicializamos no modo console do kernel caseiro. Nós damos o comando

faça login e execute no primeiro console

Vá para o catálogo /usr/src/nvidia e comece a instalar lenha com a equipe

./NVIDIA-Linux-x86-96.43.01-pkg1.run -Ke

Opções " -Ke"permite montar apenas o módulo gráfico nvidia.ko sob o kernel atual (e o arquivo será colocado no diretório /lib/modules/nome_do_kernel_atual/kernel/drivers). Nenhum outro arquivo compartilhado que estaria, por exemplo, localizado em /usr/lib... pois ao compilar com a opção "-e", ela não será criada.

Exatamente da mesma forma que ao compilar em um kernel padrão, concordamos com os caminhos clicando Digitar. Chegamos à tela onde serão listados os arquivos que serão instalados. Se houver arquivos conflitantes no início desta lista " Arquivo de backup...", mude para o próximo console e exclua (transfira) esses arquivos.

Após remover os arquivos conflitantes, cancele a instalação no primeiro console ( Ctrl+c) e execute-o novamente (com a opção " -Ke"naturalmente). Após a conclusão da instalação, reinicie selecionando no menu Comida em modo completo com seu kernel.

X deve começar. Você pode se alegrar pela segunda vez - você tem um sistema com um kernel caseiro e gráficos funcionais.

A qualquer momento, agora você pode inicializar no kernel desejado e os gráficos devem funcionar em qualquer lugar. Isso é tudo.

Às vezes você pode precisar construir o seu próprio Kernel Linux. As razões para isso podem ser as seguintes:

  • você precisa de um kernel limpo, sem patches de distribuição;
  • você deseja aplicar seus próprios patches (que existem muitos);
  • você deseja montar um kernel para se adequar à sua configuração de hardware, descartar coisas desnecessárias dele e/ou adaptá-lo para tarefas específicas;
  • você deseja incluir um driver experimental ou sistema de arquivos no kernel que não está incluído no "baunilha" núcleo (por exemplo ZFS ou Aumentador 4);
Não há nada complicado em montar o kernel. Só é importante entender por que isso está sendo feito e também não mexer nos parâmetros que você não entende. Nesta nota descreverei dois exemplos de construção de um kernel em Baseado em Debian distribuições. No primeiro exemplo, mostrarei como é fácil montar um kernel puro, chamado “vanilla” (como é lançado pela Linus Torvalds), e no segundo - como aplicar seus próprios patches e otimizar o kernel. Escreverei imediatamente dois avisos:
  • você precisará reconstruir o kernel toda vez que ele for atualizado (baixe o “patch de atualização”, aplique-o e monte o kernel);
  • o kernel reconstruído pode não funcionar se o seu sistema usar alguns hacks para garantir a funcionalidade deste ou daquele equipamento;
  • Se o kernel estiver configurado incorretamente, especialmente no caso de aplicação de patches analfabeta ou impensada, você pode acabar com um sistema terrivelmente lento ou perdê-lo completamente.
VOCÊ REALIZA TODAS AS AÇÕES POR SUA CONTA E RISCO!

Montagem simples do kernel sem patches.

O código-fonte do kernel Linux está disponível em kernel.org. Existem também "atualizar patches". O que precisamos? Baixe do site tarball(arquivo) com a versão estável mais recente do kernel (no momento em que este artigo foi escrito, esta é a versão 4.3 ). Baixe com qualquer pessoa de uma maneira conveniente. Em seguida, precisamos de ferramentas para montagem:

sudo apt install build-essential gcc kernel-package patch
sudo apt-get build-dep linux

Depois de tudo instalado ferramentas necessárias, descompacte o arquivo com o código do kernel em qualquer diretório conveniente. Deixe estar /home/usuário/KERNEL, Onde "usuário"- nome de usuário do sistema. Em seguida, abra um terminal e vá até lá:

cd /home/usuário/KERNEL

Só falta montar o kernel:

fakeroot make-kpkg -j 3 --initrd --append-to-version=-custom kernel_image kernel_headers #-j 3

Número 3 depois j- este é o número de núcleos do seu processador + 1. Ou seja, para um processador dual-core é 3, para um processador de 4 núcleos é 5 e assim por diante.
-personalizado- aqui você pode especificar um nome conveniente para o kernel para facilitar sua distinção do nome da distribuição.
imagem_do_kernel E kernel_headers- este é o próprio kernel e seus arquivos de cabeçalho, respectivamente. Cabeçalhos necessário para montar drivers e módulos do kernel, bem como para alguns outros fins. Após executar este comando, várias questões de configuração do kernel começarão a aparecer. Como estamos deixando tudo como padrão, basta pressionar Enter até a compilação começar. Dependendo da potência do seu computador, a montagem pode levar de 15 a 20 minutos a várias horas. Após a montagem, no diretório /home/usuário aparecerão dois pacote deb: núcleo e cabeçalhos. Instale-os com o comando:

sudo dpkg -i linux-image-4.3*deb linux-headers-4.3*deb
sudo update-grub

E reinicie. No menu GRUB agora você pode selecionar um kernel diferente para inicializar o sistema.

Construindo o kernel usando patches e configurações adicionais.

Desta vez montaremos um kernel otimizado para trabalhar com som e vídeo, bem como para maior capacidade de resposta do sistema. Para fazer isso, aplicaremos dois patches: o chamado patch em tempo real ( ANTERIOR RT) e um patch para o compilador CCG para adicionar opções adicionais para otimizações do processador. Primeiramente, o que é um patch? Um patch é um arquivo de texto criado pelo programa diferença, contendo alterações de código em determinadas partes, que, ao aplicar o patch, são inseridas nos lugares certos. Porque Atualização RT sai com um grande atraso, sua versão mais recente é para núcleo 4.1. No entanto, isso não é tão importante. Usando o mesmo esquema, baixe o kernel 4.1 de kernel.org e descompacte-o em um diretório /home/usuário/KERNEL-CUSTOM. Agora baixe os patches. PREEMPT_RT e patch GCC. Dos arquivos baixados, precisamos de arquivos com extensão .patch, que devem ser colocados no diretório com o código-fonte do kernel. Ou seja, em /home/usuário/KERNEL-CUSTOM. Antes de aplicar patches, você precisa ter certeza de que não há erros. Abra o terminal:

cd /home/usuário/KERNEL-CUSTOM
patch -p1 -i patch-4.1.13-rt15.patch --execução a seco


Opção --execução a seco permite simular a aplicação de um patch, sem fazer alterações nos arquivos. Se nenhum erro for encontrado (veja a captura de tela) - aceite o patch sem a opção --execução a seco. Execute ações semelhantes com o segundo patch. Não aplique mais de um patch por vez! Agora precisamos configurar nosso kernel. Temos as seguintes opções para escolher:

fazer configuração- perguntas sobre a configuração de um ou outro subsistema do kernel serão exibidas no terminal uma por uma. Um processo extremamente longo e tedioso. Vamos esquecer isso :)
fazer configuração antiga- será usada a configuração do kernel atualmente em execução. Como montamos o nosso do zero, esse método também é inútil.
fazer defconfig- semelhante ao anterior, apenas os valores serão padrão. A forma como os desenvolvedores do kernel o configuraram. Semelhante ao primeiro método de montagem.
fazer menuconfig- interface pseudo-gráfica baseada na biblioteca Maldições. Uma interface com um menu hierárquico conveniente será exibida na tela. Controles usando as teclas direcionais, barra de espaço e tecla TAB. É recomendado se você estiver construindo o kernel em um sistema que não possui um shell gráfico.
fazer gconfig GTK, recomendado no GNOME, Mate, Xfce, Cinnamon, Unity e outros que utilizam GTK.
faça xconfig- Baseado em GUI Qt. Recomendado no KDE. Como meu sistema usa KDE, usarei este método. Além disso, existem mais alguns métodos, mas sua aplicação não é diferente. Então, após aplicar os patches, lançamos faça xconfig e isto é o que aparece diante de nós:


Primeiro de tudo, desligue dintiques. Para fazer isso vamos para Subsistema de temporizadores e escolha Cronômetros periódicos


Agora vem a melhor parte. Vamos para Tipo e recursos de processadores, procurando por um item Família de processadores e indique a série do seu processador. Por exemplo, se você tiver Intel Core i5-4xxx, indique Hasswell(processador de 4ª geração). Se você não tiver certeza exatamente, você pode selecionar o item Otimizações nativas detectadas automaticamente pelo GCC. Neste caso, durante a montagem, o próprio compilador determinará o que o seu processador suporta e incluirá todos os seus recursos.


Vá abaixo e habilite o parâmetro Kernel preemptivo completo (RT). Modo difícil em tempo real.


Role para baixo e no ponto Frequência do temporizador definir a frequência de interrupção do sistema para 1000Hz


Desligamos completamente qualquer economia de energia. Isto é importante! À esquerda estamos procurando um item Opções de gerenciamento de energia e ACPI

e desmarque ACPI. Desligue também a economia de energia da CPU É isso. Se desejar (e estudar cuidadosamente a documentação), você pode fazer alterações adicionais na configuração (desativar drivers desnecessários, usar subsistemas adicionais e assim por diante). Agora salvamos a configuração via Arquivo - Salvar

, feche o configurador e monte o kernel:
sudo update-grub

fakeroot make-kpkg -j 3 --initrd --append-to-version=-rt-custom kernel_image kernel_headers #-j 3 No meu computador com processador Intel Core i3-550 (3,2 GHz), o aumento de desempenho foi bastante perceptível. Mas o mais importante é quando se trabalha em E LMMS Kdenlive

, a gagueira periódica, a dessincronização de trilhas de áudio e vídeo, bem como o congelamento sob carga pesada no disco rígido desapareceram. Conclusão – funciona! Finalmente, descreverei dois kernels modificados, que são muito populares nos círculos Linux: Kernel PF

  • - o conjunto de patches mais popular do ucraniano Alexander Natalenko (também conhecido como post-factum). Este é um conjunto de patches que não estão incluídos no kernel principal, mas fornecem maior capacidade de resposta do sistema, fornecem um subsistema de hibernação alternativo mais rápido que o principal e também reduzem o uso de memória usando a técnica de mesclagem de páginas idênticas. O conjunto inclui:
  • Agendador BFQ I/O de Paolo Valente, Arianna Avanzini e Mauro Marinoni;
  • subsistema de hibernação TuxOnIce de Nigel Cunningham;
  • implementação da técnica de fusão de páginas idênticas na memória UKSM de Nai Xia;
  • patch do Graysky, expandindo a lista de processadores para otimização do kernel pelo compilador (aquele que aplicamos acima)
Repositório de kernel modificado. Site oficial.

Kernel Zen- o segundo conjunto mais popular, mas o primeiro em número de patches. O Zen Kernel usa uma combinação de vários projetos, atualiza o código por meio de um repositório git e também possui vários itens específicos do Zen que visam atender à maioria das necessidades do usuário em um único kernel. Alguns recursos do patch: drm-next, teste sem fio, escolha de agendadores de CPU (CFS/BFS), agendador de E/S BFQ, aufs, unionfs, reiser4, tuxonice, PHC e muitas outras coisas que são ótimas para otimizar sistemas desktop ou laptops. Tudo isso está disponível na forma de um patch para o kernel vanilla. Site oficial. Repositório GIT. Pacotes para Debian/Ubuntu.

Provavelmente isso é tudo por hoje. Mais informações podem ser encontradas nos links do artigo. Tudo descrito no artigo foi testado por mim em muitas configurações.