Ich versuche, einfaches Kernelmodul (v3.6) in nasm zu schreiben, aber insmod sagt mir:
%Vor%Ich kompiliere meinen Code mit:
%Vor%und mein Modulcode:
%Vor%Bitte helfen Sie. Im Internet habe ich 1 Link mit dem gleichen Code für 2.4 gefunden, aber er funktioniert auch nicht Mein System - archlinux mit 3.6.8 Kernel
UPDATE: Im Nasm Forum finde ich Thread mit interessanter Lösung. Es ist Arbeit für mich, wenn mein Modul 0 zurückgibt und exit :) Aber wenn ich versuche, "extern printk" hinzuzufügen, sagt mir das insmod:
%Vor%Was mache ich falsch? Mein Code:
%Vor%Dieser Code funktioniert mit: nasm -f elf64 hello.asm -o hallo.o
aber wenn ich printk entkomme das funktioniert nicht!)
Was ich getan habe, war einen kleinen C-Wrapper zu schreiben, der die Standard-Modul-Makros verwendet und ihn mit dem Hauptmodul-Code verbindet, der in asm geschrieben ist. Verwenden Sie das normale Kernel-Build-System, um es zu erstellen.
module.c:
%Vor%main.asm:
%Vor%Makefile:
%Vor% Erstellen Sie mit dem Befehl: make -C <path_to_kernel_src> M=$PWD
Tags und Links assembly x86-64 linux-kernel kernel-module