The FAQ says "On Linux, the Uno and Mega 2560 show up as devices of the form /dev/ttyACM0. These are not supported by the standard version of the RXTX library that the Arduino software uses for serial communication. The Arduino software download for Linux includes a version of the RXTX library patched to also search for these /dev/ttyACM* devices. There's also an Ubuntu package (for 11.04) which includes support for these devices. If, however, you're using the RXTX package from your distribution, you may need to symlink from /dev/ttyACM0 to /dev/ttyUSB0 (for example) so that the serial port appears in the Arduino software." - this advice is about a decade old and obsolete. Is there any newer information about making the connection between the IDE and a device plugged into a Linux machine? Ubuntu dynamically assigns ports in the format /dev/tty* where * is a number or the letter 'S' and a number. It does NOT assign devices with the format /dev/ttyACM* or /dev/ttyUSB* (as some other obsolete guidance documents mention). The only port the IDE is offering me is /dev/ttyS0 - which has probably been dynamically assigned to some other use at each reboot - could be my main hard drive for all I know; it is never the USB port where I connect the Arduino; I know that. How can I make the IDE repopulate the port list? Or can I make a static assignment from a physical USB port to /dev/ttyS0 (since that is the only device file the IDE appears able to locate)? I have read making a static assignment is a really bad idea though - it defeats the dynamic port assignment routine and can create a range of OS glitches.
I am running Ubuntu 20.04 LTS, Arduino 1.8.13, and I have a mega2560 board. I tried to resolve this a couple of weeks ago while still in Ubuntu 18.04 with no success. Maybe now I get lucky?