2012-04-02 2 views
9

Ich bin sehr neu in diesem Kernel-Ding. Ich möchte nur einen neuen Systemaufruf zum Kernel hinzufügen. Ich folgte dieser Richtlinie: http://hekimian-williams.com/?p=20.Hinzufügen eines neuen Systemaufrufs in Linux Kernel 3.3

Das Problem ist dort syscall_table_32.S Datei unter arch/x86/kernel verwendet, aber ich kann die Datei für x86-Systeme in der Kernel-Version 3.3 nicht finden. Muss ich die Datei noch bearbeiten und eine weitere Zeile für den neu hinzugefügten Systemaufruf anhängen? Oder muss ich etwas anderes tun, um den Kernel über meinen neuen Systemaufruf zu informieren? Jede Hilfe wird geschätzt. Vielen Dank.

Antwort

7

Wie einen neuen Linux-Kernel-API in Version 3.3 hinzufügen? - für 64 Bits OS

  • erhalten Kernel-Codes von www.kernel.org.

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

  • Upzip es mit dem Befehl ‚tar xvfj XXX“ in einen Ordner Zum Beispiel:/root/kernel tar xvfj Linux-3.3.1.tar.bz2

  • Datei bearbeiten „/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl“ neue Zeile hinzufügen

312 64 husky1 sys_husky1

  • Eidt „/root/kernel/linux-3.3.1/include/linux/syscalls.h“ Datei neue Funktion Erklärung

asmlinkage lange sys_husky1 (int fd);

vor der Zeile „#endif“

  • eine neue C-Datei unter „/root/kernel/linux-3.3.1/arch/x86/kernel“ Add (I x86 CPU verwenden) Beispiel:

  • Edit „/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile“ Fügen Sie eine neue Zeile „obj-y + = husky.o“

  • goto /root/kernel/linux-3.3.1 Ordner und run-Befehl " make -j8 "