CubeMX2 does not even support my STM32H7 parts, so, we will install good old CubeMX.
I select the "Generic Linux" download. It will give me version 6.18.1 as of 10-12-2026. I login using my ST credentials and away we go. It takes a while. I get a 632M zip file.mv SetupSTM32CubeMX-6.18.1-Lin-x86_64.zip /Projects/STM32/Cube cd /Projects/STM32/Cube mkdir Cube-6.18.1 cd Cube-6.18.1 unzip ../SetupSTM32CubeMX-6.18.1-Lin-x86_64.zipThis yields a "jre" directory and SetupSTM32CubeMX-6.18_1 which is an executable. There is also Readme.html, which I can view using "w3m Readme.html".
/Projects/STM32/STM32CubeMX/UninstallerI explore the XFCE startup menus (which I rarely use) and find STM32CubeMX under "Other" (and the only thing there). Using this starts it nicely.
I drag the "MX" icon from the XFCE startup menu to my desktop dock, which will make it easy to start up as needed.
I use the board selector, and it needs to download stuff from the network.
I type "Nucleo" into the Commercial product field and find Nucleo-H743-ZI2 fairly
quickly in the reduced list that yields.
Now I select "Generate demo code" in the "Board Project Options" popup I get and click OK.
Now I see the big image of the chip.
I go to the Project Manager tab, name the project "Demo".
I select "Makefile" as my toolchain.
I change Project Location to /Projects/STM32/Cube/Projects
I click "Generate Code" at the extreme upper right.
It wants to download STM32CubeFW_H7 V1.13.0 -- and I say Yes.
This is big (584M), but it downloads pretty fast.
When this finishes, it tells me my code has been generated.
I do indeed find the code in /Projects/STM32/Cube/Projects/Demo
I type "make" -- and it builds clean, giving me Demo.elf.
I copy my "flash" script from the Mac system:
#!/usr/bin/env python3
import os
import sys
file = sys.argv[1]
cmd = f"openocd -f interface/stlink.cfg -f target/stm32h7x.cfg -c \"program {file} verify reset exit\""
print ( cmd )
os.system ( cmd )
Finally I type "flash build/Demo.elf" and it downloads my code to the board.
It runs. I can press the blue user button and turn the user LED on and off.
I can also see a bit of output from the serial port if I use picocom:
picocom -b115200 /dev/ttyACM0When I press the black reset button, I see:
Welcome to STM32 world !This is produced by a printf statement in main.c and apparently is the "virtual serial port" mentioned in the "Board Project Options" popup when we first began the project.
CubeMX doesn't discover this when I restart. I use "Other Projects" to navigate to it. What it wants is the .ioc file. Once I point it to this, it finds the project and adds it to the recently opened projects list. I check various things and it all looks like the work I did on the Mac system.
It is also nice that it is simple and easy to move a project from the Mac to Linux, and no doubt it will go easily in the other direction if needed.
Tom's software pages / tom@mmto.org