2012-04-02 11 views
9

Sono molto nuovo a questa cosa del kernel. Quello che voglio fare è aggiungere una nuova chiamata di sistema al kernel. Stavo seguendo questa linea guida: http://hekimian-williams.com/?p=20.Aggiunta di una nuova chiamata di sistema nel kernel Linux 3.3

Il problema è utilizzato per il file syscall_table_32.S sotto arch/x86/kernel, ma non riesco a trovare il file per i sistemi x86 nella versione 3.3 del kernel. Devo ancora modificare il file e aggiungere un'altra riga per la chiamata di sistema appena aggiunta? O devo fare qualcos'altro per far sapere al kernel della mia nuova chiamata di sistema? Qualsiasi aiuto sarà apprezzato. Grazie.

risposta

7

Come aggiungere un nuovo kernel API di Linux in versione 3.3? - per 64 bit OS

  • ottenere i codici del kernel da www.kernel.org.

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

  • Upzip con comando 'tar xvfj XXX”per una cartella Per esempio:/root/kernel tar xvfj linux-3.3.1.tar.bz2

  • Modificare il file “/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl” Aggiungi nuova linea

312 64 husky1 sys_husky1

  • file “/root/kernel/linux-3.3.1/include/linux/syscalls.h” Eidt Aggiungi nuova dichiarazione di funzione

asmlinkage lungo sys_husky1 (int fd);

prima della riga “#endif”

  • aggiungere un nuovo file C sotto “/root/kernel/linux-3.3.1/arch/x86/kernel” (sto usando CPU x86) esempio:

  • Modifica “/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile” aggiungere una nuova riga “obj-y + = husky.o”

  • goto /root/kernel/linux-3.3.1 cartella ed esegui il comando " make -j8 "

Problemi correlati