PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein einzelnes Modul kompilieren



Basti_litho
03.10.03, 13:54
Hier estmal der Link:
http://www.tldp.org/HOWTO/Kernel-HOWTO/loadable_modules.html#AEN285

cd /usr/src/linux
Zuerst wird das orginal Makefile in Sicherheit gebracht:


mv Makefile Makefile.original
cp Makefile.original Makefile.my
ln -s Makefile.my Makefile # Because some files underneath still need "Makefile"
vi Makefile.my


ungefähr bei Zeile 131 steht dort "SUBDIRS =kernel drivers ....."
dieses wird nun auskommentiert und die Zeile neu eingetragen und angepasst.
Ich nehme hier das Beispiel mit dem vfat


SUBDIRS =fs/vfat


Nun einfach das neue Makefile speichern und mit


make -f Makefile modules

übersetzten.
Danach ist das neue Modul wie zu erwarten unter fs/vfat/vfat.o zu finden.
Dieses jetzt einfach ins /lib/modules/xxx/kernel/fs/vfat kopieren (eventuell muss das Verzeichniss "vfat" noch erstellt werden.

Auf keinen fall sollte man auf die Idee kommen ein "make -f Makefile modules_install" auszuführen - das löscht natürlich alle anderen schon vorhandenen Module!!

Danach kann man den link Makefile -> Makefile.my löschen (rm Makefile)
Damit wir dann wieder ein Makefile haben linken wir noch das orginal file mit dem Makefile "ln -s Makefile.orginal Makefile"

Daraufhin wird noch das .config angepasst z.b.:
grep -in vfat .config
vim +722 .config
CONFIG_VFAT_FS=m

PS: wenn man sich das Makefile irgendwo hin kopiert (z.b.: temp) und die Änderung im Makefile danach wieder rückgängig macht kann man sich das ganze mit dem kopieren und linken sparen ;)

MfG

Thomas Mitzkat
03.10.03, 14:18
du kannst auch in das verzeichnis des moduls wechseln und dort make ausführen, dürfte das selbe ergebnis sein.

Basti_litho
03.10.03, 14:22
tja - sollte man erst mal ausprobieren bevor man schreibt ;)


cd /usr/src/linux/fs/vfat
make
Makefile:17: /Rules.make: Datei oder Verzeichnis nicht gefunden
make: *** Keine Regel, um »/Rules.make« zu erstellen. Schluss.


MfG

Thomas Mitzkat
03.10.03, 14:24
make dep usw. ist durchgelaufen?

Basti_litho
03.10.03, 14:31
nö :D


/usr/src/linux/fs/vfat # make dep
Makefile:17: /Rules.make: Datei oder Verzeichnis nicht gefunden
make: *** Keine Regel, um »/Rules.make« zu erstellen. Schluss.
/usr/src/linux/fs/vfat


und es funktioniert auch nicht wenn man "Rules.make" hier hineinkopiert usw. - glaub mir ich hab einige sachen versucht (wir hatten hier auch mal ein Thread dazu - mit der enlösung "gcc -........ vfat.c" war aber irgendwie nicht gut zu merken ;) ).

Thomas Mitzkat
03.10.03, 14:34
nee, ich meinte ausführen von "make dep" in "/usr/src/linux"

Basti_litho
03.10.03, 14:38
Da du anscheinend nicht die möglichkeit hast es grade selber auszuprobieren ;) hab ichs nochmal versucht - ergebnis nein! die Datei "Rules.make" ist immer noch nicht im vfat verzeichnis. Gibts immer noch nur im "/usr/src/linux".

PS: ich glaube, wenns eine einfachere und elgantere möglichkeit gegeben hätte - würde der Schreiber der "Kernel Howto" diese verwenden.

Thomas Mitzkat
03.10.03, 14:56
auf jeden fall geht ein "make modules" und dann kopiert man das eine modul nach /lib...., das andere probiere ich gerade aus - kriegst 80 gummipunkte, wenn ich unrecht habe - bei 100 punkten gibts einen smiley.

Thomas Mitzkat
03.10.03, 14:59
80 gummipunkte auf dein konto

Basti_litho
03.10.03, 15:24
danke für die 80 gummipunkte :D

naja, das ein make modules funktioniert ist ja verständlich ;)
aber das kann ne ganze weile (hängt ja vom rechner ab - man stelle sich einen 100MHz vor :D ) - der sinn ist ja das "vergessene" modul in max 5 min. zu benutzen (der Tipp heißt ja auch "ein einzelnes Modul kompilieren" ;) ).
Oder versteh ich dich da jetzt falsch?

zwerg
03.10.03, 18:41
Wenn du deine Config nicht veränderst baut der doch nur die neuen Modules.. oder? War bei mir jedenfalls bis jetz immer so :)

zwerg

Basti_litho
03.10.03, 18:57
hää??

Config nicht verändern? neues modul wird gemacht?? versteh nur Bahnhof.
Wenn du damit meinst, kein "make clean" auszuführen und beim "make xconfig" bzw. "make menuconfig" das neue modul auszuwählen und ein make abzugeben - dann gebe ich dir recht - aber in der Regel machen viele ein "make clean" bevor sie irgendwas dort machen, was ja auch durchaus sinnvoll ist (ist jetzt aber nicht das Thema).