# Mehr Hilfe bei Kernel-Konfiguration

## schmidicom

Der Titel sagt schon einiges oder?  :Smile: 

Ich finde das es mehr Hilfe bei der Kernel-Konfiguration braucht als in der Anleitung beschrieben. Ich habe oft den Satz gelesen das diese Konfiguration nicht so schwierig sein soll, aber dem kann ich nicht zustimmen. Ein Profi hat damit sicher keine Probleme aber ein Neuling in der Gentoo Welt ist versucht es sicher 20 mal wenn nicht mehr. Die meisten geben da wohl eher auf. Ich habe durchgehalten und habe mich in das ganze nun recht gut eingearbeitet. Dennoch finde ich das man da was machen sollte.

Hier meine Ideen dazu:

1. Eine Gute Hilfe wären Beispiel Konfigurationen für verschiedene Systeme an denen sich die Neulinge ein wenig orientieren können.

2. Eine Online Kernel-Konfiguration die Deutsche Hilfetexte zum besseren Verständnis beinhaltet. Nach Abschluss einer solchen Konfiguration sollte man das ganze downloaden können.

3. Tipps zu sensiblen Teilen des Kernel wie Netzwerkoptionen, Framebuffer und Soundsystem

Was meint ihr dazu?

----------

## Sourcecode

Was ich dazu meine?

Gentoo ist keine Distri für einen Linux Anfänger, ich kann von jemandem der Gentoo verwendet Grundlegende Linux Kentnisse vorrausetzen und dazu gehört auch wie man nen Kernel Kompilliert (zumindest Gentoo geht davon aus das der User Linux nicht erst seit gestern benutzt und sich in der Konsole zurechtfindet)

Meiner Meinung kann das alles so bleiben.

----------

## Freiburg

So ein guide ist unrealistisch, das bleibt nie im Leben Aktuell, da muß sich schon jeder selbst mit beschäftigen...

----------

## TheCurse

Naja, zu 1 würde ich mal sagen, können sich die Neulinge den kernel ja erstmal mit genkernel kompilieren und sich das anschauen.

zu 2: Wenn man kein Englisch kann sollte man vielleicht von gentoo abstand nehmen.

zu 3: Da müsste im wiki genug stehen.

Sorry für evtl. Rechtschreibfehler, ich steige gerade aufs neo-tastaturlayout um...

----------

## franzf

 *Rafer wrote:*   

> Gentoo ist keine Distri für einen Linux Anfänger, ich kann von jemandem der Gentoo verwendet Grundlegende Linux Kentnisse vorrausetzen und dazu gehört auch wie man nen Kernel Kompilliert (zumindest Gentoo geht davon aus das der User Linux nicht erst seit gestern benutzt und sich in der Konsole zurechtfindet)

 

Auf der Konsole zurechtfinden ist OK. Aber in den 1,5 Jahren vor Gentoo (Bei SuSE, Mandriva, Fedora, ...) hab ich NIE einen einzigen Kernel kompilieren müssen. Das kam erst mit Gentoo.

Prinzipiell finde ich das eine gute Idee, so ein Online-Formular, mit dem man sich eine confog zusammenstellen kann.

ABER:

Es verwendet jeder nen anderen Kernel.

Vanilla, Gentoo, Nitro, diverse andere gepatchte Sourcen. Vielfalt tut so einem Projekt nicht gerade gut...

Außerdem denke ich erfährt man genügend über die einzelnen Punkte (man muss sich halt mal Zeit nehmen...) über die Hilfe im menuconfig/xconfig. Da steht eigentlich immer für welche Hardware-Komponente dieses Modul ist und wie es dann heißt. Es braucht halt bissl Zeit. Aber diese ist in meinen Augen sehr gut investiert, da man so einiges über seine Hardware lernt und bei einem Hardware-Wechsel auch gleich weiß was zu tun ist.

Grüße

Farnz

----------

## schmidicom

Das ganze sollte kein Vorwurf sein, mit Nichten.

Es wäre bloss eine nette Hilfestellung zu dem ganzen Kernelzeug's   :Wink: 

Schon klar das das nicht einfach zu machen wäre aber ein Patch der die Hilfe im Kernel ins Deutsche übersetzt oder so wäre nicht auch nicht schlecht.

Das dumme ist nur das man erst bei Gentoo die Möglichkeit hat den Kernel kennen zulernen. Bei anderen Dist ist ja wie schon erwähnt wurde der Kernel schon vorkonfiguriert. Und dann kommt vermutlich keiner auf die Idee das selber zu machen. Ergo: Jeder der mit Gentoo anfängt zu Linuxen ist im bereich Kernel ein Neuling. Oder fast jeder.

----------

## pablo_supertux

 *schmidicom wrote:*   

> Ergo: Jeder der mit Gentoo anfängt zu Linuxen ist im bereich Kernel ein Neuling. Oder fast jeder.

 

das stimmt so nicht. Jeder (und das meine ich auch jeder, sogar mit anderen Distris) ist frei die kernel Sources herunterzuladen, zu konfigurieren und diese zu benutzen. Du brauchst kein Gentoo, um zu lernen, wie man einen Kernel backt, das kannst du in jeder Distribution lernen.

----------

## schmidicom

 *pablo_supertux wrote:*   

> das stimmt so nicht. Jeder (und das meine ich auch jeder, sogar mit anderen Distris) ist frei die kernel Sources herunterzuladen, zu konfigurieren und diese zu benutzen. Du brauchst kein Gentoo, um zu lernen, wie man einen Kernel backt, das kannst du in jeder Distribution lernen.

 

Schon nur wer macht das? Die Antwort: Niemand.

Wer versaut sich schon ein bereits laufendes Linux.

Ausser solche angefressene PC-Freaks wie wir.   :Wink: 

----------

## pablo_supertux

 *schmidicom wrote:*   

>  *pablo_supertux wrote:*   das stimmt so nicht. Jeder (und das meine ich auch jeder, sogar mit anderen Distris) ist frei die kernel Sources herunterzuladen, zu konfigurieren und diese zu benutzen. Du brauchst kein Gentoo, um zu lernen, wie man einen Kernel backt, das kannst du in jeder Distribution lernen. 
> 
> Schon nur wer macht das? Die Antwort: Niemand.
> 
> Wer versaut sich schon ein bereits laufendes Linux.
> ...

 

also, ich kenne viele, die kein Gentoo haben und ihre Kernels selber bauen.

----------

## franzf

Das Problem welches ich bei den anderen Distris hatte:

Offiziell gab es immer nur ein Source-RPM zu dem bereits verwendet Kernel. Ich wollte aber nicht den 2.6.0 sondern den neuen 2.6.8...

Und einfach die Sourcen von kernel.org nehmen geht net, die Distributoren patchen da soviel nach dass dir der Kernel am Ende gar nicht bootet...

Bei Gentoo kannst du ohne Gefahr irgendeinen Kernel hernehmen, konfigurieren, kompilieren, neu booten und (wenn du nix versemmelt hast) klappt auch alles bestens.

So meine Erfahrung zu own kernel @ bin-Distri oder so  :Wink: 

----------

## l3u

Also ich kann nur das sagen, was alle vor ein paar Jahren zu mir gesagt haben (ich hab's ihnen damals auch nicht geglaubt!):

"Wenn man das ein paar mal gemacht hat, isses überhaupt kein Problem mehr, nen Kernel zu kompilieren. Schau viel schwieriger aus, als es ist."

Dazu braucht man halt ein bißchen Erfahrung. Dann ist's aber wirklich kein Streß mehr. Ich sehe auch keine Notwendigkeit für eine weiterführende Anleitung ... und ich bin auch der Meinung, daß halt Gentoo einfach keine Distribution für Anfänger ist und das auch nicht sein will.

----------

## TheCurse

Also bei ubuntu kann man sich glaube ich auch die patches alleine runterladen, und damit einen aktuellen kernel patchen. Hatte so mal ein ubuntu auf nem reiser4 root  :Wink: 

----------

## misterjack

 *schmidicom wrote:*   

> Ich finde das es mehr Hilfe bei der Kernel-Konfiguration braucht als in der Anleitung beschrieben. 

 

Dann schau dir mal http://de.gentoo-wiki.com/Kernel_manuell_kompilieren an  :Wink: 

 *Freiburg wrote:*   

> So ein guide ist unrealistisch, das bleibt nie im Leben Aktuell

 

Nicht aber in einem Wiki, wo jeder die Möglichkeit hat mitzuarbeiten

----------

## franzf

 *TheCurse wrote:*   

> [...] kann man sich glaube ich auch die [...] Hatte so mal ein [...]

 

Du hattest schon mal aber bist dir nimmer sicher? hrhrhr

(Sorry musste sein  :Razz: )

----------

## schmidicom

 *misterjack wrote:*   

>  *schmidicom wrote:*   Ich finde das es mehr Hilfe bei der Kernel-Konfiguration braucht als in der Anleitung beschrieben.  
> 
> Dann schau dir mal http://de.gentoo-wiki.com/Kernel_manuell_kompilieren an 

 

Hoppla das ding ist aber nicht von schlechten Eltern...

...seit wann ist das den Online.  :Smile: 

Habe doch gegoogelt   :Question: 

Das macht es einem Neuling schon sichtlich einfacher.

Habe mir die Homepage von Gentoo noch mal angesehen und folgendes gesehen:

Das Projekt

Gentoo Linux ist eine portbasierte Distribution für den erfahrenen Linux User. Sie eignet sich hervorragend für alle Personen, die maximale Kontrolle über ihr System erhalten wollen. Man kann mit Gentoo alles machen - vom Server bis zum Desktop-System, vom Cluster bis zur einfachen Boot-CD.

Das Projekt gentoo.de soll als Sammelstelle....

Ich habe das wohl übersehen als ich anfing mit Gentoo herum zu experimentieren aber gelohnt hat es sich dennoch finde ich. Durch Gentoo habe ich mehr über Linux erfahren als wenn ich mit SuSE weitergemacht hätte. Gentoo ist für Anfänger schwer aber wer dennoch weitermacht lernt was.

Was einen nicht aufhält bringt einen weiter.

----------

## pablo_supertux

 *franzf wrote:*   

> Das Problem welches ich bei den anderen Distris hatte:
> 
> Offiziell gab es immer nur ein Source-RPM zu dem bereits verwendet Kernel. Ich wollte aber nicht den 2.6.0 sondern den neuen 2.6.8...
> 
> Und einfach die Sourcen von kernel.org nehmen geht net, die Distributoren patchen da soviel nach dass dir der Kernel am Ende gar nicht bootet...
> ...

 

ich hab früher SuSE benutzt und sie patchen extrem viel. Und ich konnte den vanilla kernel ohne patches problemlos booten.

----------

## industrie13

 *Rafer wrote:*   

> Gentoo ist keine Distri für einen Linux Anfänger, ich kann von jemandem der Gentoo verwendet Grundlegende Linux Kentnisse vorrausetzen

 

Dem kann ich überhaupt nicht zustimmen. Ich denke, Gentoo ist gerade für Linux Anfänger ideal - zumindest für die lernwilligen - weil sie hier eben erstmal Linux (und damit meine ich auch explizit den Umgang mit Konsole, Source und Kernel) richtig kennenlernen und in ihrem Lernprozess auch die nötige Unterstützung finden, u.a. durch den großartigen Installationsguide auf den offiziellen Seiten, die Wikis und die Foren. Es heißt nicht umsonst, dass Gentoo momentan die wirklich beste Dokumentation hat.

Zum Hintergrund meiner Aussage: als ich irgendwann letztes Jahr mit Linux anfing, hatte ich als erstes zu (K)ubuntu gegriffen. Viel Klicki-Klicki und es hat auch alles bestens funktioniert, aber ich hab dabei nie wirklich den Umgang mit der Konsole gelernt, geschweige denn, wie man ein Programm aus der Source kompiliert ... und hatte auch stets das unbefriedigende Gefühl, nicht  das Geringste über das System zu wissen.

Ich finde, mit Gentoo wirst Du als Newbie wirklich bestens an diese Dinge herangeführt und hast die Möglichkeit, recht schnell und auf direktem Wege ein Grundverständnis für das System zu entwickeln, was sich dann ja schließlich während der Nutzung noch ausbauen läßt.

Was die Kernel-Konfiguration angeht, gebe ich schmidicom Recht: was im offiziellen Installationsguide stand, fand ich damals auch etwas dürftig - zum Glück hatte ich aber das HowTo im Wiki entdeckt, was das Defizit mehr als ausreichend ausgeglichen hat  :Smile:  ... also daher ... eigentlich ist alles vorhanden, was man braucht  :Wink: 

----------

## michel7

Ja die offizielle Anleitung ist zwar ganz gut. Aber deckt bei weitem nicht so viel ab wie ich es mir bei Erstinstallation gewünscht hätte ...  Bei vielen Theme wie CFLAGS, USEFLAGS, Kernelkonfiguration usw musste ich auf Wiki/Google zugreifen. Und während einer Installation fand ich es nicht gerade berauschend, in links nach irgendwelcher Information zu suchen ...

----------

## pablo_supertux

 *industrie13 wrote:*   

>  *Rafer wrote:*   Gentoo ist keine Distri für einen Linux Anfänger, ich kann von jemandem der Gentoo verwendet Grundlegende Linux Kentnisse vorrausetzen 
> 
> Dem kann ich überhaupt nicht zustimmen. Ich denke, Gentoo ist gerade für Linux Anfänger ideal - zumindest für die lernwilligen - weil sie hier eben erstmal Linux (und damit meine ich auch explizit den Umgang mit Konsole, Source und Kernel) richtig kennenlernen und in ihrem Lernprozess auch die nötige Unterstützung finden, u.a. durch den großartigen Installationsguide auf den offiziellen Seiten, die Wikis und die Foren. Es heißt nicht umsonst, dass Gentoo momentan die wirklich beste Dokumentation hat.

 

Keiner streitet hier ab, dass das Lerneffekt von gentoo genial ist. Aber man muss die Anfänger voneinander unterscheiden, denn es gibt die, die (wie du sagst) lernwillig sind, die die nur ein anderes OS als Windows oder SuSE haben wollen, und die die denken, dass sie unbedingt Gentoo haben wollen, weil es lo l33t ist. Anfänger der ersten Sorte sind eine Minderheit und nur für diese Anfänger geeignet, denn sie haben die nätige Gedulg, Stunden am System rumzubasteln.

----------

## Freiburg

 *misterjack wrote:*   

>  *schmidicom wrote:*   Ich finde das es mehr Hilfe bei der Kernel-Konfiguration braucht als in der Anleitung beschrieben.  
> 
> Dann schau dir mal http://de.gentoo-wiki.com/Kernel_manuell_kompilieren an 
> 
>  *Freiburg wrote:*   So ein guide ist unrealistisch, das bleibt nie im Leben Aktuell 
> ...

 

Die Frage ist ob soviele Leute zusammen kommen...

----------

## misterjack

 *schmidicom wrote:*   

> 
> 
> ...seit wann ist das den Online. 

 

13. Februar 2005  :Wink: 

 *schmidicom wrote:*   

> 
> 
> Man kann mit Gentoo alles machen - vom Server bis zum Desktop-System, vom Cluster bis zur einfachen Boot-CD.
> 
> 

 

Genau aus dem Grund ist es bei mir auf zwei Rootservern und einigen Desktoprechnern im Einsatz  :Wink: 

 *industrie13 wrote:*   

> Ich denke, Gentoo ist gerade für Linux Anfänger ideal - zumindest für die lernwilligen - weil sie hier eben erstmal Linux (und damit meine ich auch explizit den Umgang mit Konsole, Source und Kernel) richtig kennenlernen und in ihrem Lernprozess auch die nötige Unterstützung finden, u.a. durch den großartigen Installationsguide auf den offiziellen Seiten, die Wikis und die Foren. 

 

Full Ack, nach einem Monat SuSE hab ich mich zu Gentoo überreden lassen. Hab es bis heute nicht bereut  :Wink: 

 *Freiburg wrote:*   

> Die Frage ist ob soviele Leute zusammen kommen...

 

Nagut diesen Artikel pflege ich nahezu alleine, aber es kommen schon genug zusammen die mithelfen. v2.6.17-gentoo sollte als neuester Stand des Artikels ja ausreichen  :Smile:  Der schwierigste Teil, nämlich das deutsche Wiki ins Rollen zu bringen haben wir längst hinter uns. Bin dazu gekommen, da war das Wiki gerade mal 2 Monate alt und nix los  :Wink: 

Aber anstatt sich die Frage zu stellen, ob bei diesem Projekt "genug Leute zusammen kommen", könnte man eher beim Wiki mithelfen und sei es nur eine Übersetzung eines Artikels des englischen Wikis oder kleine Änderungen, wenn man etwas besser weiß oder komplett selber welche schreiben  :Wink: 

Die Frage der Aktualität kann man aber auf viele Bereiche beziehen, vieles im Linuxbereicht ist heutzutage ziemlich schnelllebig  :Wink: 

----------

## Freiburg

 *misterjack wrote:*   

>  *schmidicom wrote:*   
> 
> ...seit wann ist das den Online.  
> 
> 13. Februar 2005 
> ...

 

Ich finde es ehrlich gesagt interessanter mich mit Traffic Shapping und Netzwerk zu beschäftigen, als die Kernelhilfe nochmal zusammen zu fassen, im Endeffekt muss sich jeder einmal seine Treiber zusammensuchen beim Rest meckern die Applicationen/Scripts schon rum falls da was fehlt...

----------

## misterjack

Du brauchst nicht meinen kompletten Beitrag zitieren  :Razz: 

Traffic Shaping und Netzwerk ist ja ein eigenes Gebiet für sich, da gehört weit mehr dazu als nur die Kernelkonfguration  :Wink:  Aber wär mal ein Gebiet, was ich mir annehmen könnte, habe ja selber Traffic Shaping im Einsatz  :Wink: 

----------

## Freiburg

 *misterjack wrote:*   

> Du musst nicht meinen kompletten Beitrag zitieren 
> 
> Traffic Shaping und Netzwerk ist ja ein eigenes Gebiet für sich, da gehört weit mehr dazu als nur die Kernelkonfguration 

 

Stimmt  :Wink:  Also prinzipiell gehen im Moment viele Sachen in die Richtung es den Leuten noch einfacher zu machen, was aber zu dem Problem führt das einige Personen hier auftauchen die ich persönlich nicht hier haben möchte. Damit meine ich Leute die glauben das Linux das Allheilmittel ist gegen Viren, Würmer etc womit sie natürlich falsch liegen, das schönste System kann sowas von unsicher gemacht werden, und alles nur damit es einfacher wird. Sprich worauf ich hinaus will ist das es ruhig ein paar Hürden geben sollte, damit sich die Leute auch mit der Materie beschäftigen, wenn man alles irgendwo nachlesen kann lernt man nichts, oder nicht viel, selbst Bastelln suchen und entdecken macht schlau....

BTW: mein erster Kernel das muß ein 2.0.16 gewesen sein hat mich 4 Stunden meines Lebens gekostet und viele viele Neustarts unter einem suches der 5.x Reihe glaube ich, seit dem lese ich 1. die Hilfetexte im Kernel und suche auf der Kernelmailingliste...

----------

## Sourcecode

 *schmidicom wrote:*   

> Das ganze sollte kein Vorwurf sein, mit Nichten.

 

So habe ich das auch nicht aufgefasst, sondern als Neutrale Diskussion gewertet. 

 *schmidicom wrote:*   

> 
> 
> Es wäre bloss eine nette Hilfestellung zu dem ganzen Kernelzeug's  
> 
> Schon klar das das nicht einfach zu machen wäre aber ein Patch der die Hilfe im Kernel ins Deutsche übersetzt oder so wäre nicht auch nicht schlecht.

 

Sorry aber wie schon geschrieben, Gentoo ist nichts für einen Anfänger, und die IT Welt hat nunmal als Sprache English, man kann zwar nen großteil von Gentoo ohne Englishkenntnisse machen (gibt ja genug Übersetzungen), aber irgendwo kommt immer mal der Punkt wo eben English gefragt ist.

Und da der Kernel z.b laufend in ner neuen Version rauskommt und da 34289347394872 Entwickler drann rumschrauben, kann man es halt nicht jedem rechtmachen darum -> English

Noch dazu, wie schon geschrieben, ändert sich der Kernel in Abstand von nur wenigen Stunden bis Tagen (selten mal wochen...)

d.h du müsstest dann auch laufend das Script bez, die Manual von A-Z wieder durcharbeiten und abändern was geändert wurde (in der kleinen Changelog steht ja auch nicht alles).

Sorry aber in dem Punkt bin ich persönlich nicht tolerant zu Anfängern, warum?

Kernel Backen ist nichts für einen Anfänger, d.h ich setze vorraus das derjenige weiss was er da tut (oder zumindest sofern er das am lernen ist, ein Generelles Handbuch hat).

Man hat heute teilweise schon in der 4.ten Klasse English, und als ich noch zur Schule ging (das ist schon ein weilchen her, bin jetzt 21) gabs English schon in der 5.ten Klasse.

Sorry, dann hat derjenige der halt nicht diesen Standart genossen hat, auf gut Deutsch die "Arschkarte" gezogen, ABER für solche Leute gibt es dieses Forum wo man fragen kann wenns probleme gibt, wir hatten hier öfters schonmal User die direkt gesagt haben "Sorry ich hab n miserables English, kann mir hier mal einer helfen???" und da hat keiner gesagt "nö das musst du können *zungerausstreck*"

Aber der großteil kann einfach English (auch aufgrund unseres Schulsystems), und mehr als Grundlagen braucht man nicht.

 *schmidicom wrote:*   

> 
> 
> Das dumme ist nur das man erst bei Gentoo die Möglichkeit hat den Kernel kennen zulernen. Bei anderen Dist ist ja wie schon erwähnt wurde der Kernel schon vorkonfiguriert. Und dann kommt vermutlich keiner auf die Idee das selber zu machen. Ergo: Jeder der mit Gentoo anfängt zu Linuxen ist im bereich Kernel ein Neuling. Oder fast jeder.

 

Bei Gentoo gibt es auch die möglichkeit einen vorkonfigurierten KErnel zu nutzen (man wird in der Install-Doc auch darauf hingewiesen), er heißt Genkernel -> 

```
* sys-kernel/genkernel 

     Available versions:  3.3.10 3.3.11 ~3.3.11a 3.3.11d [M]3.4.0_pre1 [M]3.4.0_pre2

     Installed:           none

     Homepage:            http://www.gentoo.org

     Description:         Gentoo autokernel script
```

und sorry aber, irgendwann musst du halt ins Kalte Wasser springen, und wenn du dich als Laie mit einer Distri wie Gentoo auseinandersetzen willst bringst du meißtens von Haus aus "Frickeleifer" mit , d.h du hast auch keinen Schiss den Kernel solange neuzukompillieren bis du es kannst.

Und ansonsten ->  http://de.gentoo-wiki.com/Kernel_manuell_kompilieren  da steht zum großteil alles (auch wenn der dort verwendete kernel lange nichtmehr der aktuelle ist kann man hier noch gut nachschlagen).

Sorry aber bei der Geschichte ist das Aufwand/Nutzen Verhältniss einfach nicht vernünftig.

----------

## misterjack

 *Rafer wrote:*   

> Und ansonsten ->  http://de.gentoo-wiki.com/Kernel_manuell_kompilieren  da steht zum großteil alles (auch wenn der dort verwendete kernel lange nichtmehr der aktuelle ist kann man hier noch gut nachschlagen).

 

bitte schön was ist zwischen gentoo-sourcen 2.6.17 und 2.6.17-r1 für ein großer unterschied?

```
 +gentoo-sources-2.6.17-r1.ebuild:

  Update to Linux 2.6.17.3. Fix link detection on VIA Velocity ethernet. Fix

  sound on Lenovo 3000 laptops. Add support for Broadcom BCM4319 WLAN, nvidia

  MCP61/65 LAN/SATA/IDE, VIA VT8251 SATA, new JMicron SATA, ASIX 88178

  USB-LAN.

```

Also erzähl mal nix von Aktualität, auch der Kernel hält sich an gewisse Gepflogenheiten, nämlich großartige Änderungen nur während 2.6.* Sprüngen zu machen. Die -r* kann man weitesgehend in Bezug auf Aktualität des Kernels vernachlässigen, da meist nur Bugfixes getätigt werden oder Support für neue Hardware dazu kommt. Auf sowas geht der Artikel gar nicht ein, warum auch.

----------

## platinumviper

 *misterjack wrote:*   

> Dann schau dir mal http://de.gentoo-wiki.com/Kernel_manuell_kompilieren an 

 

Nicht schlecht, aber Du hast die README nicht gelesen.

 *http://de.gentoo-wiki.com/Kernel_manuell_kompilieren wrote:*   

> Und überprüfen, ob der Symlink /usr/src/linux auf den Kernel gesetzt ist, der konfiguriert und später genutzt werden soll.

 Stimmte ... damals ... im letzten Jahrhundert.  :Twisted Evil:  Spätestens seit Version 2.4.0 steht in jeder README: *$KERNEL_DIR/README wrote:*   

> Do NOT use the /usr/src/linux area!

 

Man kann Sourcen und Output auch trennen, bei mir läuft es folgendermaßen ab:

1. In /etc/profile sind die Variablen KERNEL_DIR auf /kernel/src/current und KBUILD_OUTPUT auf /kernel/out/current gesetzt. Beides sind keine Verzeichnisse, sondern Links auf die eigentlichen Verzeichnisse.

2. Kernel und Signatur mit wget o.ä. irgendwo hin laden (bei mir /daten/FTP/Kernel)

3. Mit gpg die Korrektheit überprüfen

```
$ gpg linux-2.6.17.4.tar.bz2.sign

gpg: Signature made Fr 07 Jul 2006 00:02:27 CEST using DSA key ID 517D0F0E

gpg: Good signature from "Linux Kernel Archives Verification Key <ftpadmin@kernel.org>"
```

4. Output Verzeichnis anlegen, Link setzen, .config kopieren.

```
cd /kernel/out; mkdir 2.6.17.4; cp current/.config 2.6.17.4; rm current; ln -s 2.6.17.4 current
```

5. Sourcen entpacken und Link setzen.

```
cd ../src; tar xjf /daten/FTP/Kernel/linux-2.6.17.4.tar.bz2; rm current; ln -s linux-2.6.17.4 current
```

6. Kompilieren und installieren wie üblich, aber mit "O=" Parameter.

```
cd current; make O=/kernel/out/current oldconfig

make -j8 O=/kernel/out/current all

sudo make O=/kernel/out/current modules_install

sudo make O=/kernel/out/current install
```

7. Nvidia-kernel neu emergen (als root), die beiden Variablen werden automatisch ausgewertet.

```
# emerge nvidia-kernel

Calculating dependencies... done!

>>> Emerging (1 of 1) media-video/nvidia-kernel-1.0.8762 to /

>>> checking ebuild checksums ;-)

>>> checking auxfile checksums ;-)

>>> checking miscfile checksums ;-)

>>> checking NVIDIA-Linux-x86_64-1.0-8762-pkg2.run ;-)

 * Filtering out invalid CFLAG "-ffastmath"

 * Filtering out invalid CXXFLAG "-ffastmath"

 * Determining the location of the kernel source code

 * Found kernel source directory:

 *     /kernel/src/current

 * Found kernel object directory:

 *     /kernel/out/current

 * Found sources for kernel version:

 *     2.6.17.4

 * Checking for MTRR support ... 
```

Die VMware Module lassen sich erst nach einem reboot kompilieren, werten die Variablen KBUILD_OUTPUT und KERNEL_DIR aber ebenfalls aus.

Diese Vorgehensweise hat zwei wichtige Vorteile, erstens ist man nicht unnötig lang als root im System unterwegs und zweitens kann man mehrere verschiedene Kernelvarianten (auch für andere, leistungsschwächere Rechner) mit nur einem Source-Verzeichnis bauen, da die zugehörige .config im Output-Verzeichnis liegt. Immerhin sind die entpackten Sourcen über 260 MB gross.

platinumviper

----------

## schachti

 *platinumviper wrote:*   

> 
> 
>  *http://de.gentoo-wiki.com/Kernel_manuell_kompilieren wrote:*   Und überprüfen, ob der Symlink /usr/src/linux auf den Kernel gesetzt ist, der konfiguriert und später genutzt werden soll. Stimmte ... damals ... im letzten Jahrhundert.  Spätestens seit Version 2.4.0 steht in jeder README: *$KERNEL_DIR/README wrote:*   Do NOT use the /usr/src/linux area! 

 

Tja, da Du unter gentoo aufgeschmissen bist, wenn dieser Symlink nicht gesetzt ist, ist der Hinweis richtig und wichtig... Es stimmt zwar, daß die Kernelentwickler nichts davon halten, aber viele Pakete wirst Du ohne diesen Symlink nicht kompilieren können.

----------

## platinumviper

 *schachti wrote:*   

> aber viele Pakete wirst Du ohne diesen Symlink nicht kompilieren können.

 

Dann muss man eben 'nen Bugreport schreiben. Kannst Du ein paar nennen? Bei mir klappt's ohne Probleme.

platinumviper

----------

## schachti

Tja, ist schon eine Zeit her, daß ich den Symlink nicht mehr hatte - damals waren es im Grunde viele der über portage installierten Kernelmodule (IIRC svgalib, nvidia-kernel, unionfs, alsa-driver etc.), ich glaube, da waren unter anderem auch mal die glibc und ein paar andere Programme bei. So genau weiss ich das nicht mehr, da ich mir nach so einigen Problemen angewöhnt habe, den symlink zu setzen.

----------

## l3u

Nur mal so als reine Interessenfrage: Was ist den so pöhse an dem /usr/src/linux-Symlink?

----------

## schachti

Ich habe mal nachgesehen, zumindest in der offiziellen gentoo-Doku wird mehrfach erwähnt, daß der symlink vorhanden sein soll/muß, zum Beispiel unter

http://www.gentoo.org/doc/de/nvidia-guide.xml

http://www.gentoo.org/doc/de/kernel-upgrade.xml

http://www.gentoo.org/doc/de/dri-howto.xml

http://www.gentoo.org/doc/de/alsa-guide.xml

----------

## platinumviper

 *Libby wrote:*   

> Nur mal so als reine Interessenfrage: Was ist den so pöhse an dem /usr/src/linux-Symlink?

  *$KERNEL_DIR/README wrote:*   

> This area has a (usually
> 
>    incomplete) set of kernel headers that are used by the library header
> 
>    files.  They should match the library, and not get messed up by
> ...

 

Damit sind die Dateien gemeint, die bei Gentoo durch das Paket sys-kernel/linux-headers an verschiedene Stellen unter /usr/include installiert werden. In /usr/include sollten (z.T. Architektur-abhängige) Synlinks nach /usr/src/linux/asm-x86_64 etc liegen.

platinumviper

----------

## l3u

Und warum darf dann /usr/src/linux nicht auf meine aktuelle Kernel-version zeigen? Check ich net.

----------

## platinumviper

 *schachti wrote:*   

> offiziellen gentoo-Doku wird mehrfach erwähnt, daß der symlink vorhanden sein soll/muß

 

Es ist aber nirgends eine Begründung angegeben, warum man es immer noch so machen sollte. Vermutlich ist es einfach nur übersehen worden oder es gibt noch vereinzelte Pakete, die die Variablen KERNEL_DIR und KBUILD_OUTPUT nicht beachten. Beide Variablen sind übrigens Gentoo-spezifisch, es wird also offensichtlich an einer Änderung gearbeitet, AFAIK wäre Gentoo dann die erste große Distribution, die es richtig macht.  :Very Happy: 

platinumviper

----------

## return13

Also ich hätte da ja ne idee die alle glücklich machen könnte   :Very Happy: 

Wie wärs mit Kernel Konfiguration - das SPIEL

man bekommt eine Ausgangslage: 

AMD Athlon blabla

Soundkarte Soundblaster Live

Grafikkarte etc.

man bekommt das Ziel was das system nachher können muss, und die konfiguration ist quasi das Spiel... 

der mit der passensten Konfig in der kürzesten Zeit gewinnt...

das spiel wäre nicht einmal schwer zu programmieren... bin sicher das es höchstens einen Tag arbeit wär, schließlich kann man make menuconfig benutzen... - die erstellt ja eh die benötigte .config - und der rest und nur auswertung der config....

----------

## schachti

Ich hab's gerade mal ausprobiert - media-libs/svgalib-1.9.21-r1, media-sound/alsa-driver-1.0.11, sys-fs/unionfs-1.1.4-r2 und media-video/nvidia-kernel-1.0.8762 brechen ab, wenn der Symlink nicht existiert (allerdings habe ich weder KERNEL_DIR und KBUILD_OUTPUT manuell gesetzt).

----------

## Freiburg

 *return13 wrote:*   

> Also ich hätte da ja ne idee die alle glücklich machen könnte  
> 
> Wie wärs mit Kernel Konfiguration - das SPIEL
> 
> man bekommt eine Ausgangslage: 
> ...

 

Hört sich nach ner KI aufgabe an  :Wink:  Sollte mit CSP lösbar sein, naja zumindest teilweise

----------

## ro

also ich finde das auch nicht wirklich gut, so einen "guide" zu machen/haben. Die Kernelkonfiguration ist imho was für erfahrenere User bzw. Sysadmins, die wissen was sie tun. Anfänger sollten bei fertigen Distributionen bleiben, wie Ubuntu und dergleichen. Für erfahrene User reicht die Doku zum Kernel bzw. den Modulen normalerweise, und sonst muss man halt einfach ein wenig googlen. Es wäre einfach Ressourcenverschwenung, die Doku zu erweitern und aktuell zu halten

----------

## misterjack

 *ro wrote:*   

> also ich finde das auch nicht wirklich gut, so einen "guide" zu machen/haben. Die Kernelkonfiguration ist imho was für erfahrenere User bzw. Sysadmins, die wissen was sie tun. Anfänger sollten bei fertigen Distributionen bleiben, wie Ubuntu und dergleichen. 

 

Das ist doch totaler Quatsch. Wenn jeder nach dem Motto "was man nicht kann, finger davon lassen" handeln würde, gäbe es keine erfahrenen User bzw. Sysadmins!

zwecks den symlink: Gentoo provoziert mit den useflag "symlink" ja richtig das verhalten  :Wink:  solange das nicht klar ist, lass ich den "gentoo way" in der doku stehen aber mit hinweis auf diese diskussion

----------

## Freiburg

 *misterjack wrote:*   

> zwecks den symlink: Gentoo provoziert mit den useflag "symlink" ja richtig das verhalten  solange das nicht klar ist, lass ich den "gentoo way" in der doku stehen aber mit hinweis auf diese diskussion

 

Was aber auch seine Tücken hat, nehmen wir man hat eine Wlankarte die den Madwifitreiber braucht, und die Reihenfolge beim mergen ist kernel, madwifi, was passiert? Der kernel wird emerged und der symlink verschoben, danach soll der Madwifitreiber ermerged werden aber hopple es gibt garkeine .config unter /usr/src/linux kein wunder der wurde ja gerade erst emerged. Man mag nun sagen das das Sinnmacht bei nem neuen Kernel und das das Modul ja für den Kernel ist, cryptsetup z.B. braucht aber auch einen configurierten Kernel und das kompilier ich nicht neu, nur weil ich nen neuen Kernel habe, außerdem ändert sich im Moment in der 2.6.16.x Reihe auch nicht so viel das man alles was einen konfigurierten Kernel braucht neu emergen müßte. Ich denke das beste ist es den Link selber zu setzen das rm und ln ist wirklich nicht viel Aufwand...

----------

## Weaselweb

 *Freiburg wrote:*   

> Ich denke das beste ist es den Link selber zu setzen das rm und ln ist wirklich nicht viel Aufwand...

 

Selbst dafür gibts doch das eselect-Tool   :Very Happy: 

```
eselect kernel list
```

und man bekommt die Liste. 

```
eselect kernel set x
```

 Setzt dann den Symlink auf den Kernel an der x. Stelle der Liste. Fertig!

----------

## schmidicom

Noch einfacher kann man es sich ja machen wenn man eben mal beide setzt. Also "linux" und "current“

Damit sollte dann jedes Programm zufrieden sein denke ich. Aber warum es jetzt nicht mehr linux sondern current heissen soll kann ich nicht ganz nachvollziehen, aber was soll's klingt wohl besser das current.  :Smile: 

Und weiter oben wurde gesagt das Neulinge die Finger von Gentoo lassen sollen. Das finde ich ziemlich daneben Gentoo ist so ziemlich die einzige Distribution die es einem erlaubt das System so im Detail kennen zu lernen.

Zugegeben jemand der nicht weis wie sein PC funtzt der sollte sich davon fern halten aber dieses Wissen kann man sich ja auch ohne Gentoo aneignen.

----------

## Anarcho

Ich habe meinen ersten Kernel bei meiner ersten Gentoo-Installation erstellt und der erste Versuch ist auch direkt geglückt. Es ist also nicht unmöglich.

Aber dennoch fände ich eine Art Webinterface Kernelconfiggenerator garnicht verkehrt und sei es nur um sich ein wenig Arbeit zu ersparen.

Das Interface muss ja auch nicht alles leisten, es reicht ja für das wichtigste. Dann hat man aber einen aufgeräumten Kernel und kann von da aus weiter machen, denn wenn ich sehe was bei einem frisch runtergeladenen Kernel alles an oder als modul markiert ist wundere ich mich doch.

Am meisten wundere ich mich über die 10GBit Karte die als Modul per default angeschaltet ist (wer hat denn bitte ne 10 Gbit Karte, das werden wohl nicht die meisten sein).

----------

## schmidicom

 *Anarcho wrote:*   

> Am meisten wundere ich mich über die 10GBit Karte die als Modul per default angeschaltet ist (wer hat denn bitte ne 10 Gbit Karte, das werden wohl nicht die meisten sein).

 

Ja das kann ich auch nicht so ganz nachvollziehen, bei einem Backbone könnte so was ja gebraucht werden aber habe bis jetzt noch nie so was gesehen.

Eine andere Idee als Hilfestellung wäre ein Programm das einem eine Kernel-Konfiguration zusammenstellt anhand der eigenen Hardware. Schliesslich gibt es ja Programme wie lspci und der gleichen die einiges wiedergeben also warum nicht auch ein Programm das durch die Kernel-Source und der Hardware-Erkennung eine Provisorische Konfiguration zusammenstellt.

----------

## Freiburg

Das Programm heißt genkernel und ist in der Installationsanleitung beschrieben...

----------

## schmidicom

 *Freiburg wrote:*   

> Das Programm heißt genkernel und ist in der Installationsanleitung beschrieben...

 

Aber das stellt doch nicht wirklich eine Konfiguration anhand der Hardware zusammen sondern eine Standart Konfiguration die von Gentoo mitgegeben wird. Zumindest habe ich es so verstanden.

----------

## Freiburg

Naja so ganz macht gernkernel das wirklich nicht, aber es erstellt eine Sinnvolle Grunkkonfiguration auf die man aufbauen kann...

----------

## MalleRIM

Ich hab grad mal den Thread hier entdeckt... ja, er ist alt, aber ich schreib trotzdem drin.

Ich hätte nämlich auch gerne mal ein Programm, was anhand von lspci einen funktionsfähigen Kernel erstellt.

Genkernel passt nämlich weder den Kernel auf dein System an, noch stellt es eine sinnvolle Grundkonfiguration her. Es erstellt einfach einen Standardkernel, der auf fast jedem System läuft, nicht nur auf dem eigenen. Der Kernel unterstützt dann also jede Menge Hardware, die auf dem System gar nicht vorhanden ist. Damit ist er hoffnungslos überladen und für sowas benutzt man kein Gentoo, sondern z.B. Ubuntu (nix gegen Ubuntu, aber das ist nunmal auf Kosten der Schlankheit extrem benutzerfreundlich und wenig wartungsintensiv).

----------

## STiGMaTa_ch

 *MalleRIM wrote:*   

> Genkernel passt nämlich weder den Kernel auf dein System an, noch stellt es eine sinnvolle Grundkonfiguration her.

 

Interpretier doch nicht einfach dein Wunschdenken in die Funktionen eines Tools. Wo bitte steht geschrieben, dass Genkernel das können soll?

 *Quote:*   

> Genkernel is a script available with Gentoo Linux designed to allow users who are not previously used to compiling a kernel to generate a kernel that will autodetect their hardware in the same fashion as the Gentoo LiveCD's.

 

Es liegt nun einmal in der Sache der Natur, dass man zum automatischen erkennen und Unterstützung jeglicher Hardware die entsprechenden Module reinpacken muss. Ob du nun die 10Gbit Ethernetkarte hast oder nicht ist irrelevant. 

Solltest du einen Kernel wollen der genau deinen Bedürfnissen entspricht musst du diesen zwangsläufig selber erstellen. Das verwenden von lspci und das automatische vorschlagen/auswählen der entsprechenden Treiber wäre sicherlich ein nettes Feature, würde aber auch nur ca. 30% der Kernelkonfiguration darstellen.

Denn Entscheidungen welches Filesystem du unterstützen möchtest, ob und welche Firewall Module du installieren möchtest, welchen Scheduler du haben möchtest, welche USB Unterstützung du möchtest, ob du z.B. noch Firewire Ethernet Modul möchtest, ob du mit oder ohne Framebuffer arbeiten möchtest  etc. kann das System nicht "erraten". Ausserdem, was machst du wenn du einen Rechner ohne USB hattest, dann eine entsprechende Erweiterungskarte einbaust und nun Unterstützung dafür brauchst? Klar, die USB Chips würdest du dann nach dem booten mit lspci erkennen und könntest diese automatisch aktivieren. Was ist aber mit den Geräten die am USB angeschlossen werden sollen? Die könnte erst erkannt/hinzugefügt werden wenn die USB Chipsets laufen. Soll der Vorgang dann also so aussehen, dass zuerst der USB Chipsatz erkannt wird, du den Kernel kompilierst, installierst, neu bootetst, dann alle verfügbaren USB  Devices anstöpselst (USB Sticks, USB 2 Serial Converter, USB Ethernet Karte, USB Scanner) dann den Kernel nochmals baust und dann erst einen funktionierenden Kernel hast?

Liener Gruss

STiGMaTa

----------

## UTgamer

Erst mal ein großes Lob an die Ersteller dieser Wikis Frankyboy und Misterjack.

Über das Gentoo Wiki werden wenigstens mal alle Punkte auf Deutsch abgefasst, bisher hatte ich zum Beispiel diese engl. Seite wenn ich mal etwas nachschlagen wollte: http://kernelnewbies.org/Linux_2_6_20 Aber jetzt kenne ich auch das Gentoo Wiki zum schnellen Nachschlagen, welches sogar vollständiger ist.

Ich habe 1998 meinen ersten Kernel 2.0.35-1 auf einem Suse 5.3 mit Hilfe zweier Telefonate da die Anleitung aus dem Handbuch fehlerhaft war bei einem Informatikstudenten geben lassen. Seither baue ich alle meine Kernel selbst.

Solche Informationen sind für mich dabei echt Gold Wert:

http://www.heise.de/open/artikel/83933

http://www.heise.de/open/artikel/88020

http://www.heise.de/open/artikel/91816

http://www.heise.de/open/artikel/96001

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.21 (Changelog-Beispiel für Treibersuche)

http://kerneltrap.org/node/8082 (Über Artikel oder Suchmachine solche Informationen hinzufinden)

http://www.pro-linux.de/news/2007/11125.html (Sowas lese ich dann zusätzlich als Kurzzusammenfassung)

Alle unnötige Module fliegen bei mir raus, da sie erstens eine Sicherheitslücke darstellen, zweitens unnötig die Kompilierzeit erhöhen und drittens den Startvorgang unnötig verzögern, ja viertens sogar baue ich fast alles monolytisch in den Kernel bis auf wirklich selten genutzte Module für HW die vorhanden aber meist ungenutzt rumliegt wie Zaurus, ieee1394, parport, nls_cp850, gameport, pcspkr oder das Muß nVidia.

----------

## psyqil

Es heißt monolithisch. Das hab ich Dir schonmal gesagt!  :Twisted Evil:   :Razz: 

Ich würde mich freuen, wenn ich z.B. eine Knoppix starten könnte und darauf ein Programm imstande wäre, anhand der tatsächlich geladenen Module eine Config zu erstellen, in der ich nicht hunderte von Einträgen händisch löschen müßte. Oder gibt's sonst eine Möglichkeit, beispielsweise alle NICs mal schnell zu deaktivieren, um dann die eine Karte, die jetzt tatsächlich verbaut ist, selber rauszusuchen?

----------

## UTgamer

 *psyqil wrote:*   

> Es heißt monolithisch. Das hab ich Dir schonmal gesagt!  
> 
> 

 

Hab Erbarmen, ich hoffe das ichs beim nächsten mal nicht wieder vergesse, Standard habe ich ja auch mal schwer erlernt.   :Embarassed:   :Very Happy: 

 *psyqil wrote:*   

> Ich würde mich freuen, wenn ich z.B. eine Knoppix starten könnte und darauf ein Programm imstande wäre, anhand der tatsächlich geladenen Module eine Config zu erstellen, in der ich nicht hunderte von Einträgen händisch löschen müßte. Oder gibt's sonst eine Möglichkeit, beispielsweise alle NICs mal schnell zu deaktivieren, um dann die eine Karte, die jetzt tatsächlich verbaut ist, selber rauszusuchen?

 

Volle Zustimmung, diese Handarbeit kostet ja soviel Zeit das es wirklich nicht jeder machen kann. Bei I2O oder solchen Dingen bin ich je nach Chipsatz auch immer am schwimmen und teste es oft durch einfaches ausprobieren, ob beim weglassen dann irgendetwas nicht funktioniert (TV Ein-/Ausgang oder so was).

----------

## MalleRIM

 *STiGMaTa_ch wrote:*   

>  *MalleRIM wrote:*   Genkernel passt nämlich weder den Kernel auf dein System an, noch stellt es eine sinnvolle Grundkonfiguration her. 
> 
> Interpretier doch nicht einfach dein Wunschdenken in die Funktionen eines Tools. Wo bitte steht geschrieben, dass Genkernel das können soll?
> 
>  *Quote:*   Genkernel is a script available with Gentoo Linux designed to allow users who are not previously used to compiling a kernel to generate a kernel that will autodetect their hardware in the same fashion as the Gentoo LiveCD's. 
> ...

 

Das war eine Antwort auf den Post davor - ich weiß, wofür Genkernel gut ist.

----------

## hoschi

 *Sourcecode wrote:*   

> Was ich dazu meine?
> 
> Gentoo ist keine Distri für einen Linux Anfänger, ich kann von jemandem der Gentoo verwendet Grundlegende Linux Kentnisse vorrausetzen und dazu gehört auch wie man nen Kernel Kompilliert (zumindest Gentoo geht davon aus das der User Linux nicht erst seit gestern benutzt und sich in der Konsole zurechtfindet)
> 
> Meiner Meinung kann das alles so bleiben.

 

Nein.

Die grossen Features von Gentoo sind die absolute saubere und ausfuehrliche Installationsanleitung in der Shell und die hohe Flexiblitaet. Ein KlickiBunti-Installer gehoert nicht dazu, eine sehr aktuelle und saubere Kernelanleitung dagegen schon.

Die ausfuehrliche Anleitung zum allen wichtigen Kerneloptionen gibt es hier:

http://de.gentoo-wiki.com/Kernel_manuell_kompilieren

Leider nur in Deutsch, ein aehnlich saubere Beschreibung gibt es leider nicht mal auf Englisch im Web. Schon gar nicht von offizieller Seite  :Sad: 

----------

## Suizid

Hallo zusammen,

da ich Linux mal näher kennen lernen wollte habe ich mir vo ein paar Tagen mal Gentoo heruntergeladen und angefangen es zu installieren.

Auch mit Erfolg  :Wink: 

Jedoch bin ich nicht so ganz zufrieden was meinen Kernel angeht, schon garnicht als ich auf diese Forendiskusion gestoßen bin.

Vor allem das was platinumviper geschrieben hat interessiert mich schon näher.

Da stellt sich mir die Frage, wenn man das /usr/src/linux Verzeichnis nicht zum Kernel bauen nutzen soll und ich es mit den Variablen machen soll, könnte ich doch auch einfach dieses Verzeichnis in den Variablen benutzen oder?

Vielleicht hab ich auch nicht ganz verstanden worum es geht, werd mir das heute nochmal in Ruhe ansehen.

Grüße

----------

## mv

 *Suizid wrote:*   

> Da stellt sich mir die Frage, wenn man das /usr/src/linux Verzeichnis nicht zum Kernel bauen nutzen soll und ich es mit den Variablen machen soll, könnte ich doch auch einfach dieses Verzeichnis in den Variablen benutzen oder?

 

Ja, aber das wäre ziemlich sinnfrei. Der enscheidende Punkt ist auch nicht so sehr die KERNEL_DIR-Variable sondern die KBUILD_OUTPUT-Variable, also dass Du ganz streng die Kernel-Quellen und die bei der Compilierung/Konfiguration erzeugten Files trennst. Das hat mehrere Vorteile:  Du bist ruckzuck wieder bei einem "blanken" Kernel-Baum (angeblich geht das zwar auch mit "make mrproper", aber merkwürdigerweise bleiben da doch immer noch andere Files zurück).

 Du kannst problemlos mehrere Kernel-Versionen (z.B. für andere Rechner) hintereinander kompilieren.

 Wenn es ums Testen geht, kannst Du "mal schnell" das Kompilat "merken", neu kompilieren, und bei Misserfolg "zurückschalten", ohne die Source kopieren zu müssen.

 Du musst nicht root sein, um den Kernel zu kompilieren.

Zur KERNEL_DIR-Variable ist zu sagen, dass die letzte Komponente des Directories nach dem Auflösen von Symlinks den Namen des Kernels (also z.B. linux-2.6.xx-gentoo-ry) enthalten sollte, da die Gentoo eclasses dieses zur Bestimmung der aktuellen Kernel-Version benötigen (sonst werden die Ebuilds von Gentoo wie z.B. nvidia-drivers u.ä. nicht wissen, in welches Directory sie die Module installieren sollen).

Ein Beispiel: Ich benutze squashfs+aufs (Initskript-Methode), um das Directory /usr/src/kernel zu komprimieren aber beschreibbar zu halten. Meine Variablen KERNEL_DIR und KERNEL_OUTPUT zeigen immer unverändert auf /usr/src/kernel/source bzw. /usr/src/kernel/build. Das erste "Directory" ist aber nur ein Symlink auf linux-2.6.xx-gentoo-ry (natürlich mit jeweils an den aktuellen Kernel angepasstem xx-gentoo-ry; bei einem Upgrade der Kernel-Sourcen mit Portage verschiebe ich den von Portage installierte Baum manuell nach /usr/src/kernel geschoben und passe den Symlink an - den danach toten /usr/src/linux-Link lösche ich jeweils. Die jeweils alte Version der Kernel-Sourcen kann ich löschen, weil das "Backup" ja noch im jeweils alten sqfs-File vorhanden ist; natürlich sollte das oben erwähnte init-Skript so konfiguriert sein, von diesem File mindestens jeweils noch die vorherige Version beizubehalten). Das zweite Directory (/usr/src/kernel/build) gehört dem Nutzer, mit dem ich später den Kernel kompiliere (natürlich habe ich mir ein Script geschrieben, das als root aufgerufen wird, und zum Kompilieren ccache setzt und den Benutzer wechselt, danach wieder root wird, um die Module zu installieren...).

Der Grund, weshalb ich die Verschiebe-Aktion nach /usr/src/kernel/linux-2.6.xx-gentoo-ry mache, ist einfach, dass ich das gesamte /usr/src/kernel so auf einen Schlag komprimiere: Im laufenden Betrieb kostet mich so der Kernel-Baum einschließlcih der .o-Files gerade mal eine sqfs-Datei von ca. 85MB Länge.

Um jetzt die ursprüngliche Frage zu beantworten, die in diesem Setting lautet: Warum KERNEL_DIR=/usr/src/kernel/source und letzteres als Symlink machen, wenn man doch gleich den Link /usr/src/linux umsetzen könnte?

Dafür hatte ich zwei Gründe:  Der unwichtigere Grund: So wird der Symlink im komprimierten /usr/src/kernel mitabgespeichert. Das ist vor allem dann praktisch, wenn man mal die sqfs-Datei durch eine andere ersetzt, was man mit sqfs+aufs ja problemlos zur Laufzeit machen kann (z.B. mache ich das, wenn der neue Kernel nicht läuft, oder wenn ich die sqfs von einem meiner anderen Systeme übernehme). In so einem Fall kann man dann nicht "vergessen", den Symlink umzubiegen, weil er ja "automatisch" mitverändert wird.

 Der wichtigere Grund: Fehlerhafte Tools (z.B. war das bei einigen alten Ebuilds der Fall) können nicht einfach ihre .o-Files nach /usr/src/linux-kompilieren: Solche Tools liefern dann einen Fehler statt "versehentlich" .o-Files o.ä. in den "blanken" Kernel-Baum (statt nach KERNEL_OUTPUT) zu schreiben.

----------

## Suizid

Danke mv.

Also setze ich nochmal neu auf und mach es diesmal richtig.  :Smile: 

Der /usr/src/linux symlink kann getrost gelöscht werden?

Hab auch noch etwas gefunden zu dem Thema http://linuxgazette.net/issue62/tag/4.html

Gruß

----------

## xraver

Gab es nicht mal eine Zeit lang auch die kernelDocs in Deutsch?

IMHO hatte ich unter SuSe mal sowas gesehen. Ist aber lange her und war unvollständig.

Bei den vielen Änderungen  ist eine "saubere" Doku in Deutsch auch nicht ganz so einfach.

Und es ist auch egal ob Sheduler nun in de oder en vorhanden sind.

Wer dan englischen Begriff nicht kennt, wird mit dem deutschen auch nicht viel mehr anfangen können.

Ich kompiliere mir meinen Kernel schon seit meinen ersten Linuxstunden selbst.

Ist zwar heute kein Muss mehr, aber man weiss eben was man hat.

Was dem Kernel in Gentoo betrifft, ich habe zwar nie Genkernel benutzt - aber ich glaube das er gut funktioniert und für einen Änfänger einfach zu benutzen ist. Und wenn man schon "Freak" genug ist um Gentoo zu benutzen, dann kann man sich auch ein wenig in die Kernelkonfiguration einfuchsen. Was an Hardware in ihren Rechnern steckt werden ja wohl die meisten wissen.

In dem Sinne, frohes kompilieren und einen guten Rutsch ins neue Jahr.

----------

## Suizid

Also irgend etwas mach ich eindeutig falsch.

Also ich habe mir die Verzeichnise /usr/kernel/source und /usr/kernel/build erstellt

In /kernel/source befindet sich noch das Verzeichnis mit den kopierten Kernel Files und ein symlink auf dieses (current).

In /kernel/build befindet sich noch ein symlink (current) auf ein Verzeichnis mit dem Namen der Kernelversion.

In der make.conf habe ich die Variablen KERNEL_DIR und  KBUILD_OUTPUT gesetzt.

KERNEL_DIR=/usr/kernel/source/current

KBUILD_OUTPUT=/sr/kernel/build/current

Also jetzt in das Verzeichnis /usr/kernel/source/current

Mit make menuconfig alles einstellen und speichern.

make O=/kernel/out/current oldconfig

In dem Kernel Verzeichnis findet sich danach .config.old sollte das dann nicht im Output Verzeichnis liegen?

Wenn ich jetzt make -j8 O=/kernel/out/current all aufrufe bekomme ich die Meldung, dass das Kernel Verzeichnis nicht sauber sei und ich es mit mrpropper bereinigen soll.

(Habe eben nochmal alles bereinigt und den Befehl mit oldconfig ausgelassen dann ist es kein Problem.)

Irgendwie bin ich jetzt Ratlos, ist es überhaupt richtig die Variablen KERNEL_DIR und KBUILD_OUTPUT in der make.conf zu setzen?

Wenn jemand noch ein paar Infos dazu hat wäre ich ihm echt dankbar.

----------

## mv

 *Suizid wrote:*   

> KERNEL_DIR=/usr/kernel/source/current
> 
> KBUILD_OUTPUT=/sr/kernel/build/current

 

Typo? /usr/kernel/build/current

 *Quote:*   

> Also jetzt in das Verzeichnis /usr/kernel/source/current
> 
> Mit make menuconfig alles einstellen und speichern.

 

Nein. Das O="${KBUILD_OUTPUT}" brauchst Du bei jedem einzelnen make-Kommando (weshalb sich ein Skript empfiehlt), also hier 

```
make O="${KBUILD_OUTPUT}" menuconfig
```

 *Quote:*   

> make O=/kernel/out/current oldconfig
> 
> In dem Kernel Verzeichnis findet sich danach .config.old sollte das dann nicht im Output Verzeichnis liegen?

 

Ja, alle .config* und .o-Files sollten dort liegen. Wenn Du - wie empfohlen - nicht root bist und ${KBUILD_OUTPUT} aber Dir gehört (KERNEL_DIR hingegen nur root und auch nur von root beschreibbar ist) kannst Du auch gar nicht "versehentlich" (wie etwa bei Deinem ersten Kommando) nach ${KERNEL_DIR} schreiben.

Dadurch, dass Du jetzt temporäre Files in ${KERNEL_DIR} hast (was eigentlich nicht hätte passieren dürfen) könnte ich mir vorstellen, dass das Kernel make-System etwas durcheinanderkommt. Aber möglicherweise war die Ursache ein Typo? (/usr scheint im obigen Pfad zu fehlen).

 *Quote:*   

> ist es überhaupt richtig die Variablen KERNEL_DIR und KBUILD_OUTPUT in der make.conf zu setzen?

 

Ich setze sie in der Shell Profile-Datei ("export" davor natürlich nicht vergessen). Der Grund dafür ist aber hauptsächlich, dass ich auf diese Variablen auch in meinem "Kernel-Bau-Script" zugreife.

----------

## Suizid

Danke mv.

KBUILD_OUTPUT=/sr/kernel/build/current sollte natürlich KBUILD_OUTPUT=/usr/kernel/build/current heisen, sorry Tipfehler.

Nochmal zu den Variablen.

Also dann in die /etc/profile export KBUILD_OUTPUT=/usr/kernel/build/current?

Muss dann aber immernoch mit dem O= Befehl übergeben werden?

EDIT:

Also geklappt hat es jetzt. Lag wohl an dem fehlenden O= bei make manuconfig.

Bleibt noch ein Problem:

Ich habe es aber auch mal versucht nicht als root zu machen, wenn ich dann z.B make O=/usr/kernel/build/current menuconfig aufrufe bekomme ich die Fehlermeldung die Datei ../scribte/basic/fixdep.d kann nicht erstellt werden. Ist auch richtig so, ich habe ja auch keine Schreibrechte.

Aber wieso will er jetzt die Dateien im KERNEL_DIR anlegen? (Als ich es als root ausgeführt hatte sind die Dateien, nach beenden von menuconfig, auch automatisch wieder gelöscht worden)

----------

## mv

 *Suizid wrote:*   

> Muss dann aber immernoch mit dem O= Befehl übergeben werden?

 

Ja. Nur die Gentoo-Ebuilds werden KBUILD_OUTPUT automatisch berücksichtigen, nicht das Kernel-Makefile.

 *Quote:*   

> Ich habe es aber auch mal versucht nicht als root zu machen, wenn ich dann z.B make O=/usr/kernel/build/current menuconfig aufrufe bekomme ich die Fehlermeldung die Datei ../scribte/basic/fixdep.d kann nicht erstellt werden.

 

Bist Du sicher, dass /usr/kernel/build/current auf ein von Dir beschreibbares Directory zeigt?

```
$ export KBUILD_OUTPUT=$HOME/my_kernel

$ mkdir $KBUILD_OUTPUT

$ cd $KERNEL_DIR

$ make O=$KBUILD_OUTPUT menuconfig

HOSTCC  scripts/basic/fixdep

HOSTCC  scripts/basic/docproc

...
```

 Alle Dateien werden in $HOME/my_kernel erstellt, wie es sein soll (auf $KERNEL_DIR hat der Benutzer, mit dem ich Obiges ausgeführt habe, gar keine Schreibrechte).

----------

## Suizid

Du hattest Recht. Habe vergessen in den Unterordnern auch die nötigen Berechtigungen zu setzen.

Danke!  :Smile: 

----------

