Março 4, 2022

Passos para contribuir para o Kernel Linux

Um dos maiores—e mais rápida—projetos de código aberto, o Linux kernel, é composta de cerca de 53,600 arquivos e cerca de 20 milhões de linhas de código. Com mais de 15.600 programadores contribuindo para o projeto em todo o mundo, o kernel Linux segue um modelo de mantenedor para Colaboração.

neste artigo, fornecerei uma lista de verificação rápida das etapas envolvidas em fazer sua primeira contribuição do kernel e analisarei o que você deve saber antes de enviar um patch. Para uma análise mais aprofundada do processo de envio para contribuir com seu primeiro patch, leia o tutorial do KernelNewbies First Kernel Patch.

contribuindo para o kernel

Passo 1: Prepare seu sistema.

os Passos neste artigo presumem que você tenha as seguintes ferramentas do sistema:

  • editor de Texto
  • cliente de e-Mail
  • sistema de controle de Versão (por exemplo, git)

Passo 2: Baixe o kernel do Linux repositório de código:

git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

Copie o atual config:

cp /boot/config-`uname -r`* .config

Passo 3: Construir/instalar o seu kernel.

make -jX
sudo make modules_install install

Etapa 4: Faça uma ramificação e mude para ela.Etapa 5: Atualize seu kernel para apontar para a base de código mais recente.

git fetch origin
git rebase origin/staging-testing

Etapa 6: Faça uma alteração na base de código.

Recompile usando make comando para garantir que sua alteração não produza erros.Etapa 7: confirme suas alterações e crie um patch.

git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^

o assunto consiste no caminho para o nome do arquivo separado por dois pontos, seguido pelo que o patch faz no tempo imperativo. Depois de uma linha em branco vem a descrição do patch e o obrigatório assinado off tag e, por último, um diff do seu patch.

aqui está outro exemplo de um patch simples:

em seguida, envie o patch usando e-mail da linha de comando (neste caso, Mutt):

mutt -H /tmp/0001-<whatever your filename is>

para saber a lista de Mantenedores a quem enviar o patch, use o get_maintainer.pl script.

o que saber antes de enviar seu primeiro patch

  • Greg Kroah-Hartman’s staging tree é um bom lugar para enviar seu primeiro patch, pois ele aceita patches fáceis de novos colaboradores. Quando você se familiarizar com o processo de envio de patches, poderá enviar patches específicos do subsistema com maior complexidade.
  • você também pode começar corrigindo problemas de estilo de codificação no código. Para saber mais, leia a documentação do estilo de codificação do kernel do Linux.
  • o script checkpatch.pl detecta erros de estilo de codificação para você. Por exemplo, executar:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • você poderia completar TODOs deixados incompletos pelos desenvolvedores:
    find drivers/staging -name TODO 
  • Coccinelle é uma ferramenta útil para correspondência de padrões.
  • leia os arquivos de discussão do kernel.
  • passar pelo linux.git log para ver commits de autores anteriores para inspiração.
  • Nota: Não top-post para se comunicar com o revisor do seu patch! Aqui está um exemplo:

    caminho errado:

    Chris,
    Sim, vamos agendar a reunião amanhã, no segundo andar.
    > em Sex, 26 de Abril de 2013 às 9h25, Chris escreveu:
    > Hey John, eu tive algumas perguntas:
    > 1. Você quer agendar a reunião amanhã?
    > 2. Em que andar do Escritório?
    > 3. Que horas são adequadas para você?

    (observe que a última pergunta foi involuntariamente deixada sem resposta na resposta.)

    maneira correta:

    Chris,
    veja minhas respostas abaixo…
    > em Sex, 26 de Abril de 2013 às 9h25, Chris escreveu:
    > Hey John, eu tive algumas perguntas:
    > 1. Você quer agendar a reunião amanhã?
    Sim, amanhã está bem.
    > 2. Em que andar do Escritório?Vamos mantê-lo no segundo andar.
    > 3. Que horas são adequadas para você?
    09: 00 AM seria bom.

    ( todas as perguntas foram respondidas e, dessa forma, economiza tempo de leitura.)

  • o desafio Eudyptula é uma ótima maneira de aprender o básico do kernel.

para saber mais, leia o primeiro tutorial de Patch do kernel do KernelNewbies. Depois disso, se você ainda tiver alguma dúvida, pergunte na lista de discussão kernelnewbies ou no canal #kernelnewbies IRC.

Deixe uma resposta

O seu endereço de email não será publicado.