Mk-krnpatch4-1file
Da LinuxVar, il LUG della provincia di Varese.
| mk-krnpatch4-1file {{{versione}}} | |
| Linguaggio: | Bash scripting |
| Licenza: | GPL |
| Requisiti: | |
| Autore: | Wolf |
| Mail: | luigi.b@aliceposta.it |
| Homepage: | ??? |
| TODO: | |
| Download: | Mk-krnpatch4-1file |
Contenuti |
Informazioni progetto
mk-krnpatch4-1file (make kernel patch for one file) è uno script che serve per creare una patch per il kernel, o meglio, semplifica i compiti per tale scopo, però, attenzione, soltanto quando c'è da modifcare un solo file.
Un requisito fondamentale è l'avere installato Vim e sapere usare almeno i comandi di base di questo editor.
Lo script fa una serie di controlli, il primo è che siate root, il secondo avverte che lo script usa Vim e vi chiede se volete uscire (nel caso non sappiate usarlo), il terzo verifica se Vim è installato, il quarto verifica se è installato diff, anche se dovrebbe di regola essere installato in quasi tutte le distribuzioni Linux, come Vim del resto, il quinto verifica se è già presente il file /tmp/patch in quanto questo sarà il file dove verrà scritta la patch che verrà creata con diff.
Poi vi verrà chiesto di inserire il nome del kernel da patchare, NOTA BENE: il kernel deve essere già installato e decompresso in /usr/src, di seguito dovrete scrivere il percorso da dentro i sorgenti del kernel, in tutti e due i casi lo script controllerà l'esistenza sia della directory dei sorgenti che del file da modificare, nel caso non li trovi uscirà con un messaggio di errore.
Successivamente verrete avvertiti che state per usare Vim per modificare il file, basterà dare invio e il file verrà aperto con questo editor, apportate le modifiche del caso, poi chiudetelo salvandolo, il metodo più semplice è "ZZ" (notare che le "z" sono maiuscole), al che verra creata la patch in /tmp/patch, che poi potrete copiare, rinominarla, o fare quello che credete.
Alla fine un messaggio vi dirà se la creazione della patch è andata a buon fine e vi ricorderà il nome del file, oppure vi avvertirà se non è riuscito a creare la patch.
NOTA: nei sorgenti del kernel vi rimmarrà un file che avrà il nome di quello che avete modificato ma con l'estensione .orig, sarà il file originale, quello senza le modifiche della patch, volutamente ho preferito non cancellarlo in quanto potrete agevolmente farlo voi a mano o salvarlo nel caso pensiate sia utile per qualche motivo.
Notare che questo script serve per creare la patch, ma non per dargli il nome che vogliamo (operazione che non ho incluso per la sua estrema semplicità!) o per distribuirla, al proposito posto questo link che porta ad una pagina che spiega come formattare la mail per la spedizione della patch al team di sviluppo del kernel.
Questo link me lo ha passato il buon Mobius, che ringrazio anche per gli spunti che mi ha dato per questo script.
Da notare anche che questo script è una elaborazione di quanto consigliato nella documentazione del kernel, nei sorgenti lo trovate in Documentation/SubmittingPatches.
Installazione
Il metodo più semplice per l'installazione è il seguente:
Copiare mk-krnpatch4-1file in /usr/bin # cp mk-krnpatch4-1file /usr/bin
Eventualmente verificare se è eseguibile, nel caso non lo fosse: # chmod +x /usr/bin/mk-krnpatch4-1file
Potete comunque eseguirlo da qualsiasi posizione verificando prima che sia eseguibile.
Quick start
L'uso è illustrato nelle Informazioni progetto, comunque descrivo di seguito i vari passi.
1) Copiare i sorgenti del kernel in /usr/src e decomprimerli 2) Lanciare lo script 3) Rispondere alle varie domande 4) Inserire il nome del kernel quando lo chiede 5) Inserire il percorso del file da modificare a partire da dentro la directory dei sorgenti 6) Dare invio quando dice che userà Vim per modificare il file 7) Modificare il file, salvarlo e chiudere Vim 8) La patch è creata, è scritta nel file /tmp/patch
Note
Ho scritto quei quattro comandi che ci sono in Inglese, se qualcuno trova degli errori per favore me lo faccia notare (ricordo che il mio Inglese non è dei migliori!).
Prospettive future
Per l'uso di questo script non penso servano delle modifiche future, posso provare ad implementare lo stesso script includendo la possibilità di patch non per un singolo file ma per diversi, se lo faccio o creo un'altro script a parte, o se lo implemento in questo modificherò il nome in quanto così specifica che "serve per un file".
Download
Puoi scaricare lo script da questo indirizzo.
IMPORTANTE: il file che scaricherai si chiama Mk-krnpatch4-1file.sh per motivi di upload con questo sito, ti consiglio di rinominarlo in mk-krnpatch4-1file, oppure tieni conto del nuovo nome, maiuscola ed estensione comprese.

