cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX Makefile doesn't seem to work in Linux?

TheCarterII
Associate II

I am trying to use the generated GCC make file (For target) in a Linux. I confirmed the project works when using it on windows through the TouchGFX.exe environment but it isn't wanting to cooperate in Linux?

I am getting errors where if I run it as a regular user it doesn't have permissions to remove files but if I try to run it as a super user it doesn't recognize arm-none-eabi-gcc or g++.

Just wanted to check if it is expected to work as is? If so, I know that I am doing something wrong and can look down that avenue.

Thanks,

Carter

6 REPLIES 6
YJMoon
Associate III

I have a similar problem.

There is nothing wrong with building with cubeMX 5.3.

However, building with cubeMX 5.4 and TouchGFX 4.12.3 caused the following problems.

0690X00000AqkXeQAJ.png

Ozone
Lead

> ... but if I try to run it as a super user it doesn't recognize arm-none-eabi-gcc or g++.

Obviously, the toolchain installation did not add the paths to the $PATH variable for root.

I would avoid doing day-to-day work as root.

> I am getting errors where if I run it as a regular user it doesn't have permissions to remove files ...

You (your user) must have appropriate rights for the folder/subfolders you work in. If you have created a folder as root, you need to explicitly grant access to your "normal" user.

Most current Linux file manager applications are tailored for the dumbed-down Windows user, and show no access rights by default. I suggest to turn this property on, or use the chown command. Changing access rights for root-owned files require root privileges.

TheCarterII
Associate II

@Ozone​ T

he path was set correctly. It would work if I invoked it without sudo i.e. "arm-none-eabi-gcc" worked but "sudo arm-none-eabi-gcc" did not. I had to edit my sudoer file via: "sudo visudo".

Ok, I wondered if that was the case. Running something like "chown -r myuser touchgfxfile/" where -r is the recursive command. This should do the trick correct?

So you say "linux file manager.. show no access rights by default .. turn this property on" Did you mean turn this property off? So I have access rights by default?

Thanks in advance.

Martin KJELDSEN
Chief III

Can you please post your error log? Generally it would be helpful to post as much information as you can. Which version of TouchGFX are you using? We haven't distributed a Linux version of 4.12.3 yet, to my knowledge.

Since we do not provide a complete development environment for Linux like we do on windows you also have to install some things manually for code generation to work (Ruby, among other things). We don't do a lot of development on Linux since you can't use the designer there.

Let me know!

/Martin

> he path was set correctly. It would work if I invoked it without sudo i.e. "arm-none-eabi-gcc" worked but "sudo arm-none-eabi-gcc" did not.

The shell environment, including the $PATH variable, is usually set individually for each user.

> So you say "linux file manager.. show no access rights by default .. turn this property on" Did you mean turn this property off? So I have access rights by default?

No. I meant GUI-based applications (like Nemo), that present the file system in "File Explorer" like manner. Those do usually not show access rights by default.

They can be configured to show them, though.

I never worked with touchgfx.

If the lib (the source files, I suppose) are not copied on a per-project basis, but compiled in place, you might need to check the library path, too.

Creating *.o and other supplementary files happens in place, and need write access for your user, too.

And as Martin Kjeldsen asked, an error log or list of actual errors would be helpful.

TheCarterII
Associate II

Thanks all for the help.

I managed to get it to make without errors. I don't have my board with me but I will have to test if the .elf file is correct. I imagine it should be good to go but more testing is required.

@Martin KJELDSEN​  Did you guys have a Special Linux Version for 4.10? (Not the Designer)

But this was with 4.12.3. If I find it works correctly I will go back through and double check for verification.

This was on CentOS 8. I don't believe it will work on centOS 7 without some work as it is missing some necessary GLIBCXX files and I found projects where this was an issue with a long thread and no solution.

For anyone that stumbles upon this the steps I went through include:

1) Download and install arm-none-eabi package from Arm's website.

2) extract/unzip/etc in whatever directory and add it to your path. variable

3) Make imageconvert.out/textconvert.out executables with chmod +X

4) Apply delete permissions to the working folder via chown -R USERNAME ProjectFolder

5) Should work

I did have to move some copies of .h files around but I need to do more testing on whether this was necessary.