The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Открытие файла из модуля ядра, !*! XShadow, 24-Май-10, 11:05  [смотреть все]
Здравствуйте. Помогите пожалуйста в решении проблемы. Вот простейший пример:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fcntl.h>  
#include <linux/unistd.h>  

int init_module(void)
{
   int fd;

   fd = open("/dev/input/mice", 0);
   close(fd);

   printk("<1>Hello world 1.\n");
   return 0;
}

void cleanup_module(void)
{
printk(KERN_ALERT "Goodbye world 1.\n");
}

Makefile: obj-m += sip.o

Параметры сборки: make -C /usr/src/linux-headers-`uname -r` SUBDIRS=$PWD^C

Вот что выдает:
root@shad:/home/shad/li# make -C /usr/src/linux-headers-`uname -r` SUBDIRS=$PWD
make: Вход в каталог `/usr/src/linux-headers-2.6.32-21-generic'
CC [M] /home/shad/li/sip.o
/home/shad/li/sip.c: In function ‘init_module’:
/home/shad/li/sip.c:10: error: implicit declaration of function ‘open’
/home/shad/li/sip.c:11: error: implicit declaration of function ‘close’
make[1]: *** [/home/shad/li/sip.o] Ошибка 1
make: *** [_module_/home/shad/li] Ошибка 2
make: Выход из каталога `/usr/src/linux-headers-2.6.32-21-generic'

Почему не находит объявление функции open?

  • Открытие файла из модуля ядра, !*! svn, 21:26 , 24-Май-10 (1) +1
    >Почему не находит объявление функции open?

    Потому что нет этой функции в ядре. Фаловый ввод-вывод связан с виртуальной памятью, open не обходится без page fault и его обработчика.

    По этой же причине в ядре не может быть никакого open. Посмотри как читает файлы nfsd.


  • Открытие файла из модуля ядра, !*! ramol, 09:20 , 07-Июл-10 (2)
    Ну ти глянь реализацыю функции open. Она должна визывать ядерну функцию после переключения контекста с user space в в kernel space. Ну и еще компилер ругается потому что у тебя хедера не заинклюджени



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру