PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wo gehören die Kernel Quellen denn jetzt genau hin, was ist richtig?


Catonga
04.08.02, 23:11
Laut Tutorial (http://www.linuxforen.de/forums/showthread.php?threadid=205) und dem Kofler Buch gehören die Kernelquellen nach

/usr/src/linux


In der Readme des Linuxkernel-Pakets steht aber nun folgendes:

- If you install the full sources, put the kernel tarball in a
directory where you have permissions (eg. your home directory) and
unpack it:

gzip -cd linux-2.4.XX.tar.gz | tar xvf -

Replace "XX" with the version number of the latest kernel.

Do NOT use the /usr/src/linux area! 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
whatever the kernel-du-jour happens to be.



Welches Verzeichnis ist denn jetzt nun richtig,
/usr/src/linux oder irgendein anderes?

Wo sollen die Sourcen des neuen 2.4.19-er denn jetzt nun hin, wenn man es
"richtig" machen möchte?

msi
04.08.02, 23:22
es ist egal wohin du den entpackst.
Wenn du ihn als root in /usr/src/
entpackst ( tar xvzf linux-2.4.19.tar.gz )
dann wird gar nicht das verzeichnis linux
überschrieben, sondern es wird
linux-2.4.19 angelegt. Also keine sorge
dass manche progs nicht mehr laufen.
Aber im Prinzip ist es egal wo du ihn hinentpackst
und kompilierst. Da der Kernel alle Abhängigkeiten
absolut also mit / am anfang angibt und nicht relativ,
ohne, bzw. nur die relativ die mitentpackt werden.

Jorge
04.08.02, 23:26
Das Readme nimmt "Rücksicht" auf evtl. von der Distribution installierte Kernelquellen, bzw. Kernelheader. Meist ist aber /usr/src/linux ein Link. Bei mir sieht das so aus:


carsten@[cws-lx:~]# ll /usr/src/
insgesamt 24M
lrwxrwxrwx 1 root root 12 4. Mär 23:44 linux -> linux-2.4.18
drwxr-xr-x 14 573 573 720 3. Mär 18:49 linux-2.4.17
drwxr-xr-x 14 573 573 720 12. Jul 22:18 linux-2.4.18
carsten@[cws-lx:~]#


Wenn das bei Dir genauso aussieht, dann entferne vorher den Link "linux", wenn nicht entsteht die im Readme beschriebene Mixtur.

Nachdem die Kernelquellen entpackt sind hast Du ein Verzeichnis linux, benenne diese um nach "linux-$KERNELVERSION" und setze den Link "linux" auf das Verzeichnis "linux-$KERNELVERSION" und gut ist.

@msi:
Bist Du Dir sicher, dass tar ein Verzeichnis linux-2.4.19 anlegt, hast Du das ausprobiert? Bis jetzt hat sich bei mir noch jeder Kernel nach ./linux entpackt.

Catonga
04.08.02, 23:27
Es stimmt schon, das linux-2.4.19 angelegt wird, aber
das Problem ist, das man z.b. laut Kofler nun nen Link namens "linux" auf
"linux-2.4.19"setzen soll, dadurch zeigt /usr/src/linux auf den neuen Kernel,
also /usr/src/linux-2.4.19 .

Jorge
04.08.02, 23:30
Was ist daran ein Problem? Unter /usr/src/linux liegen die Kernelquellen. Durch den Link kannst Du entscheiden welche Quellen Du verwenden willst. Ich sehe da kein Problem. ;)

Catonga
04.08.02, 23:33
Original geschrieben von Jorge


Nachdem die Kernelquellen entpackt sind hast Du ein Verzeichnis linux, benenne diese um nach "linux-$KERNELVERSION" und setze den Link "linux" auf das Verzeichnis "linux-$KERNELVERSION" und gut ist.

@msi:
Bist Du Dir sicher, dass tar ein Verzeichnis linux-2.4.19 anlegt, hast Du das ausprobiert? Bis jetzt hat sich bei mir noch jeder Kernel nach ./linux entpackt.

Ja, also so habe ich es bisher auch immer gemacht.

Erst den den alten Kernel, falls nötig von /usr/src/linux nach /usr/src/linux-alte-version veschoben oder
falls es ein link war den link gelöscht.

Dann hab ich den neuen kernel entpackt.
Der entpackt sich jetzt inzwischen so, das er zusätzlich die Vesionsnummer mitangibt, also so wie msi es gesagt hat.

Und danach habe ich einen Link namens /usr/src/linux erstellt, der auf den neuen Kernel zeigt.


Das Problem ist jetzt halt, das ich befürchte, das dann irgendwelche Probleme mit den Bibliotheken auftreten könnten, da diese ja hier in meinem Fall gegen
einen 2.4.18-er compiliert wurden, anstatt gegen einen 2.4.19-er

Bei meinem alten Slackware 8.0 war das noch schlimmer,
da war der alte Kernel mit dem die Bibliotheken verlinkt waren Kernel 2.4.6
und der neue war 2.4.18.

Jorge
04.08.02, 23:37
Original geschrieben von Catonga
Dann hab ich den neuen kernel entpackt.
Der entpackt sich jetzt inzwischen so, das er zusätzlich die Vesionsnummer mitangibt, also so wie msi es gesagt hat.

Endlich, so erspart man sich einen Schritt.

Das Problem ist jetzt halt, das ich befürchte, das dann irgendwelche Probleme mit den Bibliotheken auftreten könnten, da diese ja hier in meinem Fall gegen
einen 2.4.18-er compiliert wurden, anstatt gegen einen 2.4.19-er


Damit hatte ich noch nie Probleme. Wie Du oben siehst habe ich schon zwei Kernel Versionen laufen gehabt auf meiner Workstation. Da auf meiner Maschine alles selbst Kompiliert ist (LFS ;) ), kann ich, denke ich, behaupten, dass das keine Probleme bereitet.

WarlorD
04.08.02, 23:42
Ob man den symlink ändern kann oder es besser bleiben lassen sollte wird hier beschrieben:
http://www.linuxfromscratch.org/view/3.3/chapter05/kernel.html
Wenn also /usr/include/asm und /usr/include/linux echte Verzeichnisse sind und keine symlinks, dann kann man getrost /usr/src/linux auf den neuen kernel linken.

Zaphod-B
04.08.02, 23:43
@Catonga
Absolut kein Problem, ich hab es Samstag gemacht und bin auf keinerlei Probleme gestoßen.



Greetings Zaphod-B

Catonga
04.08.02, 23:51
Original geschrieben von WarlorD
Ob man den symlink ändern kann oder es besser bleiben lassen sollte wird hier beschrieben:
http://www.linuxfromscratch.org/view/3.3/chapter05/kernel.html
Wenn also /usr/include/asm und /usr/include/linux echte Verzeichnisse sind und keine symlinks, dann kann man getrost /usr/src/linux auf den neuen kernel linken.

Ah danke an euch alle, insbesonders für den lfs link.
Dann kann ich den neuen Kernel getrost nach /usr/src/linux linken. :)

Bei meinem letzten Linux System hatte ich nämlich so einige Probleme mit
ALSA was etwa folgende Fehlermeldung hervorbrachte,
undefined reference oder so ähnlich. (kann auch anders geheißen haben)
Zumindest hatte das laut Doku etwas mit den Kernel Header Files zu tun und
deren lage im Verzeichnisbaum.
Vielleicht war aber ALSA auch nur Buggy.