GNU/Linux >> Linux Esercitazione >  >> Linux

Un elenco di controllo per l'invio della prima patch del kernel Linux

Uno dei più grandi e più veloci progetti open source, il kernel Linux, è composto da circa 53.600 file e quasi 20 milioni di righe di codice. Con oltre 15.600 programmatori che contribuiscono al progetto in tutto il mondo, il kernel Linux segue un modello di manutenzione per la collaborazione.

In questo articolo, fornirò un rapido elenco di controllo dei passaggi necessari per fornire il tuo primo contributo al kernel e guarderò ciò che dovresti sapere prima di inviare una patch. Per uno sguardo più approfondito al processo di invio per contribuire con la tua prima patch, leggi il tutorial KernelNewbies First Kernel Patch.

Contributo al kernel

Fase 1:prepara il tuo sistema.

I passaggi in questo articolo presuppongono che tu abbia i seguenti strumenti sul tuo sistema:

  • Editor di testo
  • Client di posta elettronica
  • Sistema di controllo della versione (ad es. git)

Fase 2:scarica il repository del codice del kernel Linux:

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

Copia la tua configurazione attuale:

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

Fase 3:compila/installa il kernel.

make -jX 
sudo make modules_install install

Fase 4:crea un ramo e passa ad esso.

git checkout -b first-patch

Fase 5:aggiorna il kernel in modo che punti alla base di codice più recente.

git fetch origin
git rebase origin/staging-testing

Fase 6:apporta una modifica alla base di codice.

Ricompila usando make comando per assicurarti che la tua modifica non produca errori.

Fase 7:conferma le modifiche e crea una patch.

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

L'oggetto è costituito dal percorso del nome del file separato da due punti, seguito da ciò che fa la patch all'imperativo. Dopo una riga vuota arriva la descrizione della patch e il tag firmato obbligatorio e, infine, un diff della tua patch.

Ecco un altro esempio di una semplice patch:

Quindi, invia la patch utilizzando l'e-mail dalla riga di comando (in questo caso, Mutt):

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

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Per conoscere l'elenco dei manutentori a cui inviare la patch, utilizzare lo script get_maintainer.pl.

Cosa sapere prima di inviare la tua prima patch

  • L'albero di staging di Greg Kroah-Hartman è un buon posto per inviare la tua prima patch poiché accetta facili patch dai nuovi contributori. Una volta acquisita familiarità con il processo di invio delle patch, è possibile inviare patch specifiche del sottosistema con maggiore complessità.
  • Puoi anche iniziare con la correzione dei problemi di stile di codifica nel codice. Per saperne di più, leggi la documentazione sullo stile di codifica del kernel Linux.
  • Lo script checkpatch.pl rileva gli errori di stile di codifica per te. Ad esempio, esegui:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • Potresti completare le TODO lasciate incomplete dagli sviluppatori:
    find drivers/staging -name TODO 
  • Coccinelle è uno strumento utile per il pattern matching.
  • Leggi gli archivi di posta del kernel.
  • Scorri il log di linux.git per vedere i commit degli autori precedenti tra cui trarre ispirazione.
  • Nota:non inserire post in alto per comunicare con il revisore della tua patch! Ecco un esempio:

    Modo sbagliato:

    Chris,

    Sì, organizziamo l'incontro domani, al secondo piano.

    > Ven, 26 aprile 2013 alle 9:25, Chris ha scritto:

    > Ehi John, avrei alcune domande:

    > 1. Vuoi fissare la riunione di domani?

    > 2. A quale piano dell'ufficio?

    > 3. A che ora è adatto a te?

    (Si noti che l'ultima domanda è stata lasciata involontariamente senza risposta nella risposta.)

    Modo corretto:

    Chris,

    Vedi le mie risposte qui sotto...

    > Ven, 26 aprile 2013 alle 9:25, Chris ha scritto:

    > Ciao John, avrei alcune domande:

    > 1. Vuoi programmare la riunione di domani?

    Sì, domani va bene.

    > 2. A quale piano dell'ufficio?

    Manteniamolo al secondo piano.

    > 3. A che ora è adatto a te?

    Le 09:00 andrebbero bene.

    (Tutte le domande hanno ricevuto risposta e in questo modo si risparmia tempo di lettura.)

  • La sfida Eudyptula è un ottimo modo per imparare le basi del kernel.

Per saperne di più, leggi il tutorial KernelNewbies First Kernel Patch. Dopodiché, se hai ancora domande, chiedi sulla mailing list kernelnewbies o nel canale IRC #kernelnewbies.


Linux
  1. 9 cose da fare nei tuoi primi 10 minuti su un server Linux

  2. Test di integrazione continui per il kernel Linux

  3. Qual è il tuo strumento di registrazione dello schermo preferito per Linux?

  4. 5 migliori estensioni della shell GNOME per il tuo desktop Linux

  5. Kernel Linux per Nintendo Wii?

Come modificare i parametri di avvio del kernel su Linux

20 passaggi per preparare il tuo PC all'installazione di Linux

Come scoprire la versione del kernel Linux in esecuzione sul tuo PC

Trasforma il tuo PC Linux in altoparlanti Bluetooth per il tuo telefono

Patch del kernel Linux Raspberry Pi con KernelCare GRATIS!

Le migliori distribuzioni Linux di KDE per il tuo desktop