syscall_table_32.S arquivo não encontrado

3

Eu quero adicionar um systemcall ao Linux, mas nos dados de treinamento precisamos alterar o arquivo linux/arch/i386/kernel/entry.S ou arch/x86/kernel/syscall_table_32.S . Eu não consigo encontrar os arquivos. Eu olhei e não consegui encontrar e não tenho uma pasta chamada i386. por favor me ajude. é necessário.

    
por Mostafa 13.12.2012 / 11:59

2 respostas

2

Primeiro de tudo você precisa do código-fonte do kernel do Linux. Você pode baixá-lo em kernel.org ou instalar o pacote linux-source do Ubuntu. No último caso, você encontrará alguns patches do Ubuntu aplicados.

Normalmente, as fontes vivem abaixo de /usr/src . Se você tiver descompactado os arquivos ou instalado o pacote, você encontrará a árvore que você mencionou acima. Portanto, a versão mais recente do kernel tem um arquivo chamado entry_32.S e entry_64.S no subdiretório arch/x86/kernel . A parte depois de arch tem o nome x86 e não i386 como você mencionou. Se você quiser usar i386 você deve escolher uma versão do kernel abaixo de 3.7, porque i386 foi removido do 3.7 on.

    
por qbi 13.12.2012 / 12:18
0

o arquivo entry_64.S não é o arquivo equivalente que você precisa modificar ... dependendo do que você deseja fazer. Se você está no negócio de adicionar um syscall personalizado ao seu kernel, modifique o arquivo /arch/x86/syscalls/syscall_64.tbl .

    
por jazzyfresh 08.03.2013 / 10:01