ошибка в загружаемом модуле ядра как make: ничего не поделаешь для всех?

Функции, которые вы пишете для предоставления интерфейсов procfs, — это просто код, который является частью исходного кода LKM.

http://linux.die.net/lkmpg/x769.html содержит простой пример с использованием procfs, воспроизведенного здесь:

Я скопировал код из приведенной выше ссылки. Вы найдете руководство по сборке модулей ядра по адресу http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html. Резюме этого:

1) Убедитесь, что у вас установлен исходный код ядра в /usr/src.

2) Создайте make-файл, который выглядит так:

obj-m = procfs2.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

3) собрать модуль с помощью команды make 4) загрузить модуль в память с помощью команды insmod procfs2.ko (сделайте это как пользователь root)

Я скопировал код и создал MAKEFILE, а позже, если я даю команду make из консоли, она отображается как: make: ничего не нужно делать для всех. может кто подскажет в чем может быть ошибка??


person user3458454    schedule 16.04.2014    source источник
comment
Может быть, он уже построен. Попробуйте сначала почистить.   -  person devnull    schedule 16.04.2014
comment
если я даю make clean, то он показывает make : для очистки ничего не нужно делать.   -  person user3458454    schedule 16.04.2014
comment
Что показывает ls -l "/lib/modules/$(uname -r)/build"?   -  person devnull    schedule 16.04.2014
comment
lrwxrwxrwx 1 root root 35 13 апреля 23:49 /lib/modules/3.2.48-rt69-2/build -> /usr/src/linux-source-3.2.48-rt69-2   -  person user3458454    schedule 16.04.2014
comment
@ user3458454 может сначала убедиться, что перед командой make вы даете TAB? потому что замена их пробелами приведет к неисправности Makefile.   -  person Jayesh Bhoi    schedule 16.04.2014
comment
после сделать ?? или все-таки: ??   -  person user3458454    schedule 16.04.2014
comment
@ user3458454 посмотри мой ответ.   -  person Jayesh Bhoi    schedule 16.04.2014


Ответы (1)


Вот пример Makefile для модуля ядра.

здесь важно отметить, что точки, показанные ниже, должны быть заменены TAB, замена их пробелами вызовет сбой в работе Makefile.

obj-m += hello.o

all:
.......make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
.......make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
person Jayesh Bhoi    schedule 16.04.2014
comment
не могли бы вы ответить на это: заголовок stackoverflow.com/questions/23101224/ - person user3458454; 16.04.2014
comment
пожалуйста, могу ли я получить ваш адрес электронной почты ?? Мне нужны некоторые предложения. - person user3458454; 16.04.2014
comment
Я получаю некоторые ошибки, когда запускаю команду make: ошибка: необъявленная ошибка proc_root: struct proc_dir_entry не имеет члена с именем «владелец» - person user3458454; 16.04.2014
comment
@ user3458454 посмотрите stackoverflow.com/questions/2531730/ - person Jayesh Bhoi; 16.04.2014
comment
чтобы выполнить функцию procfile_read от ядра к пользователю, я должен создать структуру файловых операций, используемую для определения обратных вызовов манипулирования файлами для нашего псевдофайла. но если я даю .read = procfile_read (я даю в структуре, тогда отображается ошибка, поскольку procfile_read здесь не объявлен) - person user3458454; 16.04.2014
comment
если я использую эту ссылку: pointer- Перегрузка.blogspot.in/2013/09/, если я хочу выполнить функцию procfile_read, как показано в приведенном выше коде, то как указать ее в структуре файловой операции? - person user3458454; 16.04.2014