Propaganda
Junto com instalando o Gentoo Gentoo: uma distribuição Linux onde você compila seu próprio software otimizadoO grande número de maneiras diferentes pelas quais o Linux pode ser executado é impressionante, pois há muitas opções a serem percorridas. Embora existam muitas distribuições que dependem do .deb ... consulte Mais informação , compilar seu próprio kernel Linux é uma daquelas coisas consideradas muito nerds e técnicas. Nós já abordou algumas razões 3 razões pelas quais você pode querer compilar seu próprio kernel [Linux]Os sistemas Linux são tão ridiculamente flexíveis e configuráveis que é totalmente louco. Uma grande parte do motivo pelo qual o Linux é tão flexível é por causa de sua estrutura modular. Cada componente e programa do sistema é dividido ... consulte Mais informação por que você pode querer fazer isso. Antes de orientá-lo pelas etapas, veja uma breve visão geral de alguns conceitos importantes.
O que é um kernel?
Em suma, é uma parte vital do seu sistema operacional, se não o mais importante. Um sistema operacional é responsável por deixar seus programas funcionarem, permitindo que eles acessem seu hardware. No entanto, é o
núcleo O que é um kernel no Linux e como você verifica sua versão?Linux é um sistema operacional, certo? Bem, não exatamente! Na verdade, é um núcleo. Mas qual é o kernel do Linux? consulte Mais informação que efetivamente realiza todos esses trabalhos.O kernel do Linux é especial, pois pode ser feito sob medida para se ajustar ao hardware que você possui. Compare isso com o kernel do Windows NT, que geralmente será o mesmo em todos os computadores. Para fazer isso, o kernel deve passar por um processo chamado compilação.
Para mais informações, confira nossa introdução aos kernels no Linux O que é um kernel no Linux e como você verifica sua versão?Linux é um sistema operacional, certo? Bem, não exatamente! Na verdade, é um núcleo. Mas qual é o kernel do Linux? consulte Mais informação .
O que é compilação?
Geralmente, os programas são escritos em um formato legível por humanos. Isso facilita a criação de software pelas pessoas. Por exemplo, o kernel do Linux é escrito principalmente em uma linguagem de programação chamada C. No entanto, os computadores não conseguem entender isso. Eles reconhecem apenas uma linguagem complicada chamada Código da máquina. Para fazer isso, as linhas de texto precisam ser traduzido Como compilar e instalar arquivos TAR GZ e TAR BZ2 no Ubuntu Linux consulte Mais informação usando um software especial chamado compilador.
Compiladores diferentes são usados para converter diferentes linguagens de programação. Por exemplo, GCC é um compilador que traduz o código C em código de máquina (entre outros). Mas isso não é tudo o que eles fazem - os compiladores também podem otimizar o código traduzido para máquinas específicas. Junto com isso, eles também podem remover recursos indesejados dos programas enquanto o fazem.
Normalmente, esse processo já é feito para muitos softwares. Em vez disso, as pessoas baixam os arquivos convertidos binário instruções, que funcionam imediatamente. Por exemplo, o navegador da web Você está usando o melhor navegador da Web para Linux em 2016?Usar o navegador "errado" pode levar a muitas dores de cabeça desnecessárias, perda de produtividade e até perda de dados. Então, qual navegador é o melhor para o seu computador Linux? Vamos descobrir. consulte Mais informação você está executando agora já está compilado. Isso ocorre porque compilar algo pode ser um pouco complicado e demorado. Pense nisso como traduzir um livro grande para um idioma estrangeiro.
Em resumo, compilar o kernel significa converter seu código em algo que realmente será executado no seu computador.
Obtendo fontes do kernel
Você não pode fazer fogo sem combustível. Da mesma forma, você não pode compilar programas se não tiver o código para ele em primeiro lugar. O método geralmente é o mesmo para a maioria dos sistemas operacionais Linux, com algumas exceções. Muitos deles fornecem suas próprias fontes personalizadas de kernel. Você deve tentar usar isso se puder. Por exemplo, se você estiver usando um Sistema operacional baseado no Debian como o Ubuntu, você deve instalar as fontes usando estes comandos:
sudo apt-get update. O sudo apt-get instala o linux-source.

Você também pode instalar versões diferentes deste pacote (por exemplo, linux-source-4.8.0) se você gostar. Você encontrará os arquivos instalados no /usr/src/, navegue até lá e visualize o conteúdo:
cd / usr / src / ls.
Você verá um arquivo que termina com .tar.bz2. Essa é a fonte que você usará. Extraia-o com este comando:
sudo tar xjvf linux-source-4.4.0.tar.bz2.
Certifique-se de substituir o arquivo pelo nome correto, é claro. O arquivo será muito grande, portanto o processo levará um tempo!
Método alternativo
Se desejar, você pode obter suas fontes no site oficial do Kernel Linux. Eu recomendo isso apenas se o seu sistema operacional Linux não os fornecer. Selecione a versão desejada e faça o download. Se você seguir essa rota, faça o download para uma pasta vazia. Dessa forma, se você deseja compilar mais kernels no futuro, terá uma boa pasta para mantê-los organizados.

Feito isso, extraia o arquivo com este comando:
tar xJvf linux-4.9.11.tar.xz

Verifique se você está usando o nome de arquivo que corresponde à versão que você baixou!
Personalizar o Kernel
Este é o passo em que você pode escolher quais partes do kernel você deseja se livrar. Por exemplo, o kernel é fornecido com muitos drivers diferentes para uma variedade de dispositivos. Se você não precisar desse suporte, livrar-se deles pode render alguns benefícios de velocidade, além de um kernel menor.
Pré-requisitos
Antes de prosseguir, você deve instalar alguns programas que permitirão personalizar e compilar.
Em sistemas baseados no Debian, você precisa do essencial pacote, entre outros:
sudo apt-get install gcc-libncurses5-dev libssl-dev.
o libncurses5-dev O pacote facilitará a configuração do kernel, portanto, certifique-se de instalá-lo. Outros sistemas operacionais Linux terão um programa semelhante, mas isso pode ter um nome diferente. Por exemplo, se você estiver usando Fedora 5 razões para usar a distribuição pura de código aberto, FedoraO Fedora não é tão conhecido como Ubuntu e tem uma reputação de ser difícil de usar. Mas se isso for verdade, por que tantas pessoas continuam usando o Fedora? consulte Mais informação , é chamado maldições.
Se ainda não estiver instalado, você também precisará do Coleção GNU Compiler (CCG). Essa é a ferramenta responsável por converter o código-fonte bruto em algo compreensível para os computadores. Ou seja, compilando.
Após a instalação desses programas, abra seu terminal para que você esteja dentro a pasta de origem Linux extraída. Por exemplo, se você usou o fonte-linux método, você faria o seguinte:
cd /usr/src/linux-source-4.4.0
Arquivo de Configuração do Kernel
Antes de compilar o kernel, você precisa dizer ao GCC como deseja que ele seja feito. Você faz isso usando uma ferramenta de linha de comando chamada faço. Digite este comando:
sudo make localmodconfig.
Isso cria um arquivo chamado .config, que informa ao GCC o que compilar a partir das fontes do kernel. o make localmodconfig O comando detecta os componentes do kernel atualmente em execução e os marca para compilação. Se o kernel estiver dentro de uma pasta que você possui, você não vai precisar de sudo para que funcione.
Você pode encontrar algumas mensagens como a abaixo. Basta pressionar o Entrar chave para ignorá-los - eles geralmente são apenas novos recursos do kernel.

No entanto, localmodconfig não é perfeito! Se você atualmente não estiver usando algumas partes do seu computador, ele poderá não detectar tudo o que é compatível. Como tal, você precisa habilitá-los manualmente. Como alternativa, você pode pular esta etapa completamente e usar o próximo comando. Isso compilará o novo kernel com as mesmas opções que você está usando no momento.
Se você preferir, mas usou o comando localmodconifg antes, faça o seguinte:
sudo limpar.
Isso lhe dará uma compilação limpa. Você também deve usar este comando se tiver compilado um kernel com essas fontes antes.
Configuração adicional
Dentro da pasta de origem do kernel, há um arquivo chamado .config. É isso que o GCC usará para escolher o que compilar. Em vez de editá-lo manualmente (não recomendado), você usará algumas ferramentas de terminal. Isso facilitará a seleção das opções de compilação.
Depois de fazer isso, ajuste-o ainda mais:
sudo make nconfig.
Você verá um menu colorido aparecer. Este é o menu de configuração do kernel. Para navegar, use as teclas de seta. Você pode pressionar o direita seta para expandir as entradas com um —> assinar ao lado deles. Navegue nesses submenus pressionando o botão esquerda tecla de seta.

Você pode alternar as entradas do menu que possuem o <> ou [] assine próximo a eles pressionando a barra de espaço. Isso irá percorrer as diferentes opções do menu. Se você vir um * ou M por dentro, esse componente específico do kernel será compilado. A única diferença entre eles é que o M A opção será carregada quando necessário. Isso pode ser útil se você estiver compilando um driver, por exemplo, que não será usado com frequência.
Se você quiser saber mais sobre o que uma opção específica faz, pressione F2 acima dele. Você verá uma descrição útil do que está compilando.

Quando terminar, pressione o botão F9 para salvar e sair.

Compilando e instalando o kernel
Agora que você criou um arquivo de criação personalizado, precisará compilar Como compilar e instalar arquivos TAR GZ e TAR BZ2 no Ubuntu Linux consulte Mais informação o kernel. Digite este comando:
sudo make -j $ (nproc --all)
Você irá não precisa de sudo se você baixou as fontes do kernel da web. A segunda parte do comando ajuda a acelerar o tempo de compilação do kernel, aproveitando todas as suas Núcleos da CPU O que é um núcleo de processador? [MakeUseOf explica]Todo computador possui um processador, seja um pequeno profissional de eficiência ou uma grande potência, ou ele não seria capaz de funcionar. Claro, o processador, também chamado de CPU ou Processamento Central ... consulte Mais informação . Você pode se livrar disso ou alterar o número para outra coisa (por exemplo, -j2), se você quiser usar o computador para outras tarefas sem muitos soluços. No entanto, isso também tornará a compilação mais lenta!
Esse processo pode e levará muito tempo. Quanto menos você escolher compilar, mais curto será. Mesmo assim, você provavelmente precisará ser paciente.
Depois, digite este comando para concluir a compilação do restante do kernel:
sudo make modules_install.
Para realmente usar este kernel, você precisará inserir este comando:
sudo make install.
Isso copiará automaticamente o kernel para o seu /boot pasta e gere os arquivos apropriados para fazê-lo funcionar.
Alternando kernels usando o GRUB
Se você reiniciar após instalar seu novo kernel, seu sistema pode não funcionar! Isso geralmente ocorre devido a um kernel compilado incorretamente (ou seja, não suporta o seu computador suficientemente bem). Caso em questão, meu próprio laptop. Caso isso aconteça, recomendo editando o GRUB Como personalizar o carregador de inicialização GRUB usando o BURG [Ubuntu] consulte Mais informação para que ele possa voltar aos kernels mais antigos. Para fazer isso, use este comando:
sudo nano / etc / padrão / grub.

Coloque um sinal de # na frente do GRUB_HIDDEN_TIMEOUT e GRUB_HIDDEN_TIMEOUT_QUIET linhas Depois, salve essas alterações executando este comando:
sudo grub-mkconfig -o /boot/grub/grub.cfg.

Agora, se você reiniciar o computador, poderá mudar para um kernel mais antigo se o novo não funcionar. Basta ir ao Opções avançadas item de menu e selecione o kernel que deseja inicializar. Se tudo der certo, parabéns! Você estará usando o kernel que compilou sozinho.
Você está interessado em compilar mais kernels? Outros programas? Você acha que vale a pena?
Créditos da Imagem: chombosan / Shutterstock
Atualmente estudando para um BIT, Austin Luong é um entusiasta ávido por Linux que gosta de fazer proselitismo sobre software livre. Ele também gosta de escrever ficção científica, mas apenas na privacidade de sua unidade de disco rígido.