2.6.19.2 mit Patch von Con Kolivas

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Topspeed
Beiträge: 34
Registriert: 10.02.2006 14:08:18

2.6.19.2 mit Patch von Con Kolivas

Beitrag von Topspeed » 13.01.2007 17:17:47

Hi
Ich hatte mir einen Kernel basierend auf 2.6.19 und den Patch von Con Kolivas kompiliert. Nun versuchte ich diesen cks-Patch auf auf die Sourcen von 2.6.19.2 anzuwenden, jedoch erhielt ich folgende Fehlermeldung:

Code: Alles auswählen

/usr/src/linux-2.6.19.2-cks2# bzcat /usr/src/patch-2.6.19-cks2.bz2 | patch -p1
patching file fs/proc/array.c
patching file kernel/exit.c
patching file include/linux/sched.h
patching file kernel/sched.c
patching file include/linux/sysctl.h
patching file kernel/sysctl.c
patching file Documentation/sysctl/kernel.txt
patching file include/linux/init_task.h
patching file kernel/fork.c
patching file kernel/mutex.c
patching file kernel/softirq.c
patching file block/cfq-iosched.c
patching file include/linux/ioprio.h
patching file kernel/Kconfig.hz
patching file Documentation/sysctl/vm.txt
patching file include/linux/swap.h
patching file init/Kconfig
patching file mm/Makefile
patching file mm/swap.c
patching file mm/swap_prefetch.c
patching file mm/swap_state.c
patching file mm/vmscan.c
patching file include/linux/mm_inline.h
patching file include/linux/swap-prefetch.h
patching file include/linux/mmzone.h
patching file mm/page_alloc.c
patching file fs/buffer.c
patching file mm/page-writeback.c
patching file mm/filemap.c
patching file Documentation/filesystems/proc.txt
patching file arch/i386/Kconfig
patching file Makefile
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
patching file arch/ia64/configs/tiger_defconfig
patching file arch/ia64/configs/zx1_defconfig
patching file block/Kconfig.iosched
ich bin leider noch Neuling in Sachen Kernel kompilieren. Kann mir jemadn sagen wie ich diesen Patch doch bei 2.6.19.2 nutzen kann?

noch eine kleine Frage:
Was ist der Unterschied, wenn ich bei den device treibern z.B. die Netzwerkarte Intel Pro 1000 als <M> oder als <*> einbinde?

Vielen Dank für die Hilfe!

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 13.01.2007 21:45:00

<M> bedeutet Modul, <*> bedeutet fest einkompilieren. Was ein Modul ist?

http://www.linuxhaven.de/dlhp/HOWTO/DE- ... html#ss2.5

Ich würde dir empfehlen, die Seite bei Gelegenheit zu lesen. Ist nützlich, gerade wenn man seinen Kernel gerne mal modifiziert.
Be seeing you!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 13.01.2007 22:00:26

Code: Alles auswählen

patching file Makefile 
Hunk #1 FAILED at 1. 
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
Dieses Makefile ( vermutlich das im Verzeichnis "arch/i386" ) wurde offensichtlich zwischen 2.6.19 und 2.6.19.2 so verändert, daß der Patch auf dieses nicht mehr angewendet werden kann.
Du kannst entweder auf einen neuen Patch warten, oder diese Änderung manuell einpflegen.
Poste einmal die Datei "Makefile.rej". Diese wird vermutlich nicht sehr groß sein, wenn doch, dann poste diese bitte auf NoPaste

Gruß
gms

Topspeed
Beiträge: 34
Registriert: 10.02.2006 14:08:18

Beitrag von Topspeed » 13.01.2007 22:20:25

hallo six
vielen Dank für deine Antwort!
das <m> für Module steht und <*> für fix integriert steht ist mir schon klar, aber würde es mir irgenwelche Vorteile bringen, wenn ich dieses Modul fix in den Kernel einbaue anstatt nur als ladbares Modul? ich brauche z.b. die netzwerkkarte sowieso immer, da muss es nicht ladbar sein!?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 13.01.2007 22:21:04

Ich habe mir das jetzt noch genauer angeschaut

Es handelt sich um das Makefile im Hauptverzeichnis und die Änderung die du dort durchführen mußt ist trivial.

Der Patch geht von einer leeren Extraversion aus:

Code: Alles auswählen

 EXTRAVERSION =
und möchte diese auf folgende verändern:

Code: Alles auswählen

 EXTRAVERSION = -cks2
Im 2.6.19.2 ist die Extraversion aber nicht leer:

Code: Alles auswählen

EXTRAVERSION = .2
Du solltest diese daher auf

Code: Alles auswählen

EXTRAVERSION = .2-cks2
ändern. Kannst dir natürlich auch eine andere Extraversion einfallen lassen

Gruß
gms

Topspeed
Beiträge: 34
Registriert: 10.02.2006 14:08:18

Beitrag von Topspeed » 14.01.2007 00:51:20

hi gms
vielen dank für den tipp!
ich habe das Makefile in den Sourcen abgeändert wie du vorgeschlagen hast:

Code: Alles auswählen

EXTRAVERSION = .2-cks2
leider erhalte ich bei den Befehl immer noch ein Fehlermeldung:

Code: Alles auswählen

/usr/src/linux-2.6.19.2-cks2# bzcat /usr/src/patch-2.6.19-cks2.bz2 | patch -p1
Makefile.rej:

Code: Alles auswählen

***************
*** 1,7 ****
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 19
- EXTRAVERSION =
  NAME=Avast! A bilge rat!

  # *DOCUMENTATION*
--- 1,7 ----
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 19
+ EXTRAVERSION = -cks2
  NAME=Avast! A bilge rat!

  # *DOCUMENTATION*
sollte ich nicht irgendwie das Patch-Script anpassen anstatt dem Makefile von den 2.6.19.2.Sourcen?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 14.01.2007 01:08:34

Du hast 3 Möglichkeiten:
a) den Patch einpielen, den Fehler ignorieren und nachträglich die Extraversion anpassen
b) Im Makefile die Extraversion auf leer setzen, den Patch einspielen, dann sollte kein Fehler auftreten und danach diese Extraversion manuell auf ".2-cks2" umsetzen
c) den Patch bearbeiten und dort statt der "EXTRAVERSION = " ein "EXTRAVERSION = .2" eintragen, ist aber etwas heikel, da mußt du auch auf die Blanks aufpassen

Gruß
gms

Topspeed
Beiträge: 34
Registriert: 10.02.2006 14:08:18

Beitrag von Topspeed » 14.01.2007 01:45:15

ah, jetzt ist der groschen gefallen!
Vielen Dank an gms!

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 14.01.2007 02:36:05

Topspeed hat geschrieben:hallo six
vielen Dank für deine Antwort!
das <m> für Module steht und <*> für fix integriert steht ist mir schon klar, aber würde es mir irgenwelche Vorteile bringen, wenn ich dieses Modul fix in den Kernel einbaue anstatt nur als ladbares Modul? ich brauche z.b. die netzwerkkarte sowieso immer, da muss es nicht ladbar sein!?
Das ist eine Glaubensfrage. Ich z. B. bevorzuge mittlerweile Module, weil ich mir die Option erhalten möchte, bestimmte Hardware gelegentlich _nicht_ in Betrieb zu nehmen.
Be seeing you!

Antworten