PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vmlinuz und Module in bestimmtes Verzeichnis installieren



Stephanw
04.12.04, 18:21
Hallo,

ich habe folgendes Anliegen: Ich würde gerne, nachdem ich einen Kernel (2.6er Serie) kompiliert habe, diesen (und seine Module; sowie initrd.img und System.map) in ein bestimmtes Verzeichnis installiert haben, ohne das dabei an der Systemkonfiguration etwas verändert wird (Bootloader). Das ganze brauche ich um ein embedded-System zu entwickeln.
Danke für Tips!

Gruß Stephan

Shutdown
04.12.04, 18:34
Kopier sie doch alle in ein Verzeichnis und mach dann Symlinks wo du sie brauchst...
Oder meinst du was anderes?

Shutdown

Stephanw
04.12.04, 18:51
Das weiss ich nicht genau.

Mit einem "make install" installiere ich ja alles dorthin, wo es hin gehört. Gleichzeitig wird aber der Bootloader auch abgeändert, was ja nicht wünschenswert ist, da der Kernel ja nicht auf diesem System laufen soll.
Und nach dem Kompilieren gibt es ja glaube ich noch keine vminuz, die wird ja mit /arch/i386/boot/install.sh erstellt und installiert, genau wie die System.map.

Ich suche also nach einer Anweisung, die besagte Dateien + zugehörige Module in ein bestimmtes Verzeichnis, z.B. /usr/src/build/kernel_2.6.9/ kopiert und am System nichts weiter ändert.

Gruß Stephan

becki
21.12.04, 17:39
Du Kompilierst den erst mal, also make dep && make clean && make bzImage && make modules && make modules_install, kopierst dann arch/<deine architektur>/boot/bzImage dahin, wo du es haben willst, und /lib/modules/<kernel> dahin, wo du sie haben willst. Im Makefile kann man in den ersten 5 Zeilen den Namen des kernels eintragen (wenn du es willst), wodurch man den Kernlel leichter erkennen kann. Die module erwartet modprobe jedoch immer in /lib/modules/<kernel>! Also eignet sich am besten ein Symlink zu den modulen, oder du lässt diese in /lib/modules/<kernel>

MiGo
22.12.04, 08:50
# kbuild supports saving output files in a separate directory.
# To locate output files in a separate directory two syntax'es are supported.
# In both cases the working directory must be the root of the kernel src.
# 1) O=
# Use "make O=dir/to/store/output/files/"
#
# 2) Set KBUILD_OUTPUT
# Set the environment variable KBUILD_OUTPUT to point to the directory
# where the output files shall be placed.
# export KBUILD_OUTPUT=dir/to/store/output/files/
# make
#
# The O= assigment takes precedence over the KBUILD_OUTPUT environment variable.


Vielleicht hilft das ja weiter; der Text ist aus dem Kernel-Makefile (/usr/src/linux/Makefile).

MiGo