Juntamente com a instalação do Gentoo: Uma distribuição Linux onde você compila seu próprio software otimizado Gentoo: Uma distribuição Linux onde você compila seu próprio software otimizado O número de maneiras diferentes pelas quais o Linux pode ser executado é surpreendente, pois há muitas opções para vá ao redor. Embora existam muitas distribuições que dependem do .deb ... Read More, compilar seu próprio kernel Linux é uma daquelas coisas que são consideradas muito geeks e técnicas. Nós já cobrimos algumas razões 3 razões pelas quais você pode querer compilar seu próprio kernel [Linux] 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 são totalmente loucos. Uma grande parte do porquê o Linux é tão flexível é devido à sua estrutura modular. Cada componente e programa do sistema é dividido ... Leia mais por que você pode querer fazer isso. Antes de guiá-lo pelas etapas, aqui está 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 permitir que seus programas funcionem, permitindo acesso ao seu hardware. No entanto, é o kernel O Kernel do Linux: Uma Explicação em Termos de Layman O Kernel do Linux: Uma Explicação nos Termos de Layman Há apenas uma coisa de facto que as distribuições Linux têm em comum: o kernel do Linux. Mas, embora muitas vezes se fale, muitas pessoas não sabem exatamente o que faz. Leia mais, que realmente carrega todos esses empregos.
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.
O que está compilando?
Geralmente, os programas são escritos em um formato legível por humanos. Isso torna mais fácil para as pessoas criarem software. 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 só reconhecem uma linguagem complicada chamada código de máquina . Para fazer isso, as linhas de texto precisam ser traduzidas Como compilar e instalar arquivos TAR GZ & TAR BZ2 no Ubuntu Linux Como compilar e instalar arquivos TAR GZ & TAR BZ2 no Ubuntu Linux Leia mais usando uma peça especial de software chamada compilador .
Compiladores diferentes são usados para converter diferentes linguagens de programação. Por exemplo, o GCC é um compilador que traduz o código C em código de máquina (entre outros). Mas isso não é tudo 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 de programas ao fazê-lo.
Normalmente, esse processo já é feito para muitos softwares. Em vez disso, as pessoas baixam as instruções binárias convertidas, que funcionam imediatamente. Por exemplo, o navegador da web Você está usando o melhor navegador da Web para Linux em 2016? 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, produtividade desperdiçada e até dados perdidos. Então, qual navegador é o melhor para o seu computador Linux? Vamos descobrir. Leia mais você está correndo agora já está compilado. Isso porque compilar algo pode ser um pouco complicado e demorado. Pense nisso como traduzir um grande livro para uma língua estrangeira.
Resumindo, compilar o kernel significa converter seu código em algo que realmente será executado em seu computador .
Obtendo Fontes de Kernel
Você não pode fazer fogo sem combustível. Da mesma forma, você não pode compilar programas se você não tiver o código para isso 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 de kernel personalizadas. 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 sudo apt-get install linux-source
Você também pode instalar versões diferentes deste pacote (por exemplo, linux-source-4.8.0 ), se quiser. Você encontrará os arquivos instalados no diretório / usr / src /, navegue até lá e veja o conteúdo:
cd /usr/src/ ls
Você verá um arquivo que termina com .tar.bz2 . Esta é a fonte que você estará usando. Extraia 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á bem grande, então o processo demorará um pouco!
Método alternativo
Se desejar, você pode obter suas fontes no site oficial do Linux Kernel. Eu recomendo isso somente se o seu sistema operacional Linux não os fornecer. Selecione a versão desejada e faça o download. Se você percorrer esta rota, você deve baixá-lo para uma pasta vazia. Dessa forma, se você quiser compilar mais kernels no futuro, você 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 do arquivo que corresponde à versão que você baixou!
Personalize o Kernel
Este é o passo em que você pode escolher de que partes do kernel você quer se livrar. Por exemplo, o kernel vem com muitos drivers diferentes para uma variedade de dispositivos. Se você não precisar desse suporte, livrar-se deles pode gerar alguns benefícios de velocidade, junto com um kernel menor.
Pré-requisitos
Antes de prosseguir, você deve instalar alguns programas que permitirão personalizá-lo e compilá-lo.
Nos sistemas baseados em Debian, você precisa do pacote build-essential, entre outros:
sudo apt-get install build-essential gcc libncurses5-dev libssl-dev
O pacote libncurses5-dev facilitará a configuração do kernel, portanto, certifique-se de instalá-lo. Outros sistemas operacionais Linux terão um programa semelhante, mas isso pode estar sob um nome diferente. Por exemplo, se você estiver usando o Fedora 5 razões para usar o Pure Open Source Distro, Fedora 5 razões para usar o Pure Open Source Distro, o Fedora Fedora não é tão conhecido como o Ubuntu, e tem uma reputação de ser difícil de usar. Mas se isso é verdade, por que tantas pessoas continuam usando o Fedora? Leia mais, é chamado ncurses .
Se ainda não estiver instalado, você também precisará do GNU Compiler Collection (GCC). Essa é a ferramenta responsável por traduzir o código-fonte bruto em algo compreensível para os computadores. Isto é, compilando.
Tendo instalado estes programas, abra o seu terminal para que você esteja dentro da pasta de origem Linux extraída. Por exemplo, se você usasse o método linux-source, faria isso:
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 você quer que ele seja feito. Você faz isso usando uma ferramenta de linha de comando chamada make . 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 comando make localmodconfig 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 precisará do sudo para funcionar.
Você pode encontrar algumas mensagens como a abaixo. Basta pressionar a tecla Enter para ignorá-los - eles geralmente são apenas novos recursos do kernel.
No entanto, o localmodconfig não é perfeito! Se você não está usando atualmente algumas partes do seu computador, ele pode não detectar todas as coisas que ele suporta. Como tal, você precisa ativá-los manualmente. Alternativamente, você pode pular este passo inteiramente e usar o próximo comando. Isto irá compilar o novo kernel com as mesmas opções que você está usando atualmente.
Se você preferir isso, mas usou o comando localmodconifg antes, faça o seguinte:
sudo make clean
Isso lhe dará uma construçã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, existe 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 de opções de compilação.
Feito isso, afine-o ainda mais:
sudo make nconfig
Você verá um menu colorido pop-up. Este é o menu de configuração do kernel. Para navegar, use as teclas de seta. Você pode pressionar a tecla de seta para a direita para expandir as entradas com um sinal ao lado delas. Navegue para fora desses submenus pressionando a tecla de seta para a esquerda .
Você pode alternar entradas de menu que tenham o sinal ou [] ao lado delas pressionando a barra de espaço. Isso irá percorrer as diferentes opções do menu. Se você ver um * ou M dentro, esse componente específico do kernel será compilado. A única diferença entre eles é que a opção M será carregada quando for 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 um determinado switch faz, pressione F2 sobre ele. 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, você precisará compilar Como compilar e instalar arquivos TAR GZ & TAR BZ2 no Ubuntu Linux Como compilar e instalar arquivos TAR GZ & TAR BZ2 no Ubuntu Linux Leia mais o kernel. Digite este comando:
sudo make -j$(nproc --all)
Você não precisará do 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 todos os seus núcleos de CPU. O que é um núcleo de processador? [MakeUseOf explica] O que é um núcleo de processador? [MakeUseOf Explains] Todo computador tem um processador, seja um pequeno profissional de eficiência ou uma grande usina de alto desempenho, ou então não seria capaz de funcionar. Claro, o processador, também chamado de CPU ou Processamento Central ... Leia Mais. Você pode se livrar disso, ou mudar o número para outra coisa (por exemplo -j2 ), se você quiser usar seu computador para outras tarefas sem muitos soluços. No entanto, isso também tornará a compilação mais lenta!
Este processo pode e vai demorar muito tempo. Quanto menos você escolher para compilar, mais curto será. Mesmo assim, você provavelmente precisará ser paciente.
Depois, digite este comando para concluir a compilação do resto do kernel:
sudo make modules_install
Para realmente usar este kernel, você precisará digitar este comando:
sudo make install
Isto irá copiar automaticamente o kernel para sua pasta / boot e gerar os arquivos apropriados para fazê-lo funcionar.
Mudando Kernels Usando o GRUB
Se você reiniciar após instalar seu novo kernel, seu sistema pode não funcionar ! Isso geralmente é devido a um kernel compilado incorretamente (isto é, não suportando bem o seu computador). Caso em questão, meu próprio laptop. Caso isso aconteça, recomendo editar o GRUB Como personalizar o carregador de boot do GRUB usando o BURG [Ubuntu] Como personalizar o carregador de boot do GRUB Usando o BURG [Ubuntu] Leia mais para que ele possa voltar aos kernels mais antigos. Para fazer isso, use este comando:
sudo nano /etc/default/grub
Coloque um sinal # na frente das linhas GRUB_HIDDEN_TIMEOUT e GRUB_HIDDEN_TIMEOUT_QUIET . Depois, salve essas alterações executando este comando:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Agora, se você reiniciar o seu computador, você poderá mudar para um kernel mais antigo se o seu novo não funcionar. Basta ir ao item de menu Opções avançadas e selecionar o kernel que você deseja inicializar. Se tudo der certo, parabéns! Você estará usando o kernel que você compilou sozinho.
Você está interessado em compilar mais kernels? Outros programas? Você acha que vale a pena?
Créditos da Imagem: chombosan / Shutterstock