How to package game to Nvidia Jetson tx2?


I follow the link cross compiling linux: Linux Development Requirements for Unreal Engine | Unreal Engine 5.1 Documentation , and build unreal engine. I have already edit TargetArchitecture in defaultEngine.ini and package the game. When i run the package on Nvidia Jetson TX2 (ubuntu 16.06 LTS), the game crashes. I attach the errors below. Looking forward to your help.
Has anyone ever use UE4 to build game for Nvidia Jetson TX2?link text

You packaged the game correcly and it looks like the engine starts successfully. The crash that happens later might have many reasons, including the game code (does the project run on x86_64 Linux normally?). Try passing -nosound in case it is related to audio as there seem to be a problem initializing it.

Ultimately, try running under gdb to produce a better callstack (use “bt” command after you crash) and see if it gives any clues. Feel free to post it here.

Thanks for your response RCL.

I tried to just put a cube in a blank project (nothing else, no camera, no sound object)and package to Aarc64 linux. I still get the same error. I will attach the log below. BTW, how to create no sound project?

link text

I managed to build the unreal package for Nvidia Jetson TX2 and run it using the -nosound flag which solves the error shown in the log however the build still terminates with signal 11.

JustinArcade have you had any luck with this problem?

Could you please run under gdb and get the callstack?

I suspect that the 4.20 may have ARM64 Linux PhysX build broken. If the callstack is pointing at some PhysX function crashing, please try building PhysX library in Debug and substituting it in the build.

You need to prepend “gdb --args” and not just “gdb”, otherwise gdb will try to parse the rest of the command line arguments as its own. Once it will load, just typing “run” will execute it with the arguments given. Once you hit the crash, use “bt”.

You don’t need to rebuild the editor. Please run this:

Engine\Build\BatchFiles\RunUAT.bat BuildPhysX -SkipCreateChangelist -SkipSubmit -TargetPlatforms=Linux-aarch64-unknown-linux-gnueabi -TargetConfigs=debug

after that edit GetPhysXLibraryMode() function in Engine\Source\ThirdParty\PhysX3\PhysX.Build.cs and make it always

return PhysXLibraryMode.Debug;

after that rebuild the ARM64 binary (repackage). Note that the Build.cs change will affect building binaries for Windows too, so you may want to undo it later (or guard so it applies to cases when Target.Architecture.StartsWith(“aarch64”) is true).

Thanks for the quick reply, I did try running it with the gdb but couldn’t get it to work. I added gdb to the .sh script that runs the build but it fails as it tries to load the build folder as debug symbols and fails.

Here’s the edited bash script: #!/bin/shUE4_TRUE_SCRIPT_NAME=$(echo \"$0\" | xargs readlink -f)UE4_PROJECT_ -
Here’s the terminal output that I get when I try to run it: Reading symbols from /home/nvidia/Desktop/Unreal-JetsonTest/LinuxNoEditor/LinuxN -

#0 0x0000000000000000 in ?? ()#1 0x0000000005125fc4 in FPhysScene::InitPhysS - I think you were right. It looks like it’s pointing to PhysX. What would be the best solution for this problem? I’m still testing which engine to use so it’s not a problem to use an older version of Unreal if you believe that will solve the issue.

please try building PhysX library in Debug and substituting it in the build.

How should I do that? Should I set it up when building the project or the whole editor from source?

Thanks again for your help!

I get this error when trying to build PhysX Running AutomationTool...Parsing command line: BuildPhysX -SkipCreateChangelis -

Try adding -nop4 to the commandline (or, if that still doesn’t work, downloading and installing the Perforce - now Helix - client).

I tried adding both the -nop4 and installing the Perforce client but none worked. I followed the install guide and commented [RequireP4] in BuildPhysX.Automation.cs to ignore perforce - this worked but then the build failed when searching for MsDev14Exe and MsBuildExe in the same file. I commented out the two lines (820 and 821) which seem to have built PhysX correctly. I changed the PhysX.Build.cs according to your instructions and made the GetPhysXLibraryMode() function to always return PhysXLibraryMode.Debug. I opened the editor and the empty project I tried packaging before and repacked it for Linux distribution. Tried running it on the device and got the same error.

Is it possible that Unreal 4.19 or some other version will work on the Jetson TX2?

PhysX build output: λ Engine\Build\BatchFiles\RunUAT.bat BuildPhysX -SkipCreateChangelist -SkipSubmi -
Unreal output log: LogPlatformFile: Not using cached read wrapperLogTaskGraph: Started task graph -

Seems I was wrong - the build wouldn’t run because I used mobile template when creating the empty project. I created another project now using the Desktop/Console template, packaged it using the debug PhysX libs and it works.

Thank you so much for your help

Just rebuild PhysX locally (all configurations). Unfortunately 4.20 shipped with broken PhysX Linux ARM binary libs, but since you have the sources you can run

Engine\Build\BatchFiles\RunUAT.bat BuildPhysX -NoP4 -SkipCreateChangelist -SkipSubmit -TargetPlatforms=Linux-aarch64-unknown-linux-gnueabi

Hello ,

I had the same crash on Jetson TX2 with 4.20 build … using 4.19 is working fine out of the box.


can you send me the LMMathSSE.h library as it produces error when building unreal lightmass as __m128 is only used for 32 bit processors not supported for aarch64