The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"не компилится модуль на ядрах > 2.6.24"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"не компилится модуль на ядрах > 2.6.24"  
Сообщение от Lynx (??) on 16-Мрт-09, 18:52 
Hello.

есть модуль для специализированной железки для рассчетов.
этот модуль прекрасно собирается и работает на ядрах < 2.6.25
на ядрах >= 2.6.25 при компиляции получаем:

error: variable 'fops' has initializer but incomplete type
error: unknown field 'ioctl' specified in initializer
warning: excess elements in struct initializer
warning: (near initialization for 'fops')
error: unknown field 'mmap' specified in initializer
warning: excess elements in struct initializer
warning: (near initialization for 'fops')
error: unknown field 'open' specified in initializer
warning: excess elements in struct initializer
warning: (near initialization for 'fops')
error: unknown field 'release' specified in initializer
warning: excess elements in struct initializer
warning: (near initialization for 'fops')
error: unknown field 'nopage' specified in initializer
warning: initialization from incompatible pointer type
error: unknown field 'nopage' specified in initializer
warning: initialization from incompatible pointer type
In function 'modpci_init':
error: implicit declaration of function 'register_chrdev'
In function 'modpci_exit':
error: implicit declaration of function 'unregister_chrdev'
In function 'modpci_ioctl':
error: implicit declaration of function 'MINOR'
error: dereferencing pointer to incomplete type
warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result
warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result
warning: ignoring return value of 'copy_to_user', declared with attribute warn_unused_result
warning: ignoring return value of 'copy_to_user', declared with attribute warn_unused_result
warning: ignoring return value of 'copy_to_user', declared with attribute warn_unused_result
In function 'modpci_dmar_vma_nopage':
error: dereferencing pointer to incomplete type
In function 'modpci_dmaw_vma_nopage':
error: dereferencing pointer to incomplete type
In function 'modpci_mmap':
error: dereferencing pointer to incomplete type
In function 'n_modpci_exist':
warning: 'pci_find_device' is
deprecated (declared at include/linux/pci.h:514)
make[2]: *** [modpci.o] Error 1
make[1]: *** [modpci] Error 2
make: *** [default] Error 2

Что за нововведения произошли в более новых ядрах?
Куда смотреть и что починить?
От версии компилятора это не зависит.

Thanx.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "не компилится модуль на ядрах > 2.6.24"  
Сообщение от mikra on 16-Мрт-09, 20:11 
>этот модуль прекрасно собирается и работает на ядрах < 2.6.25
>на ядрах >= 2.6.25 при компиляции получаем:
>
>error: variable 'fops' has initializer but incomplete type
>error: unknown field 'ioctl' specified in initializer
>Что за нововведения произошли в более новых ядрах?
>Куда смотреть и что починить?

Ну смотри. Во второй же строке говорится о несовместимости структур. Значит в очередном ядре изменился програмный интерфейс взаимодействия с модулями.
1. Можно не ставить новые ядра и все будет работать.
2. Можно обратиться к разработчику модуля за патчем.
3. Можно разобраться как работает драйвер и переписать его под новое ядро.
4. Можно самому научиться кодить, разобраться в тысячах строк кода ядра линукс и написать патч, который будет позволять модулю работать. Это будет эквивалентно
"НОВОЕЯДРО"+"РАБОТА"="СТАРОЕЯДРО"
Получается первый вариант. Может лучше сразу исключить "НОВОЕЯДРО" и "РАБОТА" :)

Сдается мне последние два варианта не твои.
Если жизни без нового ядра нет, то лучше поставь железку на второй комп со старым ядром или пошамань с виртуальными машинами.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "не компилится модуль на ядрах > 2.6.24"  
Сообщение от Аноним (??) on 16-Мрт-09, 20:52 
Не работает из-за modpci, посмотри может каких нибудь опций нехватает в конфиге
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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