ubuntu 16.04 the selected serial port does not exist or your board is not conn

I was working fine on my Arduino Mega 2560 board. Now I don't know what has changed and i can't upload any program to it!!. I tried with another Mega board on the same laptop and also it gave the same error!. So I think it's the IDE but I don't know what happened. here is the error message :

the selected serial port
does not exist or your board is not connected

avrdude: Version 6.3, compiled on Dec 16 2016 at 07:33:21
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/home/naji/arduino-1.8.0/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/naji/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM1
Using Programmer : wiring
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "/dev/ttyACM1": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

avrdude done. Thank you.

the selected serial port
does not exist or your board is not connected

sudo chmod a+rw /dev/ttyACM1

How does that help when /dev/ttyACM1 does not exist?

ipalomon:
sudo chmod a+rw /dev/ttyACM1

It works for me.

try to run arduino in sudo mode

or if you're getting error message as 'ERROR COMMUNICATION IN SERIAL PORT' then open terminal

"sudo chmod a+rw /dev/ttyACM_"
in place of this _ try 0 or 1. you can see it in arduino [TOOLS->PORT]