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.
on How to Develop with RPMsg IPC — AM64x Academy (ti.com)
Under
could not build properly the second step
-----
Build the kernel module rpmsg_client_sample:
Set up the kernel config to build the rpmsg client sample. Use menuconfig to verify Kernel hacking > Sample kernel code > Build rpmsg client sample is M:
$ export PATH=<sdk path>/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PATH
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- distclean
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- tisdk_am64xx-evm_defconfig
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- menuconfig
Make the kernel and modules. Multithreading with X different threads (-jX) can speed up the make process:
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j8
-----
NOTE: I sourced the .../ti-processor-sdk-linux-rt-am64xx-evm-09.02.00.08/linux-devkit/environment-setup-aarcg64-oe-linux to get the environment variables setup.
1) Should the setting
CROSS_COMPILE=aarch64-none-linux-gnu-
instead should be
CROSS_COMPILE=aarch64-oe-linux
2) How does one do the blue highlighted instructions?
Hello Jim,
Apologies for the confusion, and thank you for pointing out this line! I'll make a note to address it in the next academy release.
Please follow the make instructions with the CROSS_COMPILE from this AM64x SDK page:
SDK 9.1 & SDK 9.2.0.8: https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/09_01_00_08/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#overview
SDK 9.2.1.9 (the "real" SDK 9.2 release): https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/09_02_01_09/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#users-guide
By the way, the SDK 9.2 Linux is finally released:
https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM64X
We are still working on the MCU+ SDK 9.2 - tentative timeline is within the next 2-3 weeks.
Regards,
Nick
Nick:
with regards to the instructions on SDK 9.2.1.9, I was also looking at the steps under 1.1.5. GCC ToolChain — Processor SDK AM64X Documentation
Do I need to:
- ensure bash not dash shell
- set the path on $CROSS_COMPILE_64
maybe run ./oe-layertool-setup.sh -f configs/processor-sdk/<oeconfig-file>
finally run make ARCH=arm64 CROSS_COMPILE="$CROSS_COMPILE_64" defconfig ti_rt.config
I am confused between rebuilding the whole image versus rebuilding the kernel
thanks
Jim
Hello Jim,
I actually filed a ticket a couple days ago to make the SDK 9.2 version of the Kernel user guide easier to follow (they dropped some helpful steps that were in previous SDK docs). I have marked this as important enough that we need to push an update to the SDK 9.2 docs (and not just address it in the SDK 10.0 docs), so hopefully it gets fixed soon.
In the meantime, here are the changes I asked them to make to the docs. I hope this is easier to follow:
=========
COMPILER
Before compiling the kernel or kernel modules, set the cross compiler to the toolchain packaged in the Processor SDK:
export CROSS_COMPILE_64=<sdk path>/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-
The current compiler supported for this release along with download location can be found in the release notes for the kernel release.
Note:
Optionally, one can use the arm compilers provided from developer.arm.com to build the Linux Kernel. Refer to the [Yocto-built SDK Toolchains] section for more information on the toolchain packaged in the Processor SDK (recommended), or the [ARM toolchains] section for more information on the arm compilers.
====
Regards,
Nick
Nick:
In looking at section 3.2.1.5.3 of https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/09_02_01_09/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#compiler
I am thinking to generate the
rpmsg_client_sample.ko (from the present AM64x Academy with your documented changes to date)
Would that make command be of the form
make ARCH=arm64 CROSS_COMPILE="$CROSS_COMPILE_64" board-support/ti-linux-kernel-6.1.80+gitAUTOINV+3c08dbfd7b-ti-rt/samples/rpmsg/rpmsg_client_sample
??
(I know the board-support folder is just beneath the installation path for 09.02.01.09 - so the last argument would be the fully qualified path?)
thanks
Jim
Hello Jim,
Good question - let me know what you figure out. In the past I just built all modules as documented on that page, but I'm sure it's a lot faster to just compile a specific kernel module.
Regards,
Nick