web-dev-qa-db-fra.com

syscall_table_32.S fichier non trouvé

Je souhaite ajouter un appel système à Linux, mais dans les données d'apprentissage, nous devons modifier le fichier linux/Arch/i386/kernel/entry.S ou Arch/x86/kernel/syscall_table_32.S. Je ne peux pas trouver les fichiers. J'ai regardé et n'ai pas pu trouver et je n'ai pas de dossier nommé i386. Aidez-moi, s'il vous plaît. est nécessaire.

3
Mostafa

Tout d’abord, vous avez besoin du code source du noyau Linux. Vous pouvez le télécharger sur kernel.org ou installer le paquetage _linux-source_ à partir d'Ubuntu. Dans ce dernier cas, certains correctifs d'Ubuntu seront appliqués.

Habituellement, les sources résident sous _/usr/src_. Si vous avez décompressé les fichiers ou installé le paquet, vous trouverez l’arborescence que vous avez mentionnée ci-dessus. Ainsi, la version la plus récente du noyau contient un fichier appelé entry_32.S et entry_64.S dans le sous-répertoire _Arch/x86/kernel_. La partie après Arch porte le nom _x86_ et non _i386_ comme vous l'avez mentionné. Si vous souhaitez utiliser _i386_, vous devez choisir une version du noyau inférieure à 3.7, car _i386_ a été supprimé de la version 3.7.

2
qbi

le fichier entry_64.S n'est pas le fichier équivalent que vous devez modifier ... en fonction de ce que vous souhaitez faire. Si vous souhaitez ajouter un appel système personnalisé à votre noyau, modifiez le fichier / Arch/x86/syscalls/syscall_64.tbl.

0
jazzyfresh