IMX6ULL gcc gdb

Hello all,

due to other work processes I like to work with Visual Studio via remote compiling.
Therefore i need gcc and gdb on my colibri.

I tried the following:
opkg update
opkg install gdb
opkg install gcc

I can see via opkg list-installed that gcc an gdb are installed.
It says:
gcc - 7.2.0-r0.0
gdb - 8.0-r0.0
When i try gdb from the console it seems to work fine, but when i try to run gcc from the console the machine says:
-sh: gcc: not found

When i search for gcc on the system it didnt find anything. So i think something went wrong with the installation.

I have the following OS-Version
Static hostname: colibri-imx6ull
Icon name: computer
Machine ID: b9dbfface73c4e1d935c090f9d157525
Boot ID: 6d21af42d3d84fa8a9a3e6faa447c379
Operating System: The Ångström Distribution v2017.12
Kernel: Linux 4.9.220-2.8.7+g57229263ff65
Architecture: arm

Does anybody has a clue what i can do?

thanks in advance

Hi @Wilhelm,

Thanks for joining the community :rocket: ! Please feel free to roam around.

Before we try to propose you some solutions, we would like to understand if there is a reason for you to use the Angstrom Distribution as it’s already a bit older and we would not recommend it for newer projects. Please check this page: Embedded Linux Release Matrix | Toradex Developer Center to see our newest releases.

Best regards,

Hey gclaudio,

thank you for the fast response. I used Ängström because it loaded gcc and gdb via opkg. The recommended image does not load anything with opkg.
I changed the os to the following:
ID=tdx-xwayland
NAME=“TDX Wayland with XWayland”
VERSION=“5.7.0+build.20 (dunfell)”
VERSION_ID=5.7.0-build.20
PRETTY_NAME=“TDX Wayland with XWayland 5.7.0+build.20 (dunfell)”
DISTRO_CODENAME=“dunfell”

I get the following messages when I try to install via opkg.

root@colibri-imx6ull-07174691:~# opkg update (<- i see no process and no messages when i start this command)
root@colibri-imx6ull-07174691:~# opkg install gcc
Collected errors:

  • opkg_prepare_url_for_install: Couldn’t find anything to satisfy ‘gcc’.
    root@colibri-imx6ull-07174691:~# opkg install gdb
    Collected errors:
  • opkg_prepare_url_for_install: Couldn’t find anything to satisfy ‘gdb’.

Best regards

Hi @Wilhelm,

Thanks for the update. Usually, the ideal process of adding packages to an embedded Linux image is to add them through Yocto and not to source them every time through a package manager such as opkg or apt-get. You may want to have a look here:

Is there any specific reason behind your goal to use Remote Compiling from Visual Studio? Using a Cross Compiler on your host machine wouldn’t fit your goal?

Also, which exact Colibri iMX6ULL Version do you have?

Best regards,

Hello gclaudio,
thank you very much for the support. I am developing a controller and so far I was used to work with a Linux that can be customized by sourcing packages. For me this is much easier than putting together a complete operating system myself. I didn’t factor in the time I would have to put into configuring it.

The advantage of remote debugging is that you can start right away no matter what the host pc looks like and you don’t have to configure the SDK.

I develop programs exclusively in c and the embedded system has enough power for debugging.

I am using the Colibri iMX6ULL 512MB IT.

In the meantime I managed to get the gcc compiler working.

Best regards,
Wilhelm

Hi @Wilhelm, how are you?

Thanks for the update on your needs.

I agree this can be easier especially if you have just a few modules but once the production escalates then you’d profit from having all of them already sourced on the image.

This is great to hear! If you want to share how you’ve done this so that other community members could profit from your tests this would be wonderful :smiley:

Best regards,

Hey @gclaudino.tx ,

i went back to angstrom because opkg loaded packages here at all. I then had to load more packages (gcc-symlinks, binutils, build-essential)so that gcc ran.

With it then the problems occurred, which are described under the following link.
Link

I was then shocked to find out that the solution to the problem at the end of the topic was to create a new image. But I had no desire to do so… :wink:

So i took another linux distro for an arm mcu and copied the missing gcc files from it
to /usr/lib/gcc/arm-angstrom-linux-gnueabi/7.2.0/

Missing files:
cc1
cc1plus
collect2
crtbegin.o
crtbeginS.o
crtbeginT.o
crtend.o
crtendS.o
crtfastmath.o
Info.txt
libasan.a
libasan.so
libasan_preinit.o
libatomic.a
libatomic.so
libbacktrace.a
libcc1.so
libgcc.a
libgcc_eh.a
libgcc_s.so
libgcc_s.so.1
libgcov.a
libgomp.a
libgomp.so
libgomp.spec
liblto_plugin.so
liblto_plugin.so.0
liblto_plugin.so.0.0.0
libsanitizer.spec
libssp_nonshared.a
libstdc++.a
libstdc++.so
libstdc++fs.a
libsupc++.a
libubsan.a
libubsan.so
lto-wrapper
lto1
plugin (folder)

Sure it’s not an elegant way, but it’s easy to implement and works for fine me. :slight_smile:

Best reagrds
Wilhelm

1 Like

Hi @Wilhelm !

I just would like to comment that although I understand that adding all the compiling and debugging tools on the target might be a good workflow for you, this might not be the best for a reproducible development environment. In other words, it is not aligned with the best practices.

If you have time, maybe you find it suitable to learn about the Extensible SDK that Yocto is able to generate: 1 Introduction — The Yocto Project ® 3.1.999 documentation

Best regards,

1 Like