When trying to activate MATLAB on newer Linux versions, the activation fails. Checking the Host ID shows that the Host ID is 000000000000 which does not work. I also experience issues with the license manager where it will not start on these new distributions. How can I activate MATLAB or use the license manager in this environment?
Some newer Linux distributions have adopted the Consistent Network Device Naming convention for naming Network Interface Cards. Traditionally, Network Interface Cards were named using the ethX standard. This standard was known to cause trouble on machines with multiple network devices as the device names would change based on when it was detected by the kernel in the boot sequence.
In an effort to move away from the ethX standard, modern distributions have began implementing naming schemes based on the physical location of the network devices in the computer. The two main new naming standards are:
1. em[0-9] for Network Interface Cards embedded in the motherboard
2. ens<slot_number>p<port_number> or p<slot_number>p<port_number> for PCI cards
3. There may be other naming schemes based on your distribution and type of ethernet device
MathWorks software must be locked and activated to the MAC address of an ethernet device on Linux. We are currently able to activate to the ethX and enX device names. If your machine is using one of the naming conventions listed above, then you will need to rename your device to match one of the naming conventions that we utilize.
NOTE For releases R2008b and earlier MATLAB must be locked to an eth0 device. In general, a Linux machine with an ethernet device should always have an eth0, but the device may be named eth1, eth2, etc. The eth0 device may just be disabled, in which case you would just have to enable eth0. To activate MATLAB on a machine with no eth0, you can rename the eth device to eth0.
Typically, the most consistent way to change the name of the ethernet device, and have the name preserved across reboots, is to create a udev rule.
udev is a relatively new way of managing the /dev directory and populating it with device nodes. It was introduced in the Linux 2.5 kernel, and will be present on most modern Linux systems.
udev rules are constructed as a series of matching conditions and action commands. When a device matches all of the conditions, the assignment commands will be executed. udev rules are stored in /etc/udev/rules.d and must have a .rules extension. They are read and processed in lexicographical order. The udev rule to change the Network Interface Card's will typically be named 70-persistent-net.rules
The simplest udev rule to change the name of an ethernet device, with MAC address xx:xx:xx:xx:xx:xx, to eth0 will be:
If you are unsure how to find your MAC address, please try running the following command: ifconfig
There are other methods of changing the name of the ethernet device, but many of them are distribution specific and can not be guaranteed work on all distributions. udev rules take priority on all systems running the udev framework.
If you would like more information about this naming convention change and writing udev rules please take a look at the following links:
If you would like assistance renaming your ethernet device feel free to contact MathWorks Installation and Licensing Support.
The real solution to this issue is that the Mathworks fix their license manager and not that users are supposed to fiddle with their network device names.
So, predictable interface names are the recommended way to go now (and as pointed out in the upstream documentation, this means that you can come up with any fancy custom name you want, but NOT ethX/wlanX), so please, fix your license manager.