crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Zaca
  опции профиля:
сообщение 22.3.2012, 15:43
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 22.3.2012
Пользователь №: 3281

Спасибо сказали: 0 раз(а)




Репутация:   0  


Linux 2.6
QT Creator 2.4.1

При использовании Makefile
KERNEL=$(shell if [ "`uname -r | grep 2.6.`" = "" ]; then echo "2" ; else echo "2.6"; fi)
ifeq ($(KERNEL),2.6) #kernel 2.6
obj-m := driver_I.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
endif


получаю на выходе модуль driver_I.ko, который я могу вставлять в ядро.

Хотела для этих целей (линковать, компилировать) использовать IDE QT4

Создаю проект (простой проект нра языке С), собираю - на выходе стопицот ошибок.

Подскажите, что не так делаю? Спасибо.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 23.3.2012, 16:33
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


тут дело не в инклюдах. а в том, что модуль ядра должен собираться в каталоге /lib/modules/<версия ядра>/build. это должен быть линк на сорцы ядра (или хотя бы хэдеры). также в каталоге /lib/modules/<версия ядра>/ должен быть линк sources - также на сорцы ядра или хэдеры.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zaca
  опции профиля:
сообщение 26.3.2012, 10:35
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 22.3.2012
Пользователь №: 3281

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 23.3.2012, 16:33) *
тут дело не в инклюдах. а в том, что модуль ядра должен собираться в каталоге /lib/modules/<версия ядра>/build. это должен быть линк на сорцы ядра (или хотя бы хэдеры). также в каталоге /lib/modules/<версия ядра>/ должен быть линк sources - также на сорцы ядра или хэдеры.



Вроде все так и есть.

решила собрать ядро в каталоге /lib/modules/<версия ядра>/build

linux-awyp:/lib/modules/2.6.27.7-9-pae/build # make bzImage
make -C /usr/src/linux-2.6.27.7-9 O=/usr/src/linux-2.6.27.7-9-obj/i386/pae/. bzImage
Using /usr/src/linux-2.6.27.7-9 as source for kernel
GEN /usr/src/linux-2.6.27.7-9-obj/i386/pae/Makefile
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CC arch/x86/kernel/asm-offsets.s
In file included from /usr/src/linux-2.6.27.7-9/include/linux/gfp.h:4,
from /usr/src/linux-2.6.27.7-9/include/linux/kmod.h:22,
from /usr/src/linux-2.6.27.7-9/include/linux/module.h:13,
from /usr/src/linux-2.6.27.7-9/include/linux/crypto.h:21,
from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets_32.c:7,
from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets.c:2:
/usr/src/linux-2.6.27.7-9/include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined
In file included from /usr/src/linux-2.6.27.7-9/include/linux/gfp.h:4,
from /usr/src/linux-2.6.27.7-9/include/linux/kmod.h:22,
from /usr/src/linux-2.6.27.7-9/include/linux/module.h:13,
from /usr/src/linux-2.6.27.7-9/include/linux/crypto.h:21,
from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets_32.c:7,
from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets.c:2:
/usr/src/linux-2.6.27.7-9/include/linux/mmzone.h:221: error: ‘MAX_NR_ZONES’ undeclared here (not in a function)
make[3]: *** [arch/x86/kernel/asm-offsets.s] Error 1
make[2]: *** [prepare0] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2


завалила систему...(

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Zaca   Компиляции модуля ядра Linux   22.3.2012, 15:43
- - RazrFalcon   Каких ошибок   22.3.2012, 15:53
- - Iron Bug   не знаю насчёт Qt Creator'а, но когда при комп...   22.3.2012, 19:42
- - Zaca   ну естессно - первый десяток ненайденные инклюды и...   23.3.2012, 7:33
|- - maint   Цитата(Zaca @ 23.3.2012, 13:33) ну естесс...   23.3.2012, 7:57
- - Zaca   Это без INCLUDEPATH kmk.c:4:28: error: linux/aut...   23.3.2012, 13:12
- - maint   значит так, все эти хедеры находятся по пути путь_...   23.3.2012, 14:31
|- - Zaca   Цитата(maint @ 23.3.2012, 14:31) значит т...   23.3.2012, 15:02
|- - maint   Цитата(Zaca @ 23.3.2012, 21:02) Цитата(ma...   23.3.2012, 15:15
- - Iron Bug   тут дело не в инклюдах. а в том, что модуль ядра д...   23.3.2012, 16:33
|- - Zaca   Цитата(Iron Bug @ 23.3.2012, 16:33) тут д...   23.3.2012, 19:39
|- - Zaca   Цитата(Iron Bug @ 23.3.2012, 16:33) тут д...   26.3.2012, 10:35
- - Zaca   Что, больше нечего подсказать по этой теме?   27.3.2012, 7:52
|- - maint   Цитата(Zaca @ 27.3.2012, 13:52) Что, боль...   27.3.2012, 8:10
- - Zaca   Беру популярный пример из инета: "Сам код...   28.3.2012, 14:53
- - Iron Bug   конечно, вряд ли кто-то собирает модули ядра таким...   28.3.2012, 21:38
- - Zaca   Спасибо за помощь. Наверно действительно надо дел...   29.3.2012, 9:22
|- - Iron Bug   Цитата(Zaca @ 29.3.2012, 12:22) Наверно д...   29.3.2012, 10:57
- - kuzulis   Я все планирую создать плагин для QtCreator для сб...   29.3.2012, 20:11


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 17.6.2025, 0:58