Gå til innhold

Hvordan bruke kernel patch?


Anbefalte innlegg

Videoannonse
Annonse

Du kjørte *buntu, gjorde du ikke? I så fall er nok denne fin å se på (NB: denne er vel egentlig skrevet da 6.10 var siste versjon, men det meste der gjelder jo fortsatt), selv om det var kun patching du lurte på. Ellers finner en ganske mange forklaringer på hvordan bruke patch ved å bruke en WWW-søkemotor: f.eks. denne.

(For ikke å glemme man patch)

 

Lykke til :-D

Lenke til kommentar
Noen grunn til at du vil ha nyere kernel?

8782055[/snapback]

 

Det er høyst urelevant.

 

Du kjørte *buntu, gjorde du ikke? I så fall er nok denne fin å se på  (NB: denne er vel egentlig skrevet da 6.10 var siste versjon, men det meste der gjelder jo fortsatt), selv om det var kun patching du lurte på. Ellers finner en ganske mange forklaringer på hvordan bruke patch ved å bruke en WWW-søkemotor: f.eks. denne.

(For ikke å glemme man patch)

 

Lykke til :-D

8782318[/snapback]

 

Takk for svar - prøvde $ sudo patch -p1 <patch>, men det skjedde ikke noen ting. Måtte bruke CTRL+C for å avbryte "patchingen".

 

edit; Å kjøre med --dry-run gjorde heller ikke noe.

Endret av loathsome
Lenke til kommentar

Du måtte avbryte med ^C når det ikke skjedde noe? Du mener kanskje at den spyttet ikke ut noe tekst, men noe ble i hvert fall gjort? Patching tar vanligvis ikke så utrolig lang tid, akkurat. Har du sjekket at du bruker riktig nivå av prefiks-stripping (du sier du brukte -p1) i forhold til path'en i patchen du påfører?

 

Prøv å sleng på --verbose og vent, så bør den si ifra hva den evt jobber med.

 

Redigert (Ekstra feilkilder):

Du har husket å pakke ut patchen, om den er komprimert som .gz eller .bz2 e.l., ikke sant? Du står i rett katalog (typisk /usr/src eller /usr/src/linux -- avhengig av benyttet prefiksstripping) når du forsøker å patche? [Men det er litt rart at du ikke får ut noen feilmelding heller om du har blitt utsatt for disse feilene.]

 

Redigert2: Bra, Egil.B, du lukta lunta med én gang. Sorry at jeg ikke så den selv.

Endret av kommers
Lenke til kommentar
Du måtte avbryte med ^C når det ikke skjedde noe? Du mener kanskje at den spyttet ikke ut noe tekst, men noe ble i hvert fall gjort? Patching tar vanligvis ikke så utrolig lang tid, akkurat. Har du sjekket at du bruker riktig nivå av prefiks-stripping (du sier du brukte -p1) i forhold til path'en i patchen du påfører?

 

Prøv å sleng på --verbose og vent, så bør den si ifra hva den evt jobber med.

 

Redigert (Ekstra feilkilder):

Du har husket å pakke ut patchen, om den er komprimert som .gz eller .bz2 e.l., ikke sant? Du står i rett katalog (typisk /usr/src eller /usr/src/linux -- avhengig av benyttet prefiksstripping) når du forsøker å patche? [Men det er litt rart at du ikke får ut noen feilmelding heller om du har blitt utsatt for disse feilene.]

 

Redigert2: Bra, Egil.B, du lukta lunta med én gang. Sorry at jeg ikke så den selv.

8782567[/snapback]

 

Hvordan vet jeg hvilke "nivå av prefiks-stripping" jeg skal bruke? Leste bare at jeg skulle bruke «-p1» :) og hvordan finner jeg ut hvor jeg må være? Skal jeg bare prøve under /usr/src?

 

Ikke gjort dette før, tydeligvis. :whistle:

Lenke til kommentar

Her er de første linjene;

 

diff --git a/Makefile b/Makefile

index d970cb1..7980f39 100644

--- a/Makefile

+++ b/Makefile

@@ -1,7 +1,7 @@

VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 21

-EXTRAVERSION =

+EXTRAVERSION = .3

NAME = Nocturnal Monster Puppy

 

Hvillke skal jeg bruke?

Lenke til kommentar

I patchen din ser man at den modifiserer Makefile til Linux. Denne er laget som en diff (differansen, hvilke filer den gjelder angis med "---" og "+++" og hver linje i patchen som starter med "-" eller "+" angir linjer med endringer, linjer uten dette angir referansepunkter der koden/innholdet er lik(t) i begge filene) mellom a/Makefile og b/Makefile (begge angitt med relativ path i forhold til der du står når du påfører patchen, siden de ikke starter med '/'). (NB: En .patch-fil kan inneholde diff'er for flere fil-par, de kommer etter hverandre i fila, og markeres med ny "---"/"+++" osv, og alle diffene blir påført i én operasjon med patch). Siden stien til din Makefile er /usr/src/linux*/Makefile og du ikke har noen "a"- eller "b"-katalog i kildekodetreet til Linux så må du strippe vekk prefiksene "a/" og "b/" slik at dersom du da står i /usr/src/linux* vil patchen "treffe" din Makefile som ligger i katalogen. Altså må du strippe vekk til og med den første skråstreken (dvs -p1).

 

Mao. prøv:

cd /usr/src/linux* (bytt ut "linux*" med navnet på katalogen med kildekodetreet du vil patche, slik at det passer for deg)

sudo patch --dry-run -p1 < sti/til/din/super.patch (en dry-run først for å se om det passer -- greit når man er ny i faget ;-) )

sudo patch -p1 < sti/til/din/super.patch (patche på ordentlig)

Endret av kommers
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...