@Slinky

Как исправить ошибку при сборке DAHDI?

Здраствуйте!
Необходимо установить драйвера на оборудование openvox D130E, нужно собрать и установить именно из этих исходников, просто dahdi не поддерживает нужную плату.

При установке на CentOS 8, ядро 5.13.13 возникает следующая ошибка:
make all
[root@localhost dahdi-linux-complete-3.1.0+3.1.0]# make all
.
.
.
CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.o
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c: В функции «create_param_proc»:
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:1235:40: ошибка: в передаче аргумента 4 «proc_create_data»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
     proc_create_data(name, 0444, base, &proc_param_fops, data);
                                        ^~~~~~~~~~~~~~~~
In file included from /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:33:
./include/linux/proc_fs.h:105:31: замечание: ожидался тип «const struct proc_ops *», но аргумент имеет тип «struct file_operations *»
 extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
                               ^~~~~~~~~~~~~~~~
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c: В функции «create_param_off_proc»:
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:1321:40: ошибка: в передаче аргумента 4 «proc_create_data»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
     proc_create_data(name, 0644, base, &proc_param_off_fops, data);
                                        ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:33:
./include/linux/proc_fs.h:105:31: замечание: ожидался тип «const struct proc_ops *», но аргумент имеет тип «struct file_operations *»
 extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
                               ^~~~~~~~~~~~~~~~
cc1: некоторые предупреждения считаются ошибками
make[4]: *** [scripts/Makefile.build:273: /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.o] Ошибка 1
make[3]: *** [scripts/Makefile.build:516: /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx] Ошибка 2
make[2]: *** [Makefile:1862: /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi] Ошибка 2
make[2]: выход из каталога «/usr/src/linux-5.13.13»
make[1]: *** [Makefile:74: modules] Ошибка 2
make[1]: выход из каталога «/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux»
make: *** [Makefile:9: all] Ошибка 2

Пробовал на ядре 4.18.0-305.12.1.el8_4.x86_64
там даже до этого момента не доходит:
make all
[root@localhost dahdi-linux-complete-3.1.0+3.1.0]# make all
make -C linux all
make[1]: вход в каталог «/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux»
make -C drivers/dahdi/firmware firmware-loaders
make[2]: вход в каталог «/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/firmware»
make[2]: выход из каталога «/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/firmware»
make -C /lib/modules/4.18.0-305.12.1.el8_4.x86_64/build KBUILD_EXTMOD=/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi DAHDI_INCLUDE=/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m
make[2]: вход в каталог «/usr/src/kernels/4.18.0-305.12.1.el8_4.x86_64»
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/apilib/bt/octapi_bt0.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/apilib/largmath/octapi_largmath.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/apilib/llman/octapi_llman.o
  CC [M]  /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/oct612x-user.o
In file included from /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/oct612x-user.c:28:
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/include/dahdi/kernel.h:65:10: фатальная ошибка: linux/pci-aspm.h: Нет такого файла или каталога
 #include <linux/pci-aspm.h>
          ^~~~~~~~~~~~~~~~~~
компиляция прервана.
make[4]: *** [scripts/Makefile.build:316: /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x/oct612x-user.o] Ошибка 1
make[3]: *** [scripts/Makefile.build:556: /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/oct612x] Ошибка 2
make[2]: *** [Makefile:1563: _module_/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi] Ошибка 2
make[2]: выход из каталога «/usr/src/kernels/4.18.0-305.12.1.el8_4.x86_64»
make[1]: *** [Makefile:74: modules] Ошибка 2
make[1]: выход из каталога «/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux»
make: *** [Makefile:9: all] Ошибка 2


На Debian 11 ошибка, как и в первом случае.
В какую сторону копать? Перебирать версии ядра?
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
При установке на CentOS 8, ядро 5.13.13 возникает следующая ошибка:
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:1235:40: ошибка: в передаче аргумента 4 «proc_create_data»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
     proc_create_data(name, 0444, base, &proc_param_fops, data);
                                        ^~~~~~~~~~~~~~~~
/usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/drivers/dahdi/opvxa24xx/callerid.c:1321:40: ошибка: в передаче аргумента 4 «proc_create_data»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
     proc_create_data(name, 0644, base, &proc_param_off_fops, data);
                                        ^~~~~~~~~~~~~~~~~~~~


Ага, в ядре успели переделать интерфейс proc. Проще всего закомментировать вызовы proc_create_data в строках linux/drivers/dahdi/opvxa24xx/callerid.c:1235 и linux/drivers/dahdi/opvxa24xx/callerid.c:1321
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы