PDA

View Full Version : Come applicare le patchs al kernel?


NZ
05-10-2002, 11:35
Per adesso ho il kernel 2.4.19 stable "liscio" preso
dall'archivio kernel (http://www.kernel.org).
Premetto che vorrei applicare le patchs non per un reale
bisogno ma solo per imparare come si fa:)

Sempre in archivio (http://www.kernel.org) ci
sono per l'ultimo kernel stabile 2.4.19 le seguenti 2 patchs:

prepatch-2.4.20-pre9
-ac patch-2.4.20-pre8-ac3


1) che differenza c'è tra prepatch e -ac patch?
2) quale delle 2 si deve applicare? se tutte e 2,in quale ordine?
3) per future patchs devo partire sempre da un kernel "liscio"?

Dopo alcune domande di carattere "teorico" si passa al "pratico":p
Come le si applica?

su un sito ho trovato questa procedura:

(dopo aver copiato la patch in /usr/src)
cd /usr/src
gunzip prepatch-2.4.20-pre9.gz
patch -p0 < prepatch-2.4.20-pre9
cd /usr/src/linux
make xconfig
(settare e salvare!)
make clean dep bzImage modules modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinux-2.4.20-pre9
cp /usr/src/linux/System.map /boot/System.map-2.4.20-pre9
(modificare opportunamente LILO)
REBOOT.

è giusta come procedura?:confused:
Se si,vale anche per la -ac patch?:confused:
Nel caso che si possano applicare tutte e 2 le patchs,
va fatta 2 volte la procedura o si può fare tutto in una
volta lanciando
patch -p0 < prepatch-2.4.20-pre9
patch -p0 < patch2.4.20-pre8-ac3
prima di fare make xconfig?
Che "denominazione" avrebbe un kernel così patchato?

Scusate le tante domande ma sull'argomento sto a ZERO!
Ciao e grazie per qualsiasi spiegazione;)

qweasdzxc
05-10-2002, 12:11
Originariamente inviato da NZ

su un sito ho trovato questa procedura:

(dopo aver copiato la patch in /usr/src)
cd /usr/src
gunzip prepatch-2.4.20-pre9.gz
[B]patch -p0 < prepatch-2.4.20-pre9
cd /usr/src/linux
make xconfig
(settare e salvare!)
make clean dep bzImage modules modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinux-2.4.20-pre9
cp /usr/src/linux/System.map /boot/System.map-2.4.20-pre9
(modificare opportunamente LILO)
REBOOT.

è giusta come procedura?:confused:
Se si,vale anche per la -ac patch?:confused:
Nel caso che si possano applicare tutte e 2 le patchs,
va fatta 2 volte la procedura o si può fare tutto in una
volta lanciando
patch -p0 < prepatch-2.4.20-pre9
patch -p0 < patch2.4.20-pre8-ac3
prima di fare make xconfig?
Che "denominazione" avrebbe un kernel così patchato?


intanto si scrive patches credo, o no?
il procedimento e quello, ma credo proprio sia impossibile applicare quelle 2 patch li in sequenza, la prima ti fa diventare il 2.4.19 un 2.4.20 pre9, l'altra trasforma un 2.4.19 o un 2.4.20pre8 in un kernel di ac, la devi applicare al kernel giusto senno non funziona. per piccole patch come la preempt non ho avuto problemi ad applicarla anche a kernel diversi, ma quella patch e molto molto grossa in teoria.
in ogni caso le patches le puoi installare una di fila all'altra senza riconfigurare niente ovviamente, ma ti consiglio di fare una compilazione dopo ogni patch installata per vedere se la compilazione va a buon fine, in caso contrario quella patchnon andava bene...

alexmaz
05-10-2002, 12:28
nel tuo caso devi installare prima la patch 2.4.20-pre8 al kernel 2.4.19 liscio e poi la patch 2.4.20-pre8-ac3. Se vuoi mettere anche la patch per il preemptible kernel devi vedere se c'è per il kernel 2.4.20-pre8-ac3.

ciao

NZ
05-10-2002, 13:51
un grazie sia a qweasdzxc che alexmaz;)

appurato che la procedura di installazione è corretta devo solo scegliere le patches da applicare!!!

se metto dunque la pre9 devo poi mettere la pre9-ac però su kernel.org son fermi alla pre8-ac.

Ma che differenza c'è tra patches pre,ac,preempt?

Ciao;)

alexmaz
05-10-2002, 13:57
le patch ac sono quelle di alan cox, solitamente contengono dei bux fix e qualche caratteristica ggiuntiva non ancora inserita nei kernel "standard". Un tempo usavano anche la VM (gestione della memoria virtuale) diversa rispetto al kernel standard, ora non so.

la patch preeptible fa si che anche un processo che sta girando in modalità kernel possa essere sospeso per l'esecuzione di un altro processo (normalmente questo non accade) e dovrebbe migliorare la risposta del sistema, soprattutto per applicazioni realtime.

NZ
05-10-2002, 20:35
Originariamente inviato da alexmaz
[B]Se vuoi mettere anche la patch per il preemptible kernel devi vedere se c'è per il kernel 2.4.20-pre8-ac3.


C'è c'è:D:D
ho scaricato il file:
preempt-kernel-rml-2.4.20-pre8-ac3-1.patch
ma che estensione è .patch?:confused:
come si applica?

Ciao;)

alexmaz
05-10-2002, 20:46
installala come le altre... è piccola quindi non è compressa.

ciao

NZ
05-10-2002, 21:34
Originariamente inviato da alexmaz
[B]installala come le altre... è piccola quindi non è compressa.

Grazie;)

Ho appena installato la patch pre8!!!
Ho seguito la procedura,ho ricompilato e il sistema si riavvia col kernel 2.4.20-pre8.

Poi ho tentato di installare la patch pre8-ac3 con la medesima procedura ma ho ottenuto una sfilza di errori:(:(
Allego l'output del comando patch -p0 < patch-2.4.20-pre8-ac3.
Cosa può essere???:confused:
eppure da 2.4.19 a 2.4.20pre8 nessun errore....

Ciao;)

NZ
06-10-2002, 06:48
prima di applicare la patch 2.4.20-pre8 in /usr/src avevo 2 directory:
linux-2.4.19
linux (link simbolico a linux-2.4.19)
Dopo aver applicato la patch 2.4.20-pre8
i nomi di quelle 2 directory non son cambiati!
Se tento così di applicare la patch pre8-ac3 mi da errore: dice che non trova dei files e mi chiede quale file deve patchare!:eek:
se invece rinomino la directory linux-2.4.19 in linux.20pre8 allora il comando:
patch -p0 < patch-2.4.20-pre8-ac3 non da errori e la patch si applica!
Però,durante la compilazione del kernel patchato,mi appaiono 2 domande:

Assume -R?[n]
Apply anyway?[n]

non sapendo che fare ho semplicemente cliccato su INVIO e poco dopo la compilazione si ferma per un errore:
[error1] ***tmp_depends
o qualcosa di simile!!!

Cosa è successo???
Come rimediare???

Ciao;)

alexmaz
06-10-2002, 13:11
entra in linux (che dovrebbe essere il link simbolico a linux-2.4.19) e digita

patch -p1 < ../patch-2.4.20-pre8-ac3

ciao

NZ
06-10-2002, 16:52
Originariamente inviato da alexmaz
[b]entra in linux (che dovrebbe essere il link simbolico a linux-2.4.19) e digita

patch -p1 < ../patch-2.4.20-pre8-ac3


allora...
ho rifatto tutto dall'inizio:)
Son partito dal 2.4.19 "liscio" e gli ho applicato la patch-pre8.
Fin qui tutto OK!

poi ho fatto come hai detto tu:
cd /usr/src/linux
patch -p1 < ../patch-2.4.20-pre8-ac3

La patch comincia a patchare ma poi le solite domande:
Assume -R?[n]
Apply anyway?[n]
non sapendo cosa fare ho cliccato solamente INVIO.
Alla comparsa del prompt ho lanciato:
make clean dep bzImage modules modules_install
Dopo circa 10 secondi che sembra lavorare correttamente ecco che spunta:
make: ***[tmp_include_depends] Error 2
e si blocca tutto:(

Cosa c'è che non va?:confused:
i comandi dati dovrebbero esser giusti....
HELP,please;)

Ciao;)

NZ
07-10-2002, 18:23
...nessun suggerimento?...

Ho riprovato ancora ma stessa storia:(
Voi come avete fatto?:confused:

Ciao;)

alexmaz
07-10-2002, 19:14
boh io la pacth in questione (2.4.20-pre8-ac3) non l'ho provata, ma non ho mai avuto problemi a patchare i kernel con le patch ac... non saprei...

NZ
07-10-2002, 19:18
Originariamente inviato da alexmaz
[B]boh io la pacth in questione (2.4.20-pre8-ac3) non l'ho provata, ma non ho mai avuto problemi a patchare i kernel con le patch ac... non saprei...
ho capito....la solita sfiga che ho:p:(
Vabbè...metto su il 2.4.19 "liscio" e gli applico solo la patch 2.4.20-pre9 e con quella rimango!!!
Se ci fossero ugualmente news sarebbero sempre ben accette;)

grazie per l'aiuto alexmaz;)

Ciao;)

VICIUS
07-10-2002, 19:33
per risolvere basta che cambi il nome della cartella dei sorgenti in linux.20pre8 oppure fai un link.

evidentemente ad alan cox non piace usare il classico link "linux" :D

ps: se no funziona prova a vedere dentro al file della patch il percorso esatto della directory.

NZ
07-10-2002, 21:07
Originariamente inviato da VICIUS
[b]per risolvere basta che cambi il nome della cartella dei sorgenti in linux.20pre8 oppure fai un link.

già fatto....leggi sopra;)
rinonminando come dici tu la patch comincia a patchare ma poi mi fa quelle 2 domande (che non so cosa vogliano dire:() io premo INVIO per ognuna e durante la ricompilazione avviene il classico:
make: ***[tmp_include_depends] Error 2
boh!!!

Ciao;)

cdere
08-10-2002, 12:40
ma poi per togliere la patch ?

Nephorius
08-10-2002, 13:09
Originariamente inviato da NZ


allora...
ho rifatto tutto dall'inizio:)
Son partito dal 2.4.19 "liscio" e gli ho applicato la patch-pre8.
Fin qui tutto OK!

poi ho fatto come hai detto tu:
[B]cd /usr/src/linux
patch -p1 < ../patch-2.4.20-pre8-ac3

La patch comincia a patchare ma poi le solite domande:
Assume -R?[n]
Apply anyway?[n]
non sapendo cosa fare ho cliccato solamente INVIO.
Alla comparsa del prompt ho lanciato:
make clean dep bzImage modules modules_install
Dopo circa 10 secondi che sembra lavorare correttamente ecco che spunta:
make: ***[tmp_include_depends] Error 2
e si blocca tutto:(

Cosa c'è che non va?:confused:
i comandi dati dovrebbero esser giusti....
HELP,please;)

Ciao;)
Al prompt di Apply anyway devi digitare `y` e poi premi INVIO

NZ
08-10-2002, 15:55
Originariamente inviato da Nephorius
[b]
Al prompt di Apply anyway devi digitare `y` e poi premi INVIO
sicuro?
allora ricapitoliamo:
quando mi dice Assume -R premo INVIO e poi quando mi chiede Apply anyway prima scrivo y e poi INVIO.
Ora vado a riprovare per la n-esima volta...
...spero funzioni:p

x cdere:
non vorrei sparare una boiata ma mi sa che si deve ripartire da un kernel "liscio" ogni volta....

Ciao;)

NZ
08-10-2002, 17:25
Originariamente inviato da Nephorius
[b]
Al prompt di Apply anyway devi digitare `y` e poi premi INVIO
fatto!
così facendo mi appare però:
File to patch?
mmm....
mi sa che per un po lascio stare:rolleyes:

Ciao;)

Nephorius
08-10-2002, 17:51
Originariamente inviato da NZ

fatto!
così facendo mi appare però:
[B]File to patch?
mmm....
mi sa che per un po lascio stare:rolleyes:

Ciao;)

Nell' intestazione che file ti chiede?

NZ
08-10-2002, 19:32
Originariamente inviato da Nephorius
[B]
Nell' intestazione che file ti chiede?
non mi ricordo e adesso,dopo un po di pulizia,ho rimesso su il 2.4.19 "liscio" e aspetto un po per provare!
Comunque precedentemente avevo postato il file di output del comando patch -p0........

Il problema si manifesta se tento di applicare la pre8-ac3 sia sul 2.4.19 che sul 2.4.20-pre8.
Evidentemente sarà un problema di nomi e link sbagliati ma non saprei come affrontarlo:(

Prima o poi qualcuno che è riuscito ad applicare sta benedetta pre8-ac3 scriverà,passo per passo,come ci è riuscito:D lo spero....

P.S. ma se applico solo la patch pre(x) e poi esce la pre(x+1), per poterla applicare devo ripartire da un kernel "liscio" o posso farlo da quello patchato?

Ciao;)

Nephorius
08-10-2002, 19:41
Originariamente inviato da NZ
[B]
non mi ricordo e adesso,dopo un po di pulizia,ho rimesso su il 2.4.19 "liscio" e aspetto un po per provare!
Comunque precedentemente avevo postato il file di output del comando patch -p0........

Il problema si manifesta se tento di applicare la pre8-ac3 sia sul 2.4.19 che sul 2.4.20-pre8.
Evidentemente sarà un problema di nomi e link sbagliati ma non saprei come affrontarlo:(

Prima o poi qualcuno che è riuscito ad applicare sta benedetta pre8-ac3 scriverà,passo per passo,come ci è riuscito:D lo spero....

P.S. ma se applico solo la patch pre(x) e poi esce la pre(x+1), per poterla applicare devo ripartire da un kernel "liscio" o posso farlo da quello patchato?

Ciao;)

La prossima settimana penso di farlo quindi ti farò sapere.
Per quanto riguarda la patch "x+1" di solito parti col kernel già patchato xchè sono cumulative :) ovvero se non hai "x", "x+1" si incazza :)

alexmaz
09-10-2002, 00:32
ora ci provo, ma sono un po' brillo quindi non garantisco niente :D

alexmaz
09-10-2002, 00:45
io l'ho patchato senza problemi...

tar zxpvf linux-2.4.19.tar.gz

estrae direttamente in linux-2.4.19 (chiaramente facendolo in /usr/src)

ln -s linux-2.4.19 linux (creao il link simbolico)

cd linux (sono in /usr/src/linux)

patch -p1 -s < ../patch-2.4.20-pre8

il -s serve a mettere in output solo gli errori

patch -p1 -s < ../patch-2.4.20-pre8-ac3



ora prova a compilare...

ciao

alexmaz
09-10-2002, 01:11
anche la compilazione è andata senza problemi...

NZ
09-10-2002, 14:17
Originariamente inviato da alexmaz
[b]io l'ho patchato senza problemi...

tar zxpvf linux-2.4.19.tar.gz

estrae direttamente in linux-2.4.19 (chiaramente facendolo in /usr/src)

ln -s linux-2.4.19 linux (creao il link simbolico)

cd linux (sono in /usr/src/linux)

patch -p1 -s < ../patch-2.4.20-pre8

il -s serve a mettere in output solo gli errori

patch -p1 -s < ../patch-2.4.20-pre8-ac3


ahhhhhh!!!!!!
a parte quel -s ho fatto esattamente la stessa cosa eppure succede tutto sto casino:(
ma a te nel tentativo di applicare la pre8-ac3 non ha fatto quelle 2 domandi che appaiono a me?

Orrendo sospetto:
dop aver applicato tranquillamente la pre8 io ricompilo il kernel appena patchato e REBOOT...
...e poi vado con la pre8-ac3.
Non è per caso che devo applicare in sequenza le 2 patch e poi ricompilare il tutto solo alla fine?:confused:
boh...ho dei dubbi...

Ciao e grazie per le segnalazioni;)

NZ
09-10-2002, 18:02
Originariamente inviato da NZ
Orrendo sospetto:
dop aver applicato tranquillamente la pre8 io ricompilo il kernel appena patchato e REBOOT...
...e poi vado con la pre8-ac3.
Non è per caso che devo applicare in sequenza le 2 patch e poi ricompilare il tutto solo alla fine?:confused:
sospetto confermato;)
ho applicato le 3 patch (pre8 - pre8-ac3 - preempt) in successione senza ricompilare ad ogni patch e sono riuscito ad applicarle tutte senza ricevere messaggi di errore:D:D
Alla fine del processo ho ricompilato ed è andatato tutto OK!
anzi,per la precisione,alla fine della compilazione mi ha dato un errore relativo a un modulo (o libreria) non configurato per la scheda Matrox G450 ( :eek: io ho una GF 2 MX) ma comunque l'immagine me l'ha creata e facendo il boot da quella tutto OK:)

Mi è rimasto un solo dubbio:
io ho applicato anche la patch preempt-pre8-ac3-1 ma se faccio uname -a
mi compare:
Slackware 2.4.20-pre8-ac3
Come mai non compare la scritta preempt? è normale?

Ciao;)

alexmaz
09-10-2002, 18:19
si è normale che non compaia la scritta preempt.

ciao

cdere
11-10-2002, 13:44
mi puoi dire l'url preciso di tutt'ettre le patch ?

NZ
11-10-2002, 14:48
Originariamente inviato da alexmaz
[b]
si è normale che non compaia la scritta preempt.

bene,facevo già strani pensieri:rolleyes::D
Originariamente inviato da cdere
[B]
mi puoi dire l'url preciso di tutt'ettre le patch ?

I kernel e le relative patch si dovrebbero trovare tutte su http://www.kernel.org
L'unica che non ho trovata li è stata la preempt-pre8-ac3-1 ma l'ho trovata facilmentee facendo una ricerca con Google;)

CURIOSITA':
qualcuno ha provato i kernel BETA della serie 2.5.x ???
Stamattina ho scaricato il 2.5.41 e gli ho applicato la patch 2.5.41-ac2.
Poi l'ho configurato caricando i settaggi dal file di conf del 2.4.20-pre8-ac3.
Risultato:
in compilazione errori di tutti i tipi:(
Poi ho riprovato configurando il tutto manualmente (intervenendo solo dove andavo sul sicuro: sound,scsi-ide,....)
Così facendo la ricompilazione era OK ma al reboot il più terribile dei messaggi:
KERNEL PANIC
e non si avviava più niente:(
..ho dovuto reinstallare tutto...:(
Se qualcuno usa kernel della serie 2.5.x e volesse allegare il relativo file di configurazione gliene sarei grato;)

Ciao a tutti;)

alexmaz
11-10-2002, 18:48
le patch per il preemptible kernel si trovano qui:

http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/


il kernel 2.5.41 pare abbia grossi problemi a compilarsi... le patch ac per questo kernel sono soprattutto fix per la compilazione. Io lascerei perdere...


ciao

NZ
11-10-2002, 19:19
Originariamente inviato da alexmaz
[B]
il kernel 2.5.41 pare abbia grossi problemi a compilarsi... le patch ac per questo kernel sono soprattutto fix per la compilazione. Io lascerei perdere...

grossi problemi?:confused:
io direi MOSTRUOSI problemi:p
ho voluto solo provare un 2.5.x ma dopo la scottatura mai più un kernel beta;)

Ciao;)

NZ
14-10-2002, 14:06
Oggi ho scaricato delle nuove patch:
1) patch-2.4.20-pre10
2) patch-2.4.20-pre10-ac2
le ho applicate al 2.4.19 "liscio",configurato e ricompilato il tutto senza problemi:)
Però al reboot,se faccio uname -a,risulta che ho il 2.4.20-pre10-ac1:eek:
come ac1?:confused: io ho applicato l'ac2!!!
...non capisco...

Ciao;)

alexmaz
14-10-2002, 17:43
è normale, è successo anche a me... la patch è ac2 ma si vede che alan cox si è dimenticato di cambiarle nome :D

NZ
14-10-2002, 17:51
Originariamente inviato da alexmaz
[B]è normale, è successo anche a me... la patch è ac2 ma si vede che alan cox si è dimenticato di cambiarle nome :D
che simaticone quell'Alan:D
ora dovrò rieditare la signature:p

Grazie alexmaz,sei la bibbia del Kernel:p;)

Ciao;)