mcb30 / dw1000

DecaWave DW1000 Linux kernel driver
16 stars 8 forks source link

installing module failure. Unknown symbol #18

Closed denevs closed 2 years ago

denevs commented 2 years ago

Hello, I compiled a module with a 4.19.66 kernel for Raspi. But installing doesn't launch the module. Manual loading the module to the system via sudo insmod gives error with symbol. In dmesg we can see couple of errors: [ 4199.416354] dw1000_mod: Unknown symbol ieee802154_free_hw (err -2) [ 4199.416460] dw1000_mod: Unknown symbol ieee802154_register_hw (err -2) [ 4199.416561] dw1000_mod: Unknown symbol ieee802154_alloc_hw (err -2) [ 4199.416610] dw1000_mod: Unknown symbol ieee802154_xmit_complete (err -2) [ 4199.416707] dw1000_mod: Unknown symbol ptp_clock_register (err -2) [ 4199.416777] dw1000_mod: Unknown symbol ieee802154_rx_irqsafe (err -2) [ 4199.416930] dw1000_mod: Unknown symbol ptp_clock_unregister (err -2) [ 4199.417149] dw1000_mod: Unknown symbol ieee802154_unregister_hw (err -2) [ 4387.522510] NET: Registered protocol family 36 [ 4408.398188] dw1000_mod: Unknown symbol ptp_clock_register (err -2) [ 4408.398389] dw1000_mod: Unknown symbol ptp_clock_unregister (err -2) [ 4412.838619] dw1000_mod: Unknown symbol ptp_clock_register (err -2) [ 4412.838825] dw1000_mod: Unknown symbol ptp_clock_unregister (err -2)

lsmod showing that 802154 module is loaded: ieee802154_socket 24576 0 mac802154 73728 0 ieee802154 81920 2 ieee802154_socket,mac802154

mcb30 commented 2 years ago

Try loading using modprobe instead, so that any dependencies will also be loaded.

denevs commented 2 years ago

Thank you! now the module is loaded well. But interface doesn't go up after "sudo make -C rpi/config install" and "sudo udevadm trigger" Conf files created in /etc/network . Seems I'm missing something but can't understand what.

UPD: we need to add a Device tree file and mark it to load on the boot. After this, I see spi device and interfaces automatically uped

mcb30 commented 2 years ago

Glad you found the solution. Yes, you will need a suitable device tree overlay to specify how the dw1000 is connected to the host. If you are using the dw1000 as part of a Raspberry Pi Hat board, then you can store the device tree overlay blob within the Hat EEPROM so that it gets picked up automatically (instead of using a device tree overlay file stored on the SD card).