"We are back" « oc.at

Kernel patchen mit .diff files

Dumdideldum 30.12.2003 - 17:09 605 5
Posts

Dumdideldum

Here to stay
Avatar
Registered: Jun 2001
Location: Vienna
Posts: 1511
Ich bräuchte etwas Unterstützung beim Patchen des Kernels (2.6.0). Ich hab einige .diff und .diff.gz files, damit hoffentlich meine TV-Karte läuft.

Leider hab ich null Ahnung, wie das Patchen funktionieren soll - bei diff --help wird mir schlecht.

tia

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
patch brauchst du, nicht diff

Geh in das Kernel-Verzeichnis rein und mach

patch -p1 < diff-file
oder
gzcat diff-file.gz | patch -p1

Statt -p1 ist auch manchmal -p0 zu verwenden, das hängt einfach davon ab, von welchem Verzeichnis aus der Patch gemacht wurde.

Dumdideldum

Here to stay
Avatar
Registered: Jun 2001
Location: Vienna
Posts: 1511
Zitat von Ringding
patch brauchst du, nicht diff

Geh in das Kernel-Verzeichnis rein und mach

patch -p1 < diff-file
oder
gzcat diff-file.gz | patch -p1

Statt -p1 ist auch manchmal -p0 zu verwenden, das hängt einfach davon ab, von welchem Verzeichnis aus der Patch gemacht wurde.

passt, thx.

Situation ist die, dass ich einige c files im Kernel-Source für video for Linux patchen muss.

Zum Beispiel die tuner.c, soll mit diesem diff abgeändert werden:
Code:
The patch below might help.

  Gerd

--- video4linux/tuner.c~	2003-12-17 11:32:01.000000000 +0100
+++ video4linux/tuner.c	2003-12-21 18:46:07.161379609 +0100
@@ -745,7 +745,8 @@
 	company_code = buf[0x11] << 8 | buf[0x12];
         printk("tuner: microtune: companycode=%04x part=%02x rev=%02x\n",
 	       company_code,buf[0x13],buf[0x14]);
-        if (company_code != 0x4d54) {
+        if (company_code != 0x4d54 &&
+	    company_code != 0x3cbf) {
 		printk("tuner: microtune: unknown companycode\n");
 		return 0;
 	}

patch -p1 < diff-file ?

oder

patch -p1 tuner.c < diff-file


Und wenn das funkt, wie wird das neue Modul gebildet ?
Mittels make modules wieder ?


Vielen Dank im Voraus

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Wenn das alles ist, kannst es auch mit der Hand ausbessern (die Zeile mit dem - löschen und die 2 mit dem + stattdessen rein).

Sonst musst du entweder ins video4linux rein (find -name video4linux, wenn du nicht weißt, wo das ist) und -p1 verwenden oder in das Verzeichnis drüber und -p0 stattdessen. Und tuner.c brauchst nicht angeben.

Einfach nochmal make ohne irgendwas, das funkt beim 2.6er eh ordentlich.

Dumdideldum

Here to stay
Avatar
Registered: Jun 2001
Location: Vienna
Posts: 1511
thx, werds gleich mal probieren

Dumdideldum

Here to stay
Avatar
Registered: Jun 2001
Location: Vienna
Posts: 1511
Der Patch-Vorgang funktioniert nun, danke für die Hilfe.

Jedoch haut das Make absolut nicht hin, seitenweise Fehlermeldungen ala
Code:
bttv.o(.text+0xa374): In function `bttv_dma_free':
: undefined reference to `btcx_riscmem_free'

bei make bttv.

Ich gebs auf :mad: :mad:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz