Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Mehr Hilfe bei Kernel-Konfiguration
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2, 3  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
UTgamer
Veteran
Veteran


Joined: 10 Aug 2003
Posts: 1326
Location: Troisdorf (Köln) Deutschland

PostPosted: Tue Oct 23, 2007 9:47 am    Post subject: Reply with quote

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.
_________________
AMD Phenom II x4 >> CFLAGS="-march=amdfam10 -O2 -mmmx -msse3 -mfpmath=sse,387 -pipe -ffast-math" is stable and here in use.

Did Intel produce at any time bugfree HW?
http://www.urbanmyth.org/microcode/
http://www.heise.de/newsticker/meldung/91748
Back to top
View user's profile Send private message
psyqil
Advocate
Advocate


Joined: 26 May 2003
Posts: 2767

PostPosted: Tue Oct 23, 2007 11:52 am    Post subject: Reply with quote

Es heißt monolithisch. Das hab ich Dir schonmal gesagt! :twisted: :P


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?
Back to top
View user's profile Send private message
UTgamer
Veteran
Veteran


Joined: 10 Aug 2003
Posts: 1326
Location: Troisdorf (Köln) Deutschland

PostPosted: Tue Oct 23, 2007 1:15 pm    Post subject: Reply with quote

psyqil wrote:
Es heißt monolithisch. Das hab ich Dir schonmal gesagt! :twisted: :P

Hab Erbarmen, ich hoffe das ichs beim nächsten mal nicht wieder vergesse, Standard habe ich ja auch mal schwer erlernt. :oops: :D
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).
_________________
AMD Phenom II x4 >> CFLAGS="-march=amdfam10 -O2 -mmmx -msse3 -mfpmath=sse,387 -pipe -ffast-math" is stable and here in use.

Did Intel produce at any time bugfree HW?
http://www.urbanmyth.org/microcode/
http://www.heise.de/newsticker/meldung/91748
Back to top
View user's profile Send private message
MalleRIM
Guru
Guru


Joined: 23 Jul 2007
Posts: 563
Location: China

PostPosted: Thu Nov 01, 2007 11:23 am    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message
hoschi
Advocate
Advocate


Joined: 19 Jul 2003
Posts: 2517
Location: Ulm, Germany, Europe

PostPosted: Thu Nov 01, 2007 7:13 pm    Post subject: Reply with quote

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 :(
_________________
Just you and me strogg!
Back to top
View user's profile Send private message
Suizid
n00b
n00b


Joined: 26 Dec 2007
Posts: 15

PostPosted: Wed Dec 26, 2007 11:33 pm    Post subject: Reply with quote

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 ;)

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
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6749

PostPosted: Fri Dec 28, 2007 9:50 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message
Suizid
n00b
n00b


Joined: 26 Dec 2007
Posts: 15

PostPosted: Sat Dec 29, 2007 9:26 am    Post subject: Reply with quote

Danke mv.

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

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ß
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Sat Dec 29, 2007 11:17 am    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message
Suizid
n00b
n00b


Joined: 26 Dec 2007
Posts: 15

PostPosted: Sun Dec 30, 2007 7:01 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6749

PostPosted: Sun Dec 30, 2007 8:20 pm    Post subject: Reply with quote

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
Code:
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.
Back to top
View user's profile Send private message
Suizid
n00b
n00b


Joined: 26 Dec 2007
Posts: 15

PostPosted: Sun Dec 30, 2007 8:37 pm    Post subject: Reply with quote

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)
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6749

PostPosted: Mon Dec 31, 2007 4:26 pm    Post subject: Reply with quote

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?
Code:
$ 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).
Back to top
View user's profile Send private message
Suizid
n00b
n00b


Joined: 26 Dec 2007
Posts: 15

PostPosted: Sun Jan 06, 2008 4:56 pm    Post subject: Reply with quote

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

Danke! :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Goto page Previous  1, 2, 3
Page 3 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum