Kernel- Problem
-
Hallo, ich versuche mich gerade im Kernel- Kompilieren.
Mitten im Vorgang kommt die Meldung "cannot create directory `/lib/modules/2.6.21.1'" und natürlich bricht der Vorgang ab.Ich bin neu in dem Gebiet, und weis nicht mal ansatzweise, was dieser Fehler bedeutet, wo ich dazu was finde, noch wie ich ihn beheben könnte!
Ich bitte um kurze Info bzw Hilfe, weis da echt nicht weiter!
Vielen Dank!
-
Das Ganze machst du auch unter root-Rechten?
Background:
Dein Kernel besteht aus einer immerlaufenden Basis und mehr oder weniger vielen Zusatz-Modulen, die nur dann geladen werden, wenn sie gebraucht werden. Z.B. wenn eine USB-Soundkarte angesteckt wird.
Diese Module werden zusammen mit dem Kernel kompiliert, sie müssen ja auch genau auf ihn zugeschnitten werden. Deshalb werden sie per Konvention im Verzeichnis /lib/modules/[Version] installiert. Da das aber so ein fundamentaler Kernbereich des Systems ist, darf da natürlich nicht jeder Verzeichnisse erstellen und Dateien reinschreiben sondern nur der Admin.
-
hallo!
ja, da stand dann noch permission denied dabei, dann hab ich dem make- befehl noch ein sudo vorangesetzt. hat aber nichts genützt.was bedeuteted denn der fehler? falsche config's evtl?
ich hab da nur make oldconfig ausgeführt, weil ich ja auf einem funktionierenden linux arbeite und dessen einstellungen verwenden will.beste grüße
-
hallo nochmal.
also ich habe ja eine funktionierende linux-version (ubuntu) und die setz auf einem 2.6.22.4- kernel auf.und jetz möcht ich eine etwas ältere version (2.6.21.1) kompilieren. kann ich da nicht das config- file von der 2.6.22.4- version verwenden? weis jemand wo ich das finden könnte?
beste grüße!
-
Also das hin- und herportieren von den .configs bringt bei mir immer Probleme.
Am besten klappt immer noch, sich die Kernelsourcen komplett von kernel.org zu ziehen und nach bestem Wissen und Gewissen selbst zu konfigurieren.
Das kostet zwar ein, zwei Stunden aber dafür hat man dann wirklich seinen Wunschkernel und hat eine Menge über sein System gelernt.Wenn du dann das nächste mal konfigurieren musst, dann geht es schon routinemäßig.
-
hmmm, tja, nun hab ich selbst konfiguriert, und noch immer:
"permission denied" bei verschiedesten einträgen, obwohl ich make && make modules_install mit sudo aufrufe...
leute, ich bin am verzweifeln, was mach ich falsch?
-
Dann mach doch mal kein sudo, sondern su und dann die makes aufrufen.
Außerdem rufe ich immer
- make
- make modules
- make install
- make modules_installauf.
-
linuxpaule schrieb:
"permission denied" bei verschiedesten einträgen, obwohl ich make && make modules_install mit sudo aufrufe...
Du machst nicht zufällige
sudo make && make install
stattsudo make && sudo make install
?
-
wobei man bei make kein sudo braucht. kompilieren kann man auch als non-root.
make modules_install braucht root-rechte, da /lib sonst nicht schreibbar ist.
-
..vllt auch mal'n make clean, wenn's evtl schon der zweite oder dritte Anlauf is. Warum machste das nich gleich alles als root?
Du nimmst Ubuntu?? Hat das kein kernel-package, nimm halt make-kpkg und CO, damit bekommste'n .deb vom Kernel, den Headers oder wasde sonst noch baust. Die kannste damm mit dpkg installieren oder ggf wieder purgen, wenn's nich geklappt hat. Das ganze rumgeschiebe von Files und update-grub sparste Dir damit auch.
Ausserdem wirst Du wohl, wenn Du mit einer .config eines Standardsystems am Start bist, noch zusaetzlich ne initrd mitbauen muessen (nur so als Tipp). Wenn Du aber nicht gerade fuer einen reinen Server oder ein Embedded System baust, wuerde ich die gleich wegkonfigurieren. Und wenn Du schon mal dabei bist kannste auch gleich den ganzen Kernel selber konfigurieren und backen.
Da lernste wenigstens was und bekommst ein System, was auf Deine Hardware optimiert is. Zugegeben das erste mal bis der richtig opti is, kann das schon einen Monat an einlesen und ausprobieren in Anspruch nehmen.
Den Symlink denke ich haste schon gemacht, wenn nicht:
ln -s linux-foo-bar-22.1.2.3.4 linux
Zuerst wuerd ich das alles clean machen und die config leer machen:
cd /usr/src/linux && su
make mrproper
make allnoconfig
dann konfigurieren (viel spass!):
make menuconfig
speichern und kompilieren:
make-kpkg kernel-image modules-image -revision=0 --append-to-version -helloworldkernel kernel-headers
dann saubermachen
make-kpkg clean
und schliesslich gehste von /usr/src/linux eins nach oben und hast die .deb's.
PS: ich glaube in dem Forum hier geht's eig eher um Linux/Unixprogrammierung und eher weniger um dessen Benutzung