Failed to open /dev/ttyACM0 (port busy)

Dear all

I am trying to work with the (new) sparkfun razor IMU 9dof, I wrote a silple sktetch to calibrate the magnetometer:

#include <SparkFunMPU9250-DMP.h> // Include SparkFun MPU-9250-DMP library
//#include <Wire.h> // Depending on your Arduino version, you may need to include Wire.h

MPU9250_DMP imu; // Create an instance of the MPU9250_DMP class

void setup()
{
Serial.begin(115200);

// Wait for the Serial Monitor to open (comment out to run without Serial Monitor)
// while(!Serial);

Serial.println(F("Adafruit 10 DOF Board AHRS Calibration Example")); Serial.println("");

if (imu.begin() != INV_SUCCESS){
while (1)
{
Serial.println("Failed to initialize MPU-9250, loop forever");
}
}

// Use setGyroFSR() and setAccelFSR() to configure the
// gyroscope and accelerometer full scale ranges.
// Gyro options are +/- 250, 500, 1000, or 2000 dps
imu.setGyroFSR(2000); // Set gyro to 2000 dps
// Accel options are +/- 2, 4, 8, or 16 g
imu.setAccelFSR(2); // Set accel to +/-2g

// setLPF() can be used to set the digital low-pass filter
// of the accelerometer and gyroscope.
// Can be any of the following: 188, 98, 42, 20, 10, 5
// (values are in Hz).
imu.setLPF(5); // Set LPF corner frequency to 5Hz

// The sample rate of the accel/gyro can be set using
// setSampleRate. Acceptable values range from 4Hz to 1kHz
imu.setSampleRate(100); // Set sample rate to 10Hz

// Likewise, the compass (magnetometer) sample rate can be
// set using the setCompassSampleRate() function.
// This value can range between: 1-100Hz
imu.setCompassSampleRate(100); // Set mag rate to 10Hz

}

void loop(void)
{
imu.update();

// Print the sensor data
Serial.print("Raw:");
Serial.print(imu.ax);
Serial.print(',');
Serial.print(imu.ay);
Serial.print(',');
Serial.print(imu.az);
Serial.print(',');
Serial.print(imu.gx);
Serial.print(',');
Serial.print(imu.gy);
Serial.print(',');
Serial.print(imu.gz);
Serial.print(',');
Serial.print(imu.mx);
Serial.print(',');
Serial.print(imu.my);
Serial.print(',');
Serial.print(imu.mz);
Serial.println();

delay(50);
}

Why are you posting your code when the fundamental problem is something else?

Well, because at first glance I was thinking perhaps there is something wrong in the code as well. But you are right, it is something and I do not have any clue so far

Check the device first if it is present on your system and if you have the rights for your credentials.