Patcha på ny kärna
Kategoriregler
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Patcha på ny kärna
Hej! Jag skulle vilja ha hjälp med att få in 5 st filer modell.patch i kompileringen av en ny kärna. Dessa patchar skulle förhoppningsvis hjälpa mig att få mitt system att fungera. Jag har kompilerat kärnor tidigare och då har mina behov funnits i nyare kärnor, men nu behöver jag alltså lägga in egna patchar och vet inte gången. Mycket tackssam för grundläggande hjälp!
MVH
Lasse
MVH
Lasse
Senast redigerad av 1 Getmarken, redigerad totalt 27 gånger.
- philip5
- HC-IRCare
- Inlägg: 1099
- Blev medlem: 21 feb 2009, 14:32
- OS: Kubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Uppsala
- Kontakt:
Re: Patcha på ny kärna
Normalt tar man den patch man vill lägga in och lägger den direkt i mappen för källkoden för den kärna som den är avsedd för eller funkar för och kör följande kommando från samma mapp:
Sedan tittar på vad man får för svar om den går igenom eller blir "rejected". Går den igenom hela vägen så är det sedan "bara" att bygga om kärnan och så klart konfigurera om den om så behövs efter nya patchen.
För att tabort mystiken kring en patch så är det en textfil som mer eller mindre innhåller radnummer där den ska byta ut kod mot annan kod. När patchen körs så letas dessa rader upp i källkoden och ersätts med det som står i patchen. Vad som kan bli fel är alltså om dessa "radnummer" inte stämmer och då vet den inte vad den ska göra. Den brukar i första hand gissa sig till där det stämmer men där själva raden är förskjuten. Lite förenklat beskrivet så funkar en patch så.
Kod: Markera allt
patch -p0 < namnpå.patch
För att tabort mystiken kring en patch så är det en textfil som mer eller mindre innhåller radnummer där den ska byta ut kod mot annan kod. När patchen körs så letas dessa rader upp i källkoden och ersätts med det som står i patchen. Vad som kan bli fel är alltså om dessa "radnummer" inte stämmer och då vet den inte vad den ska göra. Den brukar i första hand gissa sig till där det stämmer men där själva raden är förskjuten. Lite förenklat beskrivet så funkar en patch så.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Patcha på ny kärna
Jag kan tillägga att flaggan --dry-run är bra att använda, då kan man testa om patchen fungerar utan att modifiera några filer. Och ibland kan man behöva använda -p1 eller t.o.m. -p2 och för att få rätt sökväg till filerna.
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Tack för ett spännande svar: Om jag förstod dig rätt så testade jag med den ena patchen i den mapp jag hade packat upp kärnan. I den uppackade kärnans mapp ligger också patcharna. (hemmappen/src/linux-2.6.32). När jag körde patchkommandot fick jag ett felmeddelande och sedan en fråga om att skriva in patchens namn igen. Det resulterade i: drivers/media/dvb/firewire/firedtv-avc.c | 28 +++++++++++++++++++++++++---
| 1 files changed, 25 insertions(+), 3 deletions(-)
|
|diff --git a/drivers/media/dvb/firewire/firedtv-avc.c b/drivers/media/dvb/firewire/firedtv-avc.c
|index 143a322..95405d9 100644
|--- a/drivers/media/dvb/firewire/firedtv-avc.c
|+++ b/drivers/media/dvb/firewire/firedtv-avc.c
--------------------------
File to patch: 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch
patching file 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch
Hunk #1 FAILED at 117.
Hunk #2 FAILED at 962.
Hunk #3 FAILED at 986.
3 out of 3 hunks FAILED -- saving rejects to file 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.rej
lasse@hemma:~/src/linux-2.6.32$
Är jag inne på rätt spår ändå...att jag ståt i en mapp med uppackad kärna men inte färdiggjord?? Ska man isåfall få allt fixat när kärnan kompileras???
Tacksam för svar!
Lasse
| 1 files changed, 25 insertions(+), 3 deletions(-)
|
|diff --git a/drivers/media/dvb/firewire/firedtv-avc.c b/drivers/media/dvb/firewire/firedtv-avc.c
|index 143a322..95405d9 100644
|--- a/drivers/media/dvb/firewire/firedtv-avc.c
|+++ b/drivers/media/dvb/firewire/firedtv-avc.c
--------------------------
File to patch: 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch
patching file 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch
Hunk #1 FAILED at 117.
Hunk #2 FAILED at 962.
Hunk #3 FAILED at 986.
3 out of 3 hunks FAILED -- saving rejects to file 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.rej
lasse@hemma:~/src/linux-2.6.32$
Är jag inne på rätt spår ändå...att jag ståt i en mapp med uppackad kärna men inte färdiggjord?? Ska man isåfall få allt fixat när kärnan kompileras???
Tacksam för svar!
Lasse
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Patcha på ny kärna
Som du ser så står det "a/drivers/media/dvb/firewire/firedtv-avc.c" men någon katalog kallad "a" har du väl inte. Det är i sådana fall som man behöver använda -p1 för att ta bort den första katalogen i sökvägen. Om du använder -p1 så behöver inte patch fråga efter filnamnet.
"File to patch" är i det här fallet firedtv-avc.c med rätt sökväg, men använd som sagt -p1 så hittas rätt fil automatiskt.
"File to patch" är i det här fallet firedtv-avc.c med rätt sökväg, men använd som sagt -p1 så hittas rätt fil automatiskt.
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Helspännande! så P(0,1,2) står det dör en sökväg????
Om du har lust att titta på mina filer och fundera kring de två sista som inte slutar med .patch. Jag antar att de inte ska köras?? min lista annars....Ska den alltså ändras till -p1
Lasse
Om du har lust att titta på mina filer och fundera kring de två sista som inte slutar med .patch. Jag antar att de inte ska köras?? min lista annars....Ska den alltså ändras till -p1
Lasse
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna glömde listan
patch -p0 <0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch
patch -p0 <0001-firedtv-add-PID-filtering-for-SW-zigzag-retune.patch
patch -p0 <0001-firedtv-length-field-corrupt-in-ca2host-if-length-1.patch
patch -p0 <0002-firedtv-refine-AVC-debugging.patch
patch -p0 <0003-firedtv-correct-version-number-and-current-next-in.patch
patch -p0 <0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.orig
patch -p0 <0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.rej
patch -p0 <0001-firedtv-add-PID-filtering-for-SW-zigzag-retune.patch
patch -p0 <0001-firedtv-length-field-corrupt-in-ca2host-if-length-1.patch
patch -p0 <0002-firedtv-refine-AVC-debugging.patch
patch -p0 <0003-firedtv-correct-version-number-and-current-next-in.patch
patch -p0 <0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.orig
patch -p0 <0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.rej
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Patcha på ny kärna
Ja, det stämmer att -p0 ska bytas ut mot -p1. Filerna 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.orig och 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch.rej är filer som skapades därför att du felaktigt angav 0001-firedtv-add-parameter-to-fake-ca_system_ids-in-CA_I.patch som "file to patch". Du kan radera de filerna.
För säkerhets skull kan du som sagt lägga till --dry-run strax efter -p1. Då simuleras en körning utan att skada något. Om det fungerar utan felmeddelanden kan du köra samma sak igen utan --dry-run.
För säkerhets skull kan du som sagt lägga till --dry-run strax efter -p1. Då simuleras en körning utan att skada något. Om det fungerar utan felmeddelanden kan du köra samma sak igen utan --dry-run.
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Jag har nu kört alla pathcar. Den som heter rej förstår jag innehåller "rejected" På alla utom en patch som jag lade in gick något till rej och någon blev OK. Jag kan väl försöka kompilera nu då. Kanske funkar allt , kanske inte. Jag tackar igen Lektionen gav mycket. Hoppas betalkanaler från TVkortet också! Lasse
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Tyvärr funkade det inte med de patchar som jag fick in. Nu vet jag inte ifall det berodde på patcharna eller på min installation. Det borde, tycker jag ha funkat ifall patcharna varit de rätta. Vid menuconfig gjorde jag inga ändringar utan lät de förinställda värdena vara. Det program som patsharna var tänkta för fungerade som tidigare (utan betalkanaler). Jag skulle nu vilja veta ifall de rader patcharna skulle ändra har verkställts eller inte. Men hur??
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Patcha på ny kärna
Det betyder att det inte kommer att fungera som det är tänkt.Getmarken skrev:På alla utom en patch som jag lade in gick något till rej och någon blev OK.
Orsakerna kan vara flera. Linux-kärnan som följer med Ubuntu är redan patchad till viss del och skiljer sig därför från Linus Torvalds version. Det kan också vara så att patcharna är anpassade till någon annan version än just 2.6.31. Med lite grundläggande programmeringskunskap går det ofta att rätta till patcharna manuellt, men det förutsätter att man har lite koll på vad man gör.
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Det senaste svaret du gav har jag också tänkt på så just nu jobbar datorn med kärna 2.6.30. Henrik Kurelid som gjort patcharna utgick från den när han gjorde dem. Det blev också så att alla patcharna accepterades helt. Det ska bli spännande att kolla vad som händer när datorn kompilerat klart. Det är ju betalkanalerna på Boxer jag vill gå in. Den första kärna jag byggde (innan Firedtv ingick i kärnan), visade alla kanaler! Men sedan har det inte gått att se annat än de fria. Jag vill bara inte använda Windows igen!
- Getmarken
- Inlägg: 264
- Blev medlem: 14 apr 2009, 22:50
- OS: Ubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Öglunda Getmarken, LERDALA
Re: Patcha på ny kärna
Tack för all hjälp!