Sida 1 av 1
Patcha på ny kärna
Postat: 13 dec 2009, 14:19
av Getmarken
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
Re: Patcha på ny kärna
Postat: 13 dec 2009, 14:23
av philip5
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å.
Re: Patcha på ny kärna
Postat: 13 dec 2009, 14:27
av Lars
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.
Re: Patcha på ny kärna
Postat: 13 dec 2009, 17:00
av Getmarken
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
Re: Patcha på ny kärna
Postat: 13 dec 2009, 17:10
av Lars
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.
Re: Patcha på ny kärna
Postat: 13 dec 2009, 17:18
av Getmarken
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
Re: Patcha på ny kärna glömde listan
Postat: 13 dec 2009, 17:19
av Getmarken
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
Re: Patcha på ny kärna
Postat: 13 dec 2009, 17:28
av Lars
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.
Re: Patcha på ny kärna
Postat: 13 dec 2009, 17:33
av Getmarken
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
Re: Patcha på ny kärna
Postat: 14 dec 2009, 11:50
av Getmarken
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??
Re: Patcha på ny kärna
Postat: 14 dec 2009, 12:48
av Lars
Getmarken skrev:På alla utom en patch som jag lade in gick något till rej och någon blev OK.
Det betyder att det inte kommer att fungera som det är tänkt.
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.
Re: Patcha på ny kärna
Postat: 14 dec 2009, 13:21
av Getmarken
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!
Re: Patcha på ny kärna
Postat: 27 dec 2009, 19:35
av Getmarken
Tack för all hjälp!