Saturday, March 24, 2018

Using the Lattice iCEcube2 Software on Ubuntu 16.04

All you Windoze folk, go have coffee; this isn't for you.

Still here? Okay. This is mostly for me, so I don't have to figure this out anew every time I come back to this project.

Since the last time I used the Lattice iCEcube2 software, I upgraded my desktop from Linux Mint 17 to Linux Mint 18. This is the rough equivalent of moving from Ubuntu 14.04 to 16.04.

One of the changes that brought was to the naming of network interfaces. It used to be that all Ethernet interfaces were something like "eth0", "eth1", and so-on. This sometimes caused problems when the enumeration order changed, and suddenly the socket on the left and the socket on the right swapped names. And thus swapped configurations. Bad news. Some changes a few years ago caused them be given consistent names, but they were still of that form.

With Ubuntu 16.04, and thus Linux Mint 18, the names are generated from something else that would help them stay consistent. Thus I no longer have "eth0" and "eth1" interfaces; now I have "eno1" and "enp14s0".

So who cares, as long as they work? The FLEXnet licensing system used by Lattice cares. It wants to find the "eth0" network interface so it can use its MAC address as the host-id. That was fine when I had an "eth0" interface, but now I don't. So what to do?

There are many fixes, but this one is mine. Of course you must be the superuser to do this, but you don't really have much choice.
  1. Install the "dummy" network driver:
    sudo modprobe dummy
  2. Change the name of the "dummy0" interface to "eth0":
    sudo ip link set name eth0 dev dummy0
  3. Set the MAC address to whatever your license specifies:
    sudo ip link set eth0 address MACaddress
And you're done!

Now I just have to remember the procedure for programming the iCEblink board... I know I've done it with an old version of the iCEcube2 software on Windows, but did I ever get it to work from Linux?

No comments:

Post a Comment