This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BEAGLE-3P-BBONE-AI: Updated PRU and kernel module build support?

Part Number: BEAGLE-3P-BBONE-AI

Hi all,

I know the TI SDK documentation is being updated, it refers to the "PRU Hands on Labs" and I assume will later be integrated with this properly later on, but I'm mentioning a few issues here to help the process.

https://software-dl.ti.com/processor-sdk-linux/esd/docs/06_03_00_106/linux/Foundational_Components_PRU-ICSS_PRU_ICSSG.html

I've been attempting lab 5 of the "PRU Hands on Labs" and am having issues loading the kernel module.  It complains about missing symbol _dev_err, looking over the source, it uses /includ/linux/device.h which has the _dev_err function, and is a very normal, fundamental kernel function.  So, this not being an exported symbol from another module leads me to believe that its a more simple issue, likely due to kernel version issues.

I've never built kernel modules before, so its likely a simple issue.

The SDK has kernel version linux-4.19.94 (from looking at the top level Makefile) and the BeagleBone AI has version "Linux beaglebone 4.14.108-ti-r131 #1buster SMP PREEMPT Tue Mar 24 19:18:36 UTC 2020 armv7l GNU/Linux" from the running system.

https://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs

The instructions were made for the BeagleBone Black (am335x) and things such as the target config file had to be changed to the one for the AI (am572x). From tisdk_am335x-evm_defconfig to 

tisdk_am57xx-evm_defconfig which I happened to find in a separate folder after a lot of looking around.  It would have been a lot better for the instructions to tell one where the file was located so they may search for the version for their architecture.

How can I troubleshoot these issues of building kernel modules?  How can i confirm if its only the kernel version miss-match, or if I have to do other steps for symbol, or memory address mapping etc.

I think the "depmod" command has something to do with that.

Thanks,

Fisher

  • Fisher,

    The training series on the wiki that you reference was done quite some time ago on the AM335x and has not been maintained so is not up to date with the latest Processor SDK and PRU-enabled devices. However, the concepts are valid and can be applied. Please refer to the appnote - https://www.ti.com/lit/pdf/sprace9 that outlines getting started with the PRUs under Linux.

    Best regards,

    Dave