x86_64 Linux Kernel Modul in Assembler schreiben

8

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!)

    
Alexander Lavrukov 02.12.2012, 10:28
quelle

1 Antwort

13

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

    
Jester 02.12.2012, 14:48
quelle