# cflag für Athlon 64 und Fragen zur Installation

## SouLLesS12

Guten Tag miteinander,

bevor ich mit meinem Fragen nerve kurz zu meinem weg hierher in Forum.

Ich setze jetzt seit ca. 1/2 Jahr Ubuntu Linux ein und habe eigentlich 0 Probleme. Hat mein Windows auch so gut wie ersetzt. Nur will ich einfach Linux ein bisschen besser kennenlernen und von Gentoo hat man einiges gutes gehört. Also Install-Docu mal durchgelesen und das Konzept hinter Gentoo als Geil empfunden  :Wink: . Also will ich das jetzt mal am Wochenende draufbacken.

So nun meine Frage.

Meine CPU ist ein AThlin 64. Der richtige cflag müsste ja nun so aussehen:

Opteron/Athlon64 (AMD)

CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -O2 -pipe"

CXXFLAGS="${CFLAGS}"

Jetzt stellt sich mir die Frage ob ich mir damit dann nicht ein 64 Bit BS aufziehe. Habe ich eigentlich nicht vor, möchte vorerst noch bei 32 Bit bleiben. Sollte ich damit richtig liegen welchen cflag sollte ich dann verwenden?

Besten Dank vorab und vielleicht liest man sich ja bald wieder.

Mfg SouLLesSLast edited by SouLLesS12 on Tue Feb 21, 2006 9:59 am; edited 1 time in total

----------

## ConiKost

Hi!

Falls du eine 32-Bit Installation machst:

```
CFLAGS="-march=athlon-xp -O2 -msse2 -pipe -fomit-frame-pointer"
```

Falls du den neuen AMD64 Venice hast geht auch:

Dann kannst du nach der Installation auf GCC 3.4 upgraden!

Dann darfst du das nutzen:

```
CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
```

Wenn du einen AMD64 Venice hast, dann:

```
CFLAGS="-march=k8 -O2 -msse3 -pipe -fomit-frame-pointer"
```

Bei einer 64-Bit Installation kannst du direkt das nutzen:

```
CFLAGS="-march=k8 -O2 -msse3 -pipe -fomit-frame-pointer"
```

Ich persönlich fahre mit meinem AMD64 immer noch komplett 32-Bit!

----------

## SkaaliaN

 *ConiKost wrote:*   

> Hi!
> 
> Falls du eine 32-Bit Installation machst:
> 
> ```
> ...

 

wieso fährst du denn noch 32bit? lohnenswert wäre doch die 64bit variante!?

----------

## Treborius

 *ConiKost wrote:*   

> Hi!
> 
> Bei einer 64-Bit Installation kannst du direkt das nutzen:
> 
> ```
> ...

 

wieso hab ich dann hier

```

CFLAGS="-O2 -march=athlon64 -pipe .....

```

?

----------

## SinoTech

Wichtig sollte for allem der "CHOST" sein. Stellst du den auf "i686..." generiert auch der gcc (Ab version 3.4.X) nur 32 Bit binaries, selbst wenn du als CFLAG "athlon64", "k8", ... angegeben hast (Wobei ich das nur mal so gehört habe. Im Zweifelsfall also "athlon-xp" statt "athlon64" in den CFLAGS angeben).

Mfg

Sino

----------

## SouLLesS12

Hmm das ging ja tierisch fix, besten Dank an alle.

Werde dann wohl athlon-xp eintragen.

Drückt mir die Daumen am Wochenende  :Confused: .

Mfg SouLLesS

----------

## theche

```
       

       -m32

       -m64

           Generate code for a 32-bit or 64-bit environment.  The 32-bit environment sets int, long and pointer to 32 bits and

           generates code that runs on any i386 system.  The 64-bit environment sets int to 32 bits and long and pointer to 64

           bits and generates code for AMD's x86-64 architecture.

```

das mag deinen gcc auch für einen k8 dazu zwingen, 32Bit code zu erzeugen. Hab ich aber nicht ausprobiert. Schau einfach mal in die man-Page

----------

## slick

Habe einen Athlon64-X2 mit einem 32bit System. Auf gcc-3.4.x verwende ich (bisher problemlos) folgendes:

```
CHOST="i686-pc-linux-gnu"

CFLAGS="-march=athlon64 -O2 -pipe"

CXXFLAGS="${CFLAGS}"
```

----------

## energyman76b

Hi,

fährst du 64bit, kannst du auf -fomit-frame-pointer verzichten.

Du kannst noch ftracer und fweb hinzufügen.

Ob sie was bringen, kA, aber für gewöhnlich schaden sie nicht.

Zumindest nicht bei amd64.

----------

## theche

sobald er irgendeine Optimierung (-O[ s123]) eingeschaltet haben sollte, ist -fomit-frame-pointer angeschaltet.

----------

## Anarcho

Nur als Hinweis, falls es da Unklarheiten gibt:

Du solltest dann die Athlon-XP stages und Install CD verwenden sonst entpacksts du ein 64 Bit System.

----------

## Merlin-TC

Und ein Wechsel von 32Bit auf 64Bit ist nicht möglich und man muß das komplette System neu installieren.

----------

## SouLLesS12

Hmm,

ok nochmals vielen Dank an alle.

Habe noch eine weitere Frage und möchte keinen neuen Thread aufmachen.

Bin noch nicht wirklich weit gekommen mit der Installation. 

Hat aber soweit alles geklappt. Also heute morgen noch schnell /proc und /dev gemountet, bin in die neue umgebung gechrootet, habe portage configuriert und das profil eingerichtet. Dann wurde die Zeit knapp und und musste bei den use flags (Noch nichts gemacht) aufhören.

Wenn ich mich heute wieder dran setzte muss ich dann die genannten schritte (proc und dev mounten und chrooten)? Portage muss ich ja nicht nochmals configurieren oder? Das Profil sollte ja auch weiterhin bestehen?

Oder anders gefragt. Sind diese schritte korreckt so:

Von der cd starten (Klar ne  :Wink:  ), inet einrichten, swap aktivieren, /mnt/gentoo und /mnt/gentoo/boot mounten, proc und dev mounten und dann wieder chrooten. Dann mit den use flags weitermachen?

Ist das so richtig?

Besten dank.

Mfg SouLLesS

----------

## schachti

 *theche wrote:*   

> sobald er irgendeine Optimierung (-O[ s123]) eingeschaltet haben sollte, ist -fomit-frame-pointer angeschaltet.

 

Zumindest bei 32 Bit stimmt das nicht - wie es bei 64 Bit aussieht, weiß ich nicht.

----------

## schachti

 *Treborius wrote:*   

>  *ConiKost wrote:*   Hi!
> 
> Bei einer 64-Bit Installation kannst du direkt das nutzen:
> 
> ```
> ...

 

Siehe http://www.gentoo.org/proj/en/base/amd64/technotes/index.xml?part=1&chap=3#doc_chap9:

 *Quote:*   

> 
> 
> Note: -march=k8 equals -march=athlon64 equals -march=opteron.
> 
> 

 

----------

## schachti

 *SouLLesS12 wrote:*   

> 
> 
> Wenn ich mich heute wieder dran setzte muss ich dann die genannten schritte (proc und dev mounten und chrooten)? Portage muss ich ja nicht nochmals configurieren oder? Das Profil sollte ja auch weiterhin bestehen?
> 
> 

 

Genau. Also alle Schritte bis ins chroot wie gewohnt nach Anleitung, und dann machst Du dort weiter, wo Du aufgehört hast.

----------

## SubMuffi

Unsinn! Man muss sein System komplett neu kompilieren, aber nicht neu installieren.

Als erstes natürlich diese ebuilds incl. des gcc mit den neuen CFLAGS und CHOST.

app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.12-r4 >=sys-libs/zlib-1.1.4 !sys-devel/hardened-gcc >=sys-libs/glibc-2.3.3_pre20040420-r1 >=sys-libs/ncurses-5.2-r2 sys-devel/gettext >=sys-apps/texinfo-4.2-r4 >=sys-devel/bison-1.875 >=sys-devel/binutils-2.14.90.0.8-r1 sys-devel/patch sys-devel/patch sys-devel/gnuconfig >=sys-apps/sed-4 sys-devel/patch

und schliesslich dann ein emerge -e world.

 *Merlin-TC wrote:*   

> Und ein Wechsel von 32Bit auf 64Bit ist nicht möglich und man muß das komplette System neu installieren.

 

----------

## SinoTech

 *SubMuffi wrote:*   

> Unsinn! Man muss sein System komplett neu kompilieren, aber nicht neu installieren.
> 
> Als erstes natürlich diese ebuilds incl. des gcc mit den neuen CFLAGS und CHOST.
> 
> app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.12-r4 >=sys-libs/zlib-1.1.4 !sys-devel/hardened-gcc >=sys-libs/glibc-2.3.3_pre20040420-r1 >=sys-libs/ncurses-5.2-r2 sys-devel/gettext >=sys-apps/texinfo-4.2-r4 >=sys-devel/bison-1.875 >=sys-devel/binutils-2.14.90.0.8-r1 sys-devel/patch sys-devel/patch sys-devel/gnuconfig >=sys-apps/sed-4 sys-devel/patch
> ...

 

Kann mir nicht vorstellen das es so einfach ist von 32 Bit auf 64 Bit umzusteigen (bzw. umgekehrt). Zuerst müsstest du deinen 32 Bit gcc sagen das er 64 Bit binaries erstellen soll. Damit dann die glibc und binutils neu bauen. Dann muss sich der 32 Bit gcc selbst neu bauen, damit du einen 64 Bit gcc bekommst der 64 Bit binaries erstellt, ... .

Und da sollte das Problem schon anfangen, denn anhand des CHOST wird doch nach Bibliotheken gesucht. Anderer CHOST -> gesucht wird in einem anderen verzeichniss .. oder? Gab doch schon massenhaft posts in denen jemand seinen CHOST von i86 auf auf i686 geändert hat und dann nichts mehr kompilieren konnte.

Also ich habe es noch nicht ausprobiert, aber gerade für einen Anfänger sollte eine Neuinstallation schneller und weniger problematisch ablaufen.

Mfg

SinoLast edited by SinoTech on Tue Feb 21, 2006 12:41 pm; edited 1 time in total

----------

## Freiburg

 *SubMuffi wrote:*   

> Unsinn! Man muss sein System komplett neu kompilieren, aber nicht neu installieren.
> 
> Als erstes natürlich diese ebuilds incl. des gcc mit den neuen CFLAGS und CHOST.
> 
> app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.12-r4 >=sys-libs/zlib-1.1.4 !sys-devel/hardened-gcc >=sys-libs/glibc-2.3.3_pre20040420-r1 >=sys-libs/ncurses-5.2-r2 sys-devel/gettext >=sys-apps/texinfo-4.2-r4 >=sys-devel/bison-1.875 >=sys-devel/binutils-2.14.90.0.8-r1 sys-devel/patch sys-devel/patch sys-devel/gnuconfig >=sys-apps/sed-4 sys-devel/patch
> ...

 

hmm irgendwie kann ich mir das nicht vorstellen, also der gcc wird auf 64bit kompiliert und gegen die alte 32 bit glibc gelinkt??

Oder der 32bit gcc kompiliert eine 64bit glibc?? Wenn das überhaupt geht dann in dem man über einen crosscompiler das komplette System kompiliert ohne es zu installieren und man es dann installiert...

----------

## Merlin-TC

 *SubMuffi wrote:*   

> Unsinn! Man muss sein System komplett neu kompilieren, aber nicht neu installieren.
> 
> Als erstes natürlich diese ebuilds incl. des gcc mit den neuen CFLAGS und CHOST.
> 
> app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.12-r4 >=sys-libs/zlib-1.1.4 !sys-devel/hardened-gcc >=sys-libs/glibc-2.3.3_pre20040420-r1 >=sys-libs/ncurses-5.2-r2 sys-devel/gettext >=sys-apps/texinfo-4.2-r4 >=sys-devel/bison-1.875 >=sys-devel/binutils-2.14.90.0.8-r1 sys-devel/patch sys-devel/patch sys-devel/gnuconfig >=sys-apps/sed-4 sys-devel/patch
> ...

 

Es wäre schön wenn du ein Wiki schreiben könntest wie man ein existierendes 32Bit System so einfach auf 64 Bit umstellen kann deen das ändern der flags und ein simples neu kompilieren reichen da denke ich nicht.

Das Profil müßte man ja auch noch wechseln und auch die Verzeichinsstrutur ändert sich auch ein wenig.

Wie gesagt, wenn du es erfolgreich geschaft hast würden sich viele Leute über ein ausführliches Wiki freuen.

Soweit ich weiß kennt das x86 Profil ja nichtmal Multilib.

----------

## Treborius

es geht aber wirklich ...

ich hab es zwar in der light variante durch, aber ein system von 32bit auf 64bit umzustellen müsste auf die selbe art auch funktionieren

ich hatte das problem, das die 64bit livecd nicht gebootet hat, ich hatte ein 32bit auf einer partition und wollte auf einer anderen ein 64bit versuchen

chroot aus einem 32bit in ein 64bit funktioniert natürlich nicht, also 

crosscompiler emerged und nen 64bit-kernel gebaut, mit dem 64bit kernel gebootet (ins 32bit system) das laden aller module schlägt natürlich fehl (bei mir alsa und nvidia) aber der rest läuft dann auf 32bit emulation des processors

naja dann stage und portage laden, und die ganze install-prozedure durchgezogen

um ein system auf 64bit umzustellen, müsste man eigentlich genau das selbe machen, nur dann ne 64bit toolchain basteln, und dann nur noch ein : #emerge -e system && emerge -e world durchziehen

ich weiss nicht warum das nicht klappen sollte

----------

## SinoTech

Es hat ja auch nie einer behauptet das es gar nicht möglich ist (Zumindest wollte ich das so nicht sagen), nur ein einfaches drüber mergen geht eben nicht. Selbst du hast in deiner "light" variante einen crosscompiler benutzt. Möchte man dann nicht neu installieren (Also stage Archiv entpacken etc.) sondern einfach ein "emerge -e world" laufen assen, dürfte das ganze evtl. noch etwas komplizierter werden. Naja, zugegeben ich habe noch nie versucht zu cross-compilen, aber ein Anfänger sollte von so etwas besser die Finger lassen, sonst läuft sonst später gar nichts mehr  :Wink:  und die neuinstallation muss doch noch durchgeführt werden.

BTW evtl. önnte man ja einen kleinen Wiki-Artikel daraus machen  :Very Happy: 

Mfg

Sino

----------

## Treborius

zwecks wiki, ich würde sowas nur begrenzt machen 

1. weil ich das nur auf meinem comp testen könnte (hab noch ne 32bit installation die ich nie benutze) und dann wäre wiki nur für amd32 ==> amd64 

2. siehe oben, ich will nicht schuld sein, wenn es auf nem intel 64 nicht funzt

3. ist es mit nem cross-compiler nicht getan, man muss eine gesamte toolchain neu bauen, das ist zwar mit crosscompiling möglich (siehe howto distcc von i686 nach amdXX) aber ich habs noch nicht gemacht

ausserdem bastel ich zZ an xorg7.0 mit xgl rum  :Smile: 

----------

## SouLLesS12

Morgen miteinander,

so hat soweit alles geklappt. Musste aber das Weichei-Programm durchzioehen  :Wink: , habe nur den Genkernel kompiliert ;(. Waren mir dann doch etwas zu viele Optionen bei menuconfig  :Wink: .

Na ja kann mir leben.

So das Genkernel kompilieren hat soweit geklappt.

Jetzt muss ich ja die Module eintragen die automatisch gestartet werden sollen. Führe den angegebenen Befehl aus und erhalte eine riesen Liste, die noch nicht mal komplett angezeigt wird weil zu lang.

Woher weiss ich welche Module ich für den Autostart eintragen muss? Zumal mir bestimmte bezeichnungen völlig fremd sind. Reicht der Modulname oder muss ich Ordner mit angeben?

Dann noch die Netzwerkconfiguration: Muss ich diesen Schritt machen? Da ich kein Netzwerk habe, ausser meine DSL-Internetverbindung.

Besten Dank im voraus.

Mfg SouLLesS der so langsam glaubt sich mit Gentoo übernommen zu haben ;(

----------

## SouLLesS12

Ok ok, schande über mich.

Das mit dem Netzwerk ist klar. Habe wohl das Handbuch an der Stelle nicht richtig gelesen  :Embarassed: 

Das mit den Modulen eintragen für den Autostart kann ich ja an einem Späteren Zeitpunkt machen oder? Da hat mit jetzt leider auch das mehrmalige lesen des Handbuches nichts gebracht. Wie schon gesagt 

```
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
```

 findet einen haufen Module.

Mfg SouLLesS

----------

## SouLLesS12

Moin,

also das mit den Modulen hat sich jetzt zum Problem entwickelt  :Wink: . Grub, Kernel usw. läuft alles. Ich kann von Booten, mit einem kleinen Schönheitsfehler.

[img]http://www.jeet-kune-tao.de/bilder/erwachsene/grub.png[/img]

Ich hoffe man kanns erkennen. Ich vermute mal das an der grub.conf was nicht stimmt. Weiss da einer Rat?

So zu den Modulen. ALso wenn ich Boote läuft ja fast alles Reibungslos. Will ich adsl-start ausführen sag er mir das er eth0 nicht findet. Ich vermute ganz Stark das kein Modul geladen ist.

Mit modprobe -l bzw. modprobe -l | grep [nv, marvell usw.] finde ich kein passendes Modul.

Weiss einer wie das Modul für mein Netzwerk finde?

Laut Handbuch vom MOBO ist es entweder ein Marvell 88E1111 oder ein Marvell 88E8053. Das MOBO ist ein K8N Neo4 Platinum mit Nforce4 Chipsatz.

Leider hat mir Google und und die Suche hier im Forum nicht weitergeholfen.

Besten Dank.

Mfg SouLLesS

----------

## Merlin-TC

Also eigentlich mußt du gar keine module mehr eintragen wenn du coldplug, hotplug und udev emerged hast.

Das sollte eigentlich alles automatisch passieren.

Du mußt natürlich coldplug und hotplug noch in ein runlevel hinzufügen.

----------

## SouLLesS12

 *Merlin-TC wrote:*   

> Also eigentlich mußt du gar keine module mehr eintragen wenn du coldplug, hotplug und udev emerged hast.
> 
> Das sollte eigentlich alles automatisch passieren.
> 
> Du mußt natürlich coldplug und hotplug noch in ein runlevel hinzufügen.

 

Hmm wieso steht das so nicht im Handbuch? Zitat Handbuch: Sie sollten alle Module, die automatisch geladen werden sollen, in /etc/modules.autoload.d/kernel-2.4 (oder kernel-2.6) eintragen.

Ich bin jetzt ein wenig verwirrt.

Auch beim Rest bin ich nach dem Handbuch vorgegangen. Da ich den 2.6 kernel verwende musste ich udev nicht emergen. Von cold- und hotplug stand da auch nichts drinnen.

EDIT: Ok, blödsinn. Eigentlich müsste ich laut Handbuch ja cold- und hotplug installiert haben. Wobei ich mir da nicht so sicher bin  :Wink: 

Mfg SouLLesS

----------

## ThamanX

 *SouLLesS12 wrote:*   

> Moin,
> 
> also das mit den Modulen hat sich jetzt zum Problem entwickelt . Grub, Kernel usw. läuft alles. Ich kann von Booten, mit einem kleinen Schönheitsfehler.
> 
> [img]http://www.jeet-kune-tao.de/bilder/erwachsene/grub.png[/img]
> ...

 

Habe schon 2 mal dieses Problem gehabt und gelöst. 

Einmal hat mir das deaktivieren des FrameBuffer geholfen, beim 2. mal war ein Fehlerhafter Eintrag zum Splashimage der Fall.

Ich hoffe ich kann dir weiterhelfen  :Smile: 

----------

