# Impostazione / ottimizzazione variabili make.conf

## Lioben

ciao a tutti , sono in fase di installazione gentoo minimal....sto cercando di ottimizzare il mio make.conf che sebra essere quasi vuoto :

```

#my make.conf commenti a parte

CFLAGS="-O2 -pipe"

CXXFLAGS="$(CFLAGS)"

CHOST="x86_64-pc-linux-gnu"

```

mmmm un po poco......... 

Innanzi tutto vorrei sapere la differenza tra -mtune e -march , cosa funziona meglio? Poi ad esempio se volessi usare una delle due in cflags cosa dovrei scriverle dentro? Cioè io ho un quadcore.......quindi credo che 

```

CFLAGS=" -march=core2quad -O2 -pipe" 
```

non sia giusta ......

Poi qui si parla di ottimizzazioni e gli argomenti che cflags puo' prendere sarebbero "s " e "O" sull'handbook ho letto che O è uguale a nessuna ottimizzazione allora perche dovreiu metterlo? Perche ' non mettere s allora? Con quale logica gli metto 1 2 3 accanto ad O o s?

----------

## Scen

Ti consiglio di leggere, se non l'hai già fatto la Guida all'Ottimizzazione della Compilazione, così ti chiarisci un pò le idee (e siccome hai le idee un pò confuse, NON rischiare a fare esperimenti, altrimenti sono dolori  :Razz:  )

----------

## djinnZ

 :Shocked:  ti consiglierei di provare 

```
-O2 -march=native -pipe
```

 e basta. Oppure roporta l'output di 

```
cat /proc/cpuinfo
```

 solo per cambiare -march con quel che ti serve. Quando ti sari documentato c'è un interminabile thread in questo forum sull'argomento.

caveat: giocare con l'ottimizzazione può produrre sistemi dal comportamento imprevedibile e grosse rogne.

----------

## Lioben

Adesso scrivo da un altro pc ......io te lo posterei volentieri il cpuinfo pero' qualcuno mi dovrebbe dire come generare un output in un file direttamente su penna usb perche dall'altro pc dovrei metterlo su questo per postartelo.......... Siccome sul pc su cui sto installando gentoo ho gia fatto tutte le procedure tipo spacchettizzare portage lo stage 3 ecc se spengo adesso mi sa che succede casino e che dovrei rifare tutto.

EDIT: oppure se mi dici cosa devo cercare nell'output di quel comando per stabilire quale è il varlore di -march giusto.........

----------

## crisandbea

 *Lioben wrote:*   

> Adesso scrivo da un altro pc ......io te lo posterei volentieri il cpuinfo pero' qualcuno mi dovrebbe dire come generare un output in un file direttamente su penna usb perche dall'altro pc dovrei metterlo su questo per postartelo.......... Siccome sul pc su cui sto installando gentoo ho gia fatto tutte le procedure tipo spacchettizzare portage lo stage 3 ecc se spengo adesso mi sa che succede casino e che dovrei rifare tutto.
> 
> EDIT: oppure se mi dici cosa devo cercare nell'output di quel comando per stabilire quale è il varlore di -march giusto.........

 

```
cat /proc/cpuinfo > /mnt/chiavetta/file.txt
```

ciao

----------

## Lioben

Scusa sono niubbo .............come si chiama il dispositivo "chiavetta"....cercando sotto /dev ce ne sono tanti di dispositivi

----------

## spillo

 *Lioben wrote:*   

> Scusa sono niubbo .............come si chiama il dispositivo "chiavetta"....cercando sotto /dev ce ne sono tanti di dispositivi

 

/mnt/chiavetta è il punto di mount, è un nome assegnato convenzionalmente, decidi tu dove montare la chiavetta...

comunque anche se spegni il pc non succede nulla, poi riprendi da dove sei arrivato  :Wink: 

----------

## djinnZ

precisazione, se spegni il pc mentre non sta facendo nulla (ad esempio hai scompattato lo stage 3) ti basta rimontare le partizioni e riprendere dal punto in cui ti sei fermato. Se spegni il pc mentre solo se stai eseguendo l'emerge world o l'emerge system e non compili in ram (sconsigliabile in fase di prima installazione) devi riprendere con emerge --resume non rilanciare da capo l'emerge system/world (e soprattutto senza lanciare il sync fino a che il sistema non è completo).

Quando inserisci la chiavetta dovrebbe essere creato un device (probabilmente /dev/sdb4 se hai un solo disco rigido e non hai attaccato altre unità), se è formattata FAT32 ti basta dare il comando mount /dev/disk/by-label/[label-della-chiavetta] /mnt/vattelappesca 

Documentati sui comandi base da shell di unix

----------

## Scen

Informazioni su come recuperare un'installazione non terminata.

----------

## Lioben

```
se è formattata FAT32 ti basta dare il comando mount /dev/disk/by-label/[label-della-chiavetta] /mnt/vattelappesca 
```

Mmmmm inserita la chiavetta pero' non trovo nulla di diverso o di aggiunto ne in /dev ne in /mnt/gentoo/dev/ . Ci sono un sacco di dispositivi alcuni viola altri celesti ,roso e la maggioranza sono gialli......sdb4 non c'è ....solo sdb.... colorato di giallo.........

----------

## djinnZ

scusa, sul cd di installazione (non è che lo uso tanto spesso) devi inserire la chiavetta prima del boot oppure lanci un fdisk -l e vedi quali partizioni ci sono sul sistema.

Se guardi qui c'è una lista di corrispondenze tra le flag da usare e l'output di /proc/cpuinfo (o di parte di esso).

Ti ripeto che senza neppure sapere come montare un disco rimovibile la vedo dura con gentoo.

La lettura dei cari vecchi appunti linux potrebbe essere un inizio (nel forum c'è un thread apposito con tutti i suggerimenti mi pare).

----------

## Lioben

 *Quote:*   

>  Intel Core 2 Duo/Quad / Xeon 51xx/53xx, Pentium Dual-Core Exxxx
> 
> vendor_id  : GenuineIntel
> 
> cpu family  : 6
> ...

 

Allora scusa , tecnicamente potrei mettere "march=native"e fregarmene , solo che a me interessa capire .......la roba sopra citata è per core duo e core quad, xeaon ecc  ..........come è possibile che vada bene per tutti sti processori?

In model name ho notato le xxx , pero nemmeno il nome mi pare vada bene "ntel(R) Core(TM)2 CPU XXXX @ XXXGHz" ho un quad core .

Per quanto riguarda la penna usb non ho trovato tante istruzioni ...........cioe' io so che di solito per montare un dispositivo si fa :

mount  /dev/nome_dispositivo  /mnt/directory_dove_montare 

in questo caso a me non riesce trovare il nome del dispositivo per la chiavetta.............. non è che devo passare qualche argomento quando avvio il kernel gentoo dal cd minimal?

----------

## k01

fai così, avvia il sistema senza chiavetta, dopo di che l'attacchi, e guardi l'output di

```
dmesg | tail
```

per capire che nome gli viene assegnato.

----------

## Lioben

```
 sd 2:0:0:0: Attached scsi generic sg2 type 0

sr 3:0:0:0: Attached scsi generic sg3 type 5

e1000: eth0    #....ecc l'eternet penso non ci interessi 

reiserFS sdc3  # partizione di root gentoo 

adding swap on sdc4   #swap gentoo
```

in realtà non ho capito cosa facciano di preciso sti comandi

EDIT: ho fatto pure un alta cosa ero in /mnt/gentoo ho controllato la /dev/ poi ho inserito la chiavetta e ni diceva di 2 dispositivi aggiunti sdd e sdd1 solo che alla fine di questo mess non mi dava il promt dei comandi "livecd dev" ho premuto invio e me lo ha dato. Sono andato a rivedere in /dev/ e ho trovato sdd e sdd1 aggiunti alla lista pero se provo a montarli in una qualsiadi directory  mi dice che non trova il dispositivo in etc/fsyab o mtab ..... praticamente devo editare pure quello??? Poi magari gli devo portare pure la cioccolata calda con i pasticcini a sto SO ?   :Twisted Evil: 

----------

## djinnZ

Ti ripeto che ti mancano le basi essenziali. Senza quelle perdi tempo ed un link per iniziare te lo ho indicato.

mount /vattelappesca funziona solo se hai inserito in fstab la corrispondente riga che indica il device nel caso /dev/sdd1 il filesystem e le opzioni, altrimenti devi specificare mount -t fat32 /dev/sdd1 /vattelappesca mtab non lodevi editare è solo un file dove mount si scrive quello che ha fatto per controllo. In realtà è scritto nel manuale di mount ed fstab, abbastanza chiaramente.

Non ti voglio scoraggiare ma con conoscenze così limitate perdi solo tempo. Leggiti gli appunti linux o trovati un buon libro che ti introduca ai comandi base (cerca nel forum c'era un thread su questo in discussioni).

Gli errori di ortografia e l'esposizione lasciano trasparire una certa ansia, prendila con più calma.  :Wink: 

Unix è stato rilasciato appena 38 anni fa e sono stati 38 anni di costante evoluzione (e complicazione, in particolare dovuta al dotto intervento dei comitati di standardizzazione) fino a che non si è arrivati ai sistemi open source. Non puoi pensare di imparare tutto in un paio di giorni o facendo qualche prova a casaccio.

Non è difficile ma calma e metodo. 

Per rispondere alla tua domanda iniziale (alla fine me ne sono scordato) -mtune da solo ottimizza per il processore che hai scelto -march, oltre ad implicare automaticamente -mtune con la medesima opzione, costruisce codice per il processore specifico che hai scelto. A meno che non hai in mente di portare programmi di calcolo matematico o grafica spinta (rendering) che potrebbero creare qualche incompatibilità tra processori molto diversi è meglio usare -march

Dimenticavo: uso linux dal '96 e non credo proprio di essere alle prime armi ma non sono mai andato oltre -O3 (controproducente sul gcc 4.x) -march=athlon-xp/k8 (uso solo amd) -fomit-frame-pointer -fno-strict-aliasing -pipe e -Wl,-O1 -Wl,--as-need come ldflag (che fino a che non ne sai molto di più non vanno applicate) e non penso neppure lontanamente di farlo.

Non è poco -O2 -march=tuacpu -pipe, è decente; mentre -O999 -fomg-wtf -f... -Wl,... è da cretini non indecente (o persino decente) come voleva suggerire il commento originale in make.conf, credo. Tanto l'incremento di prestazioni lo vedi solo se fai rendering, calcolo scientifico o usi giochi 3d, non è che l'avvio del desktop completo in 5 secondi invece che 5,5 ti cambia la vita.

-march=native funziona solo con le ultime versioni di gcc (4.2) quindi potrebbe non andar bene, non so cosa hai installato.

per esempio la diffrenza tra -march=athlon e -march=atlon-xp è l'inclusione del supporto per le estensioni sse3 che la amd ha piazzato su tutte le sue cpu più recenti, ovvio che se il codice fa uso delle istruzioni sse3 su una cpu che non le supporta (per esempio uno dei primi k7) potrebbe bloccarsi o dare risultati casuali (che è peggio).

In fin dei conti le istruzioni delle varie cpu amd ed intel sono molto simili solo che secondo il modello di processore alcune sono supportate o meno, altre sono più veloci o più lente e tramite il parametro -march dici al compilatore di comportarsi di conseguenza.

----------

## Lioben

Capisco il tuo punto di vista pero' cavolo uno non puo' stare anni a studiare per mettere in funzione un SO ...... e secondo me questo è anche il motivo per il quale linux non è il n°1 al mondo.

A parte questa considerazione mia personale ......... allora appunti di informatica libera almeno dalle ricerche che ho fatto io non spiega come configurare i file di configurazione tipo fstab make.conf al max dice a cosa servono (e anche qui vabbe' rileggero' magari un po' piu' dall'inizio) ........ e siccome vorrei imparare a configurare sta roba con cognizione di causa vorrei sapere se qualcuno conosce guide in italiano per imparare a "decifrare" e configurare sti file ??

----------

## djinnZ

Non devi studiare anni ma almeno un paio di giorni a leggere le guide di base ti servono.

Prima afferri l'insieme e poi ti metti a spulciare le pagine man o info dei singoli comandi o file. Il manuale "ufficiale" per fstab è proprio man fstab, una versione online è qui o qui.

Una volta c'era un progetto per farlo con le pagine del man in italiano ma non so che ne è stato.

Purtroppo non puoi avere la botte piena e la moglie ubriaca, i sistemi unix non sono stati progettati per essere usati con conoscenze minime ma per l'efficienza.

----------

## Lioben

 *djinnZ wrote:*   

> 
> 
> Una volta c'era un progetto per farlo con le pagine del man in italiano ma non so che ne è stato.
> 
> Purtroppo non puoi avere la botte piena e la moglie ubriaca, i sistemi unix non sono stati progettati per essere usati con conoscenze minime ma per l'efficienza.

 

OK mi rimetto a studiare ........ magari cerco qualche link in italiano ammesso che esistano ......con l'inglese sono deboluccio ......Grazie per l'aiuto....tornero' a scassarvi quando avro trovato cio' che voglio sapere.

----------

## Cazzantonio

 *Lioben wrote:*   

> Capisco il tuo punto di vista pero' cavolo uno non puo' stare anni a studiare per mettere in funzione un SO ...... e secondo me questo è anche il motivo per il quale linux non è il n°1 al mondo.

 Guarda ubuntu la installi in venti minuti ed è anche più semplice di windows.

Certo che se parti con gentoo ti vuoi un po' male...   :Smile: 

----------

## Ic3M4n

se uno vuol partire con gentoo ed ha la voglia di farlo: documentarsi, leggere, "uscire dal coma"... non credo ci sia nulla che glielo possa impedire.

----------

## crisandbea

 *Ic3M4n wrote:*   

> se uno vuol partire con gentoo ed ha la voglia di farlo: documentarsi, leggere, "uscire dal coma"... non credo ci sia nulla che glielo possa impedire.

 

quoto e poi se posso suggerire una eventuale alternativa per evitare "traumi" andrei diritto diritto su Sabayon altro che Ubuntu...    :Cool: 

----------

## djinnZ

Forse aggiungere qualche altro riferimento oltre ad appunti linux per iniziare a capire non ci starebbe male invece di consigliare ubuntu...  :Evil or Very Mad: 

@Lioben: effettivamente usare sabayon live (ma sempre usando lo stage 3 di gentoo) invece del cd di installazione di gentoo (che è un tantino troppo scarno) o knoppix (che pone alcune limitazioni al chroot) è il modo più semplice per installare gentoo. L'ultima volta ho fatto così.

----------

## Manwhe

ciao

Personalmente prima di approdare a gentoo , sono passato da redcap 6x , mandriva7x , debian woody ed in fine gentoo. Ed ammetto che non e' stato semplicissimo a primo impatto , anche se ora non tornerei piu' indietro.

Iniziare ad usare linux e' sempre un bene per la comunita'  :Smile: 

Comunque per la mia umile opinione e' sempre meglio iniziare con live cd di qualsiasi distro e poi decidere di fare il gran salto installandola come unica distro. (magari sono uscito di tema?)

----------

## Spiros

 *Quote:*   

> effettivamente usare sabayon live (ma sempre usando lo stage 3 di gentoo) invece del cd di installazione di gentoo (che è un tantino troppo scarno) o knoppix (che pone alcune limitazioni al chroot) è il modo più semplice per installare gentoo. L'ultima volta ho fatto così.

 

Io Gentoo lo installo dalla Kubuntu installata. Il partizionamento da una livecd qualsiasi, per il resto non vedo perché dovrei usare una live, visto che ho un sistema funzionante che voglio mantenere.

Io credo che ci si accanisca un po' contro Ubuntu. In fondo è comunque linux e non vieta a nessuno di modificare tutto ciò che si vuole dell'OS. I primi strusi si possono benissimo fare lì. Poi, certo, uno a un certo punto vuole avere il proprio sistema operativo, e allora punta su una meta-distribuzione o su una Slackware.

Per tornare in topic:

 *Quote:*   

> 
> 
> Tanto l'incremento di prestazioni lo vedi solo se fai rendering, calcolo scientifico o usi giochi 3d, non è che l'avvio del desktop completo in 5 secondi invece che 5,5 ti cambia la vita.

 

Io tra poco dovrò compilarmi octave, un software di calcolo scientifico. Che cosa dovrò mettere in make.conf?

----------

## djinnZ

 *Spiros wrote:*   

> Io tra poco dovrò compilarmi octave, un software di calcolo scientifico. Che cosa dovrò mettere in make.conf?

 Per calcolo scientifico non intendo octave ma simulazioni, analisi di dati a grande precisione (in genere con programmi creati appositamente), number crunching, ovvero roba che ti tiene il computer impegnato a calcolare per ore o giorni non per minuti.

Resta su ottimizzazioni sicure. Al massimo se non avrai mai a che fare con grandi numeri potresti pensare a -fpmath=sse (solo per octave) per guadagnare qualcosa.

----------

## Lioben

Per usare il pc da desktop infatti uso ubuntu .........pero ultimamente volevo imparare a usare bene un sistema linux da linea comando quindi mi son detto o slackware o gento........e intanto sgobbo su articoli e how-to  :Laughing: 

----------

## djinnZ

Tutta salute. Se non altro quello che apprendi vale per tutte le distribuzioni (persino per ubuntu).

----------

