Please enable JavaScript to view this site.

winIDEA Help

Version: 9.21.36

Navigation: » No topics above this level «

Scroll Prev Top Next More

iSYSTEM tools on Linux

These instructions describe installation of iSYSTEM tools on Ubuntu. It was tested with Ubuntu and KUbuntu 18.04, and 20.04, with Wine 3.0, 4.0.4. and 5.0, but should also work with newer versions. Other distributions should also be able to run iSYSTEM tools, as long as Wine is running there, but installation steps may differ.

winIDEA must be installed as a base for all other iSYSTEM tools, while other tools do not depend on each other. Install them according to your needs. Since Dec 2017 (winIDEA 9.17.26) only 64-bit version is supported.

If you'd like to try iSYSTEM tools without installation, you can download Virtual Box virtual machine with complete set of tools for embedded development preinstalled.

 

Prerequisites

Ubuntu 20.04

If you will need TCP/IP connection only in winIDEA, then only install Wine:

 

sudo apt install wine64

 

Continue with winIDEA installation as described in the next section. If you plan to use USB communication in winIDEA, note that it does not work with WINE 5.0 from Ubuntu repository. Please use one of the following options:

 

Install Wine from WineHQ packages.

Instructions at https://wiki.winehq.org/Ubuntu:

 

wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -

sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'

sudo apt update

sudo apt install --install-recommends winehq-stable

 

 

Download sources and build Wine 5.0 yourself

 

sudo apt install -y flex bison xorg-dev libx11-dev make

git clone git://source.winehq.org/git/wine.git wine-git_64

cd wine-git_64

git checkout tags/wine-5.0 -b stable

./configure --enable-win64  # winIDEA does not need 32-bit binaries

make

# optional, it is also possible to run winIDEA by specifying wine executable in build directory

make install

 

 

 

Ubuntu 18.04

sudo apt update

sudo apt install wine64 winetricks

winetricks vcrun2015

winetricks corefonts  # optinal, makes fonts nicer

 

Older versions of Ubuntu

Our tools are not tested with earlier versions, but if you install Wine 3.0 or later they should work.

 

 

Right click to copy the link address Install winIDEA

Perform these steps for each new version of winIDEA.

 

number1

Create folder <winIDEA-install-dir>, where winIDEA will be installed.

It is recommended to install it under ~/bin.

Do not unpack it into WINEPREFIX directory, because SDKs expect absolute directories, not Wine relative directories.

mkdir -p <winIDEA-install-dir>
cd <winIDEA-install-dir>

 

Example:

mkdir -p ~/bin/winIDEA_ver  &&  cd ~/bin/winIDEA_ver

 

 

number2

Download and run winIDEA installation script.

 

wget https://www.isystem.com/downloads/winIDEA/setup/installWinIDEA.sh  &&  chmod +x installWinIDEA.sh

 

This script downloads the latest verified build of winIDEA. To download some other version, edit it and change version in variable WINIDEA_DISTRO.
 

 

number3

Run installer.

 

sudo ./installWinIDEA.sh  

 

The script will ask you some questions to get information needed to customize installation.

 

 

Number4

Run winIDEA.

If you've created link during installation in /usr/local/bin folder, type:

winidea

 
Otherwise:

 
<winIDEA-install-dir>/winidea.sh

 

Tip: By default proportional font is selected in winIDEA Editor. Right click in winIDEA Editor, select Options /  General / Select Font... Choose monospace font (e.g. Ubuntu Mono). Use Ctrl + mouse wheel to change font size on the fly.

 

 

Right click to copy the link address Install isystem.connect Python SDK

Python SDK is available on PyPi as isystem.connect. It is recommended to create a virtual environment, and install the SDK there.

 

number1

Create virtual environment (not required, but recommended):

 

sudo apt -y install python3-pip python3-venv libxerces-c3.2
python3 -m venv ~/bin/embeddedPy
source ~/bin/embeddedPy/bin/activate

 

number2

Install isystem.connect:

 

pip3 install isystem.connect

 

 

number3

Test installation.

 

python
>>> import isystem.connect as ic
>>> ic.getModuleVersion()

 

 

Troubleshooting

If you get an error:

 

ImportError: libxerces-c-3.1.so: cannot open shared object file: No such file or directory

 

it means that you have to install xerces:

 

sudo apt-get install libxerces-c3.1

 

 

Ubuntu 18.04

Since xerces 3.1 is no longer available (xerces 3.2 is distributed now), you have to download and install it manually:

 

mkdir xerces31; cd xerces31
wget http://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.gz
tar xvf xerces-c-3.1.4.tar.gz
cd xerces-c-3.1.4
./configure
make
sudo make install
cd ~/bin/embeddedPy/lib64/python3.6/site-packages/isystem  # dir with your venv
ln -s /usr/local/lib/libxerces-c-3.1.so

 

 

Right click to copy the link address Install isystem.connect Java SDK

Download and unzip Java SDK from iSYSTEM web page, menu Downloads. The zip file contains documentation, sample project and libraries (jar file, DLL for Windows and SO for Linux). Copy files in lib directory to your application, add jar file to classpath, and load native library with the following code:

 

/**
* Returns directory of jar file containing this class. Native libraries (dll, so)
* are expected in this directory.
*/
private static String getJarFileDir() throws URISyntaxException {
   Path jarPath = Paths.get(CDebugFacade.class.getProtectionDomain().getCodeSource().getLocation().toURI());
   return jarPath.getParent().toAbsolutePath().toString();
}
public static void main(String[] args) throws Exception
{
   String os = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
   boolean isWindows = os.startsWith("windows");
   String architecture = System.getProperty("sun.arch.data.model");
   String libraryName = getJarFileDir();
   if (architecture.equals("64")) {
       if (isWindows) {
           libraryName += "/IConnectJNIx64.dll";
       } else {
           libraryName += "/libiconnectJava.so";
       }
   } else if (architecture.equals("32")) {
       if (isWindows) {
           libraryName = "/IConnectJNI.dll";
       } else {
           throw new IllegalStateException("32 Linux is currently not supported. Please contact iSYSTEM for more info.");
       }
   } else {
       throw new IllegalStateException("Unknown 32/64 bit architecture:" + architecture);
   }
   try {
       System.out.println("java.library.path = " + System.getProperty("java.library.path"));
       System.out.println("Loading native library: " + libraryName);
       System.load(libraryName);
   } catch (Throwable thr) {
       System.err.println("Error loading library: " + libraryName);
       System.err.println("Error: " + thr.toString());
       thr.printStackTrace();
       return;
   }
   System.out.println("isystem.connect demo for Java version: " +
                      si.isystem.connect.connectJNI.getModuleVersion());
}

 

 

Right click to copy the link address Install iSYSTEM Eclipse Debug plugin

Use normal Eclipse plug-in installation procedure. URL of the update page can be found on iSYSTEM web page.

 
Additional system configuration

Wine sets winebrowser as default application for XML files, which can not show testIDEA reports properly. Use Dolphin to configure Firefox as the default application for XML files, as shown on images below:

 

Click to open

1. Right-click XML file.

2. Select Other in the menu.

makeFFdeafultForXML

3. Select Firefox and the checkbox at the bottom.

4. Click OK.

 

 

Right click to copy the link address Troubleshooting

Communication with BlueBox via USB

 

1. Folder with winIDEA executable (winIDEA.exe) must be in environment variable WINEDLLPATH (this variable is normally set in script winidea.sh which is created during installation). Example of manual run:

 

cd <winIDEA-install-dir>

export WINEDLLPATH=\`pwd\` # Use backquotes!

 

 

2. Udev rules must be set to have access to iSystem USB devices. Make sure the installation script generated file /etc/udev/rules.d/isystem-itag.rules with contents:

 

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="06f9", OWNER="<yourUserName>"

 
Then detach/attach iSystem device, so that the rule gets applied. If it still does not work, try to restart copmuter.

 

3. If you run winIDEA as:

 

cd <winIDEA-install-dir>

 ./winidea.sh

 
and the message Permission denied appears in console, something in the previous step was wrong (do not forget to write the right user name).

 

4. Check that winusb.dll is present in winIDEA installation directory.

 

5. Enable logging by defining env. var. ISYSTEM_LIBUSB_LOGGING:

 

export ISYSTEM_LIBUSB_LOGGING=1

 

In the folder where winIDEA was started you'll find file usb.log. Please send it to iSYSTEM support.

 

6. If there is no Communication page in the Hardware dialog, then icusbcomm.dll.so was not found. Please check presence of the library in winIDEA folder and setting of WINEDLLPATH (see above for details).

 

7. In winIDEA menu open Hardware / Hardware / Communication and select your iSYSTEM device in USB combo box. If iSYSTEM device is turned on and attached to your computer, but it does not show up in drop-down list, them most likely udev rules are not set properly. First make sure that the device is recognized by the system:

 

lsusb

 

If you can see the device in this output, but not in winIDEA, check udev rules as described above, and read on.
 

 
Notes on device ownership management
Dynamic device management is done by udev.

 
In a nutshell: Create a file "/etc/udev/rules.d/isystem-usb.rules". The name is arbitrary, because nothing will override this setting), but the extension 'rules' is mandatory. File contents:

 

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="06f9", OWNER="<userName>"

 
Explanation

All items must be on a single line. '==' means that attribute sent by the kernel to udev must match the value, '=' means the key is set to a value. In our case, when device is 'add'-ed to the subsystem 'usb' and vendor and id match the given values, owner of the device is set to the given user name. If we need a node in the /dev folder, we can also specify a name:

 

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="06f9", ATTR{idProduct}=="d001", OWNER="<userName>", NAME="iTagSTM32"

 

However, the owner of the original node in /dev/bus/usb is not changed. The device must be unplugged/plugged into system for the rule to get applied - no system restart is needed.

 

 

Right click to copy the link address Starting winIDEA with isystem.connect

1. For communication bewteen isystem.connect application and winIDEA, TCP/IP is used on Linux. Make sure that isystem.connect over TCP/IP is enabled in winIDEA, menu Tools/Options/isystem.connect.

 

2. Some functions in isystem.connect (for example ConnectionMgr::connectMRU() ) start winIDEA if no running instance is found. To locate most recently run winIDEA location, it reads winIDEAVersion.log, which is located in Wine user's home

 

directory.

 

By default this location is /home/<username>/.wine/drive_c/users/<userName>/Application Data, but it may be changed by WINEPREFIX or Wine configuration. While isystem.connect tries to do its best to find this location, it may not

succeed in all cases.

 

 

If there are problems starting winIDEA, try do define environment variable ISYSTEM_APPDATA, to point to Wine's Application Data directory, for example:

 

ISYSTEM_APPDATA=/home/myusername/.wine/drive_c/users/myusername/Application\ Data

 
 

Right click to copy the link address Starting winIDEA with specific workspace file

Note: This section does not apply to starting winIDEA from isystem.connect. Linux paths work there.

winIDEA can be started by specifying workspace in command line, for example:

 

$ winidea SampleSTM32.xjrf

 

 

If the specified workspace is not opened, check the following:

  • older versions (before 9.17.17, Nov. 2017) have bug in winidea.sh. The line which starts winIDEA should contain "$@", for example:

 

wine <path to winIDEA exe>/winIDEA.exe "$@"

 

  • Relative workspace path should work as expected. However, absolute workspace paths must be given in Windows path format, for example:

 

$ winidea Z:/home/me/proj/Sample.xjrf

 

Workspace specified with Linux absolute path will not be found:

 

$ winidea /home/me/proj/Sample.xjrf   # WILL NOT WORK!

Copyright© iSYSTEM AG Carl-Zeiss-Str.1 85247 Schwabhausen Germany