[gelöst] Kernel auf Pentium3 optimieren mit "make-kpkg&

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
ML1982
Beiträge: 32
Registriert: 19.09.2007 22:09:11

[gelöst] Kernel auf Pentium3 optimieren mit "make-kpkg"

Beitrag von ML1982 » 13.10.2007 14:44:57

Ich möchte auf meine Notebook mit Core Duo CPU einen Kernel für einen Pentium3 Compilieren.

Dazu stelle ich in der Kernelconfiguration folgendes ein:

Code: Alles auswählen

"Processor types and features"->"Processor family"->"Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"

"Processor types and features"->"Generic X86 support" OFF //ich will den Kernel ja nur auf dem Pentium III nutzen
soweit so gut!
Nun zu meinem Problem. Wenn ich ein Programm mit gcc compiliere füge ich immer die Option

Code: Alles auswählen

 -march=pentium3 
hinzu. Was muss ich "make-kpkg" übergeben damit gcc mit der pentium3 Optimierung aufgerufen wird?

Bei "make-kpkg" kann man ja eine "--arch" und eine "--subarch" angeben, aber WAS soll ich da angeben? pentium3 geht nicht...

Und was ist eigentlich eine Architecture? Ok, Intel x86 ist eine und beispielsweise ARM eine andere. Aber wann unterscheide ich zwischen i386, i586 usw.?
Und wo ist mein Pentium3 da einzuordnen?

Ist mein Notebook mit Core Duo CPU eine andere Architecture als der pentium3 und spricht man deshalb hier schon von Cross-compiling? Oder noch nicht, da es beides x86 ist?!

Dann habe ich da noch das Programm "dpkg-architecture" gefunden, scheinbar kann man dort angeben, für welches Zielsystem debian pakete erstelllt werden aber hier ist mir zum einen nicht klar wo der Unterschied zwischen:
DEB_BUILD_ARCH, DEB_BUILD_ARCH_CPU und DEP_BUILD_GNU_CPU ist.

Vorallem weiß ich nicht was ich für den Pentium3 da einstellen soll... Eine Liste möglicher Angaben findet man zwar hier:
http://debiananwenderhandbuch.de/dpkg-architecture.html
aber, die scheint aber veraltet zu sein, da bei meinem Core Duo System DEP_BUILD_GNU_CPU=i486 ist, und das gar nicht in der Liste steht...
Zuletzt geändert von ML1982 am 16.12.2007 00:14:36, insgesamt 1-mal geändert.

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

Beitrag von gms » 13.10.2007 16:39:05

ML1982 hat geschrieben:Was muss ich "make-kpkg" übergeben damit gcc mit der pentium3 Optimierung aufgerufen wird?
du brauchst nichts weiter anzugeben, durch das Setzen der "Processor family" auf "Pentium III" hast du das schon indirekt erledigt und es wird die Option "-march=i686" an den gcc übergeben
ML1982 hat geschrieben:Und was ist eigentlich eine Architecture? Ok, Intel x86 ist eine und beispielsweise ARM eine andere. Aber wann unterscheide ich zwischen i386, i586 usw.?
i385, i586 sind Subarchitekturen, kannst du auch als verschiedene Versionen der gleichen Architektur betrachten
ML1982 hat geschrieben:Und wo ist mein Pentium3 da einzuordnen?
Ist ein i686
ML1982 hat geschrieben: Ist mein Notebook mit Core Duo CPU eine andere Architecture als der pentium3 und spricht man deshalb hier schon von Cross-compiling? Oder noch nicht, da es beides x86 ist?!
hier ist die Grenze nicht so eindeutig, dein Notebook kann praktisch unter zwei verschiedenen Betriebsmodi laufen ( x86_32 bzw x86_64 ), jetzt könnte man das als verschiedene Architekturen betrachten ( aus Kernelsicht waren das auch bisher zwei verschieden Architekturen, das soll sich jetzt aber ändern ), oder auch als Subarchitekturen.
Auch der Begriff "Crosscompiling" ist nicht so eindeutig, die aktuellen gcc Versionen beherrschen alle eine biarch-Architektur, mann kann also auf einem 64 bit Intel/AMD System auch 32 bit Programme erzeugen und auf einem 32 bit Intel/AMD System auch 64 bit Programme. Daher wird hier auch keine sogenannte "Crosscompiler-Toolchain" benötigt, nur die entsprechenden Libraries müssen installiert sein. Aber wenn man x86_32 und x86_64 als zwei verschiedene Architekturen sieht, müßte man hier auch von "Crosscompiling" sprechen.

Gruß
gms
Zuletzt geändert von gms am 13.10.2007 16:41:16, insgesamt 1-mal geändert.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 13.10.2007 16:39:38

Wenn du in der Kernelconfig die Option für Pentium 3 setzt, wird dem gcc automatisch "--march=i686 --mtune=pentium3" mitgegeben. (siehe ../arch/i386/Makefile.cpu) Bei make-kpkg brauchst du gar nichts anzugeben.

Antworten