Ulrich Walter wrote:
Wenn man einen Kernel von kernel.org heruntergeladen und ausgepackt hat, wie lautet der korrekte Link auf diese ausgepackten Quellen, schließlich gibts ja einige Gelegenheiten (GraKa-Treiber z.B.) bei denen die Quellen benötigt werden?
1. Du kannst die Kernel-Quellen entpacken, wo Du moechtest. Es muss nicht unter /usr/src sein, was sich allerdings in den vergangenen Jahren eingebuergert hat. 2. Wenn Du Deine Quellen entpackst, wird ein neues Verzeichnis angelegt, z.B. linux-2.6.7. Deine Quellen liegen also, wenn Du sie unter /usr/src entpackt hast, in /usr/src/linux-2.6.7. 3. Der Link /usr/src/linux braucht _nicht_ existieren[*]. In diesem Stadium muss ueberhaupt kein Link auf das Verzeichnis /usr/src/linux-2.6.7 zeigen. 4. Module werden nach /lib/modules/`uname -r`/ des neuen Kernels installiert (sofern man ein "make modules_install" durchfuehrt). Der angelegte Link /lib/modules/`uname -r`/build sollte nun auf das Verzeichnis mit den zu diesen Modulen passendem Kernel- Quellcode zeigen. In unserem Beispiel hier muesste also der Link /lib/modules/`uname -r`/build (wenn man das Makefile im Hauptverzeichnis der Kernel-Quellen nicht angepasst hat vor dem Compilieren, wuerde vermutlich "uname -r" ein "2.6.7" ergeben) auf /usr/src/linux-2.6.7 verweisen. Beim Compilieren externer Module sollte _nur_ dieser Link ausgewertet werden, d.h. die noetigen Header-Files sollten in /lib/modules/`uname -r`/build/include/linux gesucht werden. Es gibt leider einige externe Module (bzw. die Makefiles dazu), die nicht dem hier genannten Link /lib/modules/`uname -r`/build folgen, sondern erwarten, dass /usr/src/linux auf die Quellen des momentan laufenden Kernels zeigt. In diesem Falle sollte also der Link /usr/src/linux wirklich existieren und auf die richtigen Quellen zeigen. Es bleibt aber festzuhalten, dass dies ein prinzipieller Fehler des Makefiles zum Compilieren des externen Moduls ist und nicht ein Fehler im System. Bei mir auf dem System existiert schon seit langem _kein_ Link /usr/src/linux mehr. Und bisher bin ich damit gut gefahren. Man muss sich eben der Dinge, die hier beschrieben wurden, bewusst sein, und dann kann man ggf. eben entsprechend handeln. Installiert man den SuSE-Linux Kernelquellcode per RPM, dann wird der Link /usr/src/linux automatisch auf die neuen Kernelquellen gesetzt. Will man nur testweise den Kernelcode installieren etc., aber weiterhin bei einem anderen bereits installierten Kernel bleiben, dann ist Vorsicht geboten. In diesem Falle sollte der Link dann von Hand entfernt werden oder wieder zurueck auf die zum verwendeten (gebooteten) Kernel passenden Quellen zeigen... Ich hoffe, das war einigermassen verstaendlich. Gruesse, Thomson [*] Ich habe vor kurzem in einer laengeren Email mal erklaert, wann der Link existieren _muss_. Das mag bei einigen aelteren Linux-Distributionen, z.B. SuSE 6.x, der Fall sein, aber nicht bei aktuellen Distributionen.