LINUX.ORG.RU

Ошибка в установке драйвера CAN интерфейса


0

1

Установлено 2.6.23.17-82.yanux3

Появилась такая задача установить CAN интерфейс. CAN плата CP-602U-I, скачал драйвер с сайта производителя для ядра 2.6.Х. Но драйвер собираться упорно не хочет. По команде make выдает: [root@srv mxcan]# make

make[1]: Entering directory `/moxa/mxcan/driver'

make -C /lib/modules/2.6.23.17-82.yanux3/build M=/moxa/mxcan/driver clean TOPDIR=/moxa/mxcan/driver

make[2]: Entering directory `/usr/src/kernels/2.6.23.17-82.yanux3-i686' CLEAN /moxa/mxcan/driver/.tmp_versions

make[2]: Leaving directory `/usr/src/kernels/2.6.23.17-82.yanux3-i686'

make -C /lib/modules/2.6.23.17-82.yanux3/build M=/moxa/mxcan/driver modules TOPDIR=/moxa/mxcan/driver

make[2]: Entering directory `/usr/src/kernels/2.6.23.17-82.yanux3-i686' CC [M] /moxa/mxcan/driver/mxdev.o /moxa/mxcan/driver/mxdev.c:749: предупреждение: декларация ‘struct net’ внутри списка параметров /moxa/mxcan/driver/mxdev.c:749: предупреждение: область действия типа - только данная декларация или определение, что может не соответствовать вашим намерениям /moxa/mxcan/driver/mxdev.c:759: предупреждение: initialization from incompatible pointer type LD [M] /moxa/mxcan/driver/mxcan-dev.o CC [M] /moxa/mxcan/driver/mxsja1000.o /moxa/mxcan/driver/mxsja1000.c:295: предупреждение: ‘sja1000_start_xmit’ defined but not used /moxa/mxcan/driver/mxsja1000.c:558: предупреждение: ‘sja1000_open’ defined but not used /moxa/mxcan/driver/mxsja1000.c:590: предупреждение: ‘sja1000_close’ defined but not used CC [M] /moxa/mxcan/driver/mxcandrv.o /moxa/mxcan/driver/mxcandrv.c:100: предупреждение: в декларации ‘DEFINE_PCI_DEVICE_TABLE’ по умолчанию установлен тип ‘int’

/moxa/mxcan/driver/mxcandrv.c:100: предупреждение: в декларации функции указаны имена параметров без типов /moxa/mxcan/driver/mxcandrv.c:100: ошибка: function ‘DEFINE_PCI_DEVICE_TABLE’ is initialized like a variable

/moxa/mxcan/driver/mxcandrv.c:102: предупреждение: фигурные скобки вокруг скалярного инициализатора /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’)

/moxa/mxcan/driver/mxcandrv.c:102: ошибка: неверный инициализатор /moxa/mxcan/driver/mxcandrv.c:102: ошибка: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:102: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: фигурные скобки вокруг скалярного инициализатора /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: ошибка: неверный инициализатор /moxa/mxcan/driver/mxcandrv.c:104: ошибка: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:104: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: фигурные скобки вокруг скалярного инициализатора /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: ошибка: неверный инициализатор /moxa/mxcan/driver/mxcandrv.c:106: ошибка: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: избыточные элементы в инициализаторе скаляра /moxa/mxcan/driver/mxcandrv.c:106: предупреждение: (где-то рядом с инициализацией для ‘DEFINE_PCI_DEVICE_TABLE’) /moxa/mxcan/driver/mxcandrv.c:288: ошибка: ‘moxa_pci_tbl’ undeclared here (not in a function) make[3]: *** [/moxa/mxcan/driver/mxcandrv.o] Ошибка 1 make[2]: *** [_module_/moxa/mxcan/driver] Ошибка 2 make[2]: Leaving directory `/usr/src/kernels/2.6.23.17-82.yanux3-i686' make[1]: *** [modules] Ошибка 2 make[1]: Leaving directory `/moxa/mxcan/driver' make: *** [mxcan] Ошибка 2 [root@srv mxcan]#

Люди добрые, подскажите пожалуйста, что поправить? С линуксом не общался ОЧЕНЬ давно...

Начни с нормального форматирования.

/moxa/mxcan/driver

Это где ты компилируешь драйвер?

UVV ★★★★★
()
Ответ на: комментарий от UVV

да, именно - это где компилируется драйвер

Garikomus
() автор топика

Ну ты прямо как с Луны свалился! У них же "дрова" говеные, от силы на ведро 2.2. Сам пару раз долбался (сначала с 2.2 на 2.6, потом с 2.6 на 3.0), а программист наш сказал, чтобы я не трахался с этим УГ и поставил что-то вроде CANopen. Взлетело на ура.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Garikomus

Если после include'ов в mxcandrv.c добавить

#ifndef __devinitdata
#define __devinitdata __initdata
#endif

#ifndef __devinit
#define __devinit __init
#endif

то оно компилится, но insmod не работает. В общем, надо читать, что там в новых ядрах с этими делами наделали.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Нашел!

Для современных ядер надо вот так сделать:

#ifndef __devinitdata
#define __devinitdata
#endif

#ifndef __devinit
#define __devinit
#endif
Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Garikomus

В репозитории твоего дистрибутива.

По предыдущему комменту, намёк ты не понял, я смотрю. В корень всякую фигню не пихают.

UVV ★★★★★
()
Ответ на: комментарий от Garikomus

Действительно не понял.

Все элементарно: 1) разворачиваем архив с мохомодулем куда-нибудь в /tmp, 2) не забываем, что должны быть установлены хотя бы заголовки текущего ядра (что-то вроде xxx-linux-headers), если они не установлены, это надо сделать. 3) в твоей версии ядра оно должно компиляться без проблем

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.