P
P
Petr2021-09-01 23:27:04
linux
Petr, 2021-09-01 23:27:04

How to fix an error when building DAHDI?

Hello!
You need to install drivers for the openvox D130E hardware, you need to build and install from these sources, it's just that dahdi does not support the required board.

When installing on CentOS 8, kernel 5.13.13, the following error occurs:

make all
[[email protected] 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

I tried on the kernel 4.18.0-305.12.1.el8_4.x86_64
it doesn’t even reach this point:
make all
[[email protected] 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


On Debian 11, the error is the same as in the first case.
In which direction to dig? Loop through kernel versions?

Answer the question

In order to leave comments, you need to log in

[[+comments_count]] answer(s)
J
jcmvbkbc, 2021-09-01
@jcmvbkbc

When installing on CentOS 8, kernel 5.13.13, the following error occurs:
/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);
                                        ^~~~~~~~~~~~~~~~~~~~


Yeah, they managed to remake the proc interface in the kernel. The easiest way is to comment out the calls to proc_create_data in the lines linux/drivers/dahdi/opvxa24xx/callerid.c:1235 and linux/drivers/dahdi/opvxa24xx/callerid.c:1321

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question