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.

Linux/PROCESSOR-SDK-AM335X: Cross compiling a git repo

Part Number: PROCESSOR-SDK-AM335X

Tool/software: Linux

I am currently playing around with the AM-335X devkit and want to stream video content from my laptops webcam to be displayed on the evaluation board. FFMPEG seems to have all the functions I want/need: Encoding, Decoding and network streaming.

However, I need to get FFMPEG running on the target platform. I have cloned the git repo and can successfully build the downloaded files for my host system. So far, I was not able to cross compile FFMPEG, but I am able to compile a simple hello world program for the targets ARM architecture (verified architecture using readelf <file>).

Using make, FFMPEG is compiled for AMDx64, even if I have run the environment-setup script before (and am using the console the script was run in). Calling
[linux-devkit]:/usr/bin> arm-linux-gnueabihf-gcc ffmpeg.c -o ffmpeg_arm
results in an error on compiling the first file:

/tmp/ccIBQibC.s: Assembler messages:
/tmp/ccIBQibC.s:242: Error: Ungültige Anweisung »cmovg r3,r2«
/tmp/ccIBQibC.s:243: Error: Ungültige Anweisung »cmovg r1,r3«
/tmp/ccIBQibC.s:245: Error: Ungültige Anweisung »cmovl r0,r3«
/tmp/ccIBQibC.s:247: Error: Ungültige Anweisung »cmovg r3,r2«
(invalid insruction: »...«)

calling make, passing the compiler path variable with CC=... seems to be another option, so I tried:
[linux-devkit]:~/Downloads/ffmpeg-3.2.4> sudo make CC=/opt/ti/linuxSDK/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
some files were built before the process terminates:

CC    libavfilter/vf_mestimate.o
/tmp/ccsCzqRV.s: Assembler messages:
/tmp/ccsCzqRV.s:1529: Error: Ungültige Anweisung »cmovg ip,r5«
/tmp/ccsCzqRV.s:1530: Error: Ungültige Anweisung »cmovg r7,ip«
/tmp/ccsCzqRV.s:1532: Error: Ungültige Anweisung »cmovl r2,ip«

I guess there is something I miss or misunderstood (and hope what im trying is not impossible).
If you guys have any hints/ideas on what might be going wrong or questions/ressources that might bring missing information to my attention id be very happy!

>>>> EDIT <<<<
sudo make CC=/opt/ti/linuxSDK/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
without running the environment-setup beforehand results in a different error:

CC    libavdevice/v4l2enc.o
CC    libavdevice/xcbgrab.o
libavdevice/xcbgrab.c:25:21: fatal error: xcb/xcb.h: No such file or directory
compilation terminated.
common.mak:60: die Regel für Ziel „libavdevice/xcbgrab.o“ scheiterte
make: *** [libavdevice/xcbgrab.o] Fehler 1

  • Hi,

    FFMPEG support is beyond the scope of this forum. The Sitara Processor SDK supports mutimedia use cases is supported only through the gstreamer pipeline. You can search for similar threads by typing "ffmpeg" in the search toolbar on the top of the forum page.