Starting Download..
save Save

Linux IO Libraries FAQ

How to install IOLS Linux?

You must use the provided installers to install Keysight IO Libraries Suite. Manual installation using rpm package is not supported.

To install Keysight IO Libraries Suite:
Step 1. Disconnect all instruments.
Step 2. Close all applications running on the workstation.

Steps 3-4. Install the software.

NOTE: There are two components to the install. The first is a set of kernel drivers for users wishing to establish USBTMC or USB-to-GPIB (82357) converter connections. If you require this functionality, perform the separate installation for iokerneldrivers-installer.run referenced in Step 3 below, then choose either Step 4 Option 1 (Typical) or Step 4 Option 2 (text-based) to install the remainder of the product suite (iolibrariessuite-installer.run). If you are not connecting via USBTMC or USB-to-GPIB converter, skip Step 3.

 

Step 3, Install kernel drivers (if connecting via USBTMC or USB-to-GPIB converter)

Please see the separate instructions (ReadMeKernelDrivers) for the Kernel Drivers Installer (iokerneldrivers-installer.run). Both installation packages and their separate ReadMe files are available at www.keysight.com/find/iosuite . At the end of each installation process, each installer wizard also gives you the option to launch the correct ReadMe.

 

Step 4, Option 1: (Typical) GUI-based Install

The main IO Libraries Suite installer (iolibrariessuite-installer.run) will automatically provide a graphical user interface if it detects XWindows running on the target Linux PC.

· Copy the installation package downloaded or from a disk to a local folder.

· Open a Terminal window and change directory to the local folder where the Keysight IO Libraries Suite for Linux is copied to.

· If you log in as 'root' user, run the installer by executing ./iolibrariessuite-installer.run in the Terminal window and follow the instructions to finish the installation. If you are not logging in as 'root' user, make sure using the 'sudo' command to run the installer.

Note: Make sure the permission for the installer is set properly. It should be set as executable.

Step 4, Option 2: Force a text-based installation mode.

In order to force the main installer into a textual user interface in a Terminal window on XWindows PCs, use --mode text on the command line like this:

sudo ./iolibrariessuite-installer.run --mode text

 

Step 5. Re-connect all devices that are disconnected before installation.

After installation, you may need to reboot your machine before attempting to use Keysight VISA or SICL. Refer to www.keysight.com/find/iosuite  for the most recent information about Linux support at Keysight Technologies, Inc.


(Optional) If Additional Users Need Access to Your IOLS Machine

The options below are for users of either RS232 or USBTMC.

If you are using RS232:

By default, IO Libraries creates a kt-iols group on the machine. The installer will add the installing superuser to both kt-iols and to the existing system dialout groups (for RS-232 usage). If you want other users on that machine to be able to access RS-232, you must manually add those users to both kt-iols and dialout. The administrator/superuser should log out and back in again after adding these users for the changes to take effect.

If you are using USBTMC:

By default, IO Libraries creates a kt-iols group and an ivi group on the machine. The installer will add the installing superuser to both kt-iols and to ivi. If you want other users on that machine to be able to use USBTMC, you must manually add those users to both kt-iols and ivi. The administrator/superuser should log out and back in again after adding these users for the changes to take effect.


(Optional) Silent (Command Line) Installation Mode

Keysight partners may opt to use the command line silent installation feature. Silent mode is enabled by adding --mode unattended to the install command line in this fashion:

sudo ./iolibrariessuite-installer.run --mode unattended

sudo ./iokerneldrivers-installer.run --mode unattended

How to launch Connection Expert?

There are two ways to open Connection Expert:

1. Right-click the IO Control icon and then left-click "Connection Expert"
2. Open a terminal window and enter "io-ce"

Why is the IO control Icon is missing on CentOS 7.1/RHEL 8.x/CentOS 8.x?

  • The system tray icon is missing in RHEL/CentOS 8.x. This is because the modern GNOME (Linux Desktop Environment) is designed to drop the support of the legacy system tray. Please refer to the latest "Linux IO Libraries Suite xxxx ReadMe" for workarounds.

  • Older versions of CentOS such as 7.1 may place the icon in the notification area on the bottom right corner of the screen. In this case, right-click to view hidden notifications which will include access to IO Control.

Where can I find Keysight VISA and SICL library files?

VISA: /lib64/libiovisa.so
SICL: /lib64/libsicl.so

Where does the installer place the installed files?

Directory of installation is: /opt/keysight/iolibs

Where is the uninstaller located?

Keysight IO Libraries Suite installation process automatically generates an uninstaller that is put under "/opt/keysight/iolibs/uninstall" and named iolibrariessuite-uninstall. Users can run this uninstaller from a Terminal window to uninstall Keysight IO Libraries Suite.

To force a silent uninstall use:

sudo ./iolibrariessuite-uninstall --mode unattended

How do I reopen the IO Control icon if it is closed?

If you close the IO Control icon and want to get it back, we recommend restarting your Linux work station. The IO Control Icon is automatically started during the boot up process.


Where do I find the development directory that has the header and library files?

The header files are in the directory: /opt/keysight/iolibs/include

The header files provided are for example: sicl.h, visa.h and visatype.h

The library files are in the directory: /lib64

The library files provided are for example: libiovisa.so and libsicl.so

*On Ubuntu installs, the directory for the library files may vary and be in this directory: /usr/lib/x86_64-linux-gnu

It may be best to use the "locate" tool that can be installed to locate your library files. Refer to these examples: https://vitux.com/how-to-find-files-on-the-ubuntu-command-line/


Does IO Libraries Suite for Linux support 32-bit Linux OSes or Linux built on the ARM CPU architecture?

No, it does not. IO Libraries Suite for Linux is only built to work on 64-bit Linux OSes and the types of these OSes are listed in the IOLS for Linux ReadMe on the download page.

ARM CPU architecture is not supported and thus IO Libraries Suite cannot be installed on these examples of Linux OSes or hardware: Raspbian and other Raspberry Pi Linux OSes, Ubuntu MATE.

Approaches that could be used to allow a Raspberry Pi to communicate with instruments are:

  • Try to use the common TCP/IP-Socket based libraries with instruments that have the LAN interface.
  • Try to use PyVISA module with the PyVISA-py backend libraries to communicate with instruments. Only a subset of interfaces are supported here. For more information, please refer to this 3rd-party website.

However, these approaches are out of the scope of support that Keysight can provide.


Does IO Libraries Suite for Linux support offline or secure environments?

In an offline or secure environment, the IOLS for Linux installers will throw a “ There has been an error. This device is not connected to the network – aborting the installation ” error.

The IOLS for Linux installers were not designed to work without internet connectivity so that is why there is that check and error message about no internet connectivity. It's a ping to Google's DNS servers at 8.8.8.8. This is needed to have access to online RedHat/CentOS/Ubuntu repos to download pre-requisites for IOLS for Linux to work. Right now, there is no way for the end-user to change the DNS check to their own DNS address or edit the option file for the installer.

This issue has been logged with the R&D team and they have planned to update this "ping 8.8.8.8" check around the end of 2022 or early 2023 release of IOLS for Linux to make it less crude of a internet connectivity check. However, this does not mean that IOLS for Linux version 2022 will completely support an offline environment. They will have to investigate this application when they perform this changes in the next release.

Potential workarounds:

  1. Remove your Linux computer from the offline or secure lab and connect it to the internet temporarily just to install IOLS. And then place the Linux computer back in the offline or secure lab. The internet connectivity for IOLS for Linux only needs to occur during installation. It does not need continuous internet connectivity.
  2. Create an internal server that mimics the Google DNS server at DNS 8.8.8.8. That way the IOLS for Linux installer will obtain a successful ping response and continue on with the installation. However, you must have created internally hosted repositories so that IOLS for Linux can acquire all its 3rd party components. This is an untested situation so we have no data of what error messages to expect. Some of our other customers have had luck bypassing this issue by connecting their RedHat/CentOS/Ubuntu to their internally hosted repositories with the help of their IT team that are familiar with Linux systems. However, Keysight support does not have additional instructions on configuring these internal repository connections.


What do I do when I see a "An unsupported Linux kernel version has been detected." message while installing IOLS for Linux Kernel Drivers 2021 and above?

Keysight's R&D and QA team can only test a subset of all available kernel versions so this message is more of a warning rather than a complete roadblock.

If the user is able to install DKMS, they can proceed to install the IOLS 2021 and above Kernel Drivers and there is a high probability that it will work as expected. Thus, the user can ignore this message by moving past it.

The IOLS 2021 and above for Linux ReadMe contains all the tested Linux OS flavor versions and kernel versions. Here is a link to the IOLS 2021 ReadMe that you can use an an example.



How do I install DKMS in my Linux system?

The steps documented on the 3rd-party website below will help with installing DKMS on RedHat/CentOS as an additional EPEL-release repository needs to be added first. 

https://www.titan.tw/web/anyplaceusb/InstallingDMKSonRedHatCentos.html 


Similar steps have to be taken with Ubuntu as well. Please refer to the 3rd-party website below.

https://howtoinstall.co/en/dkms


Can IOLS for Linux and it's kernel drivers be installed on a system with "Secure Boot enabled" or "UEFI" hard drive format? 

No. IOLS for Linux and it's kernel drivers are not supported in Secure Boot enabled BIOS and will not complete installation. Please disable this setting in your computer's BIOS settings.

Generally, if Secure Boot is enabled, your computer's hard drive was also formatted to UEFI rather than Legacy MBR. IOLS for Linux and it's kernel drivers are not supported in UEFI hard drive format either.

Most Keysight software are not supported in UEFI formatted hard drivers as well.

If you are unfamiliar with Secure Boot or UEFI, please refer here for help: https://www.makeuseof.com/tag/disable-secure-uefi-dual-boot/ 


How to check my Linux OSes installed and running Kernel version?

Determine your various Linux OS Kernel version using terminal:
https://www.cyberciti.biz/faq/find-print-linux-unix-kernel-version/


Ubuntu versions and Kernel versions table:
https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions 


3 ways to find Kernel versions on Ubuntu:
https://itsfoss.com/find-which-kernel-version-is-running-in-ubuntu/
Ubuntu Kernel Update Utility (UKUU):
https://vitux.com/update-linux-kernel-on-ubuntu-through-ukuu/
UKUU v18.9.1 is the last free version:
https://github.com/teejee2008/ukuu/releases
How to access Advanced Options in GRUB to downgrade kernel?
https://askubuntu.com/questions/1014634/how-to-access-advanced-options-in-grub


RedHat Enterprise versions and Kernel versions table:
https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux


CentOs versions and Kernel versions table:
https://en.wikipedia.org/wiki/CentOS
 

Are there any installation logs when I install the IO Libraries Suite for Linux or its kernel drivers? Where is the directory?

The directories that store installation logs should be "/tmp" and "/var/log/keysight/iolibs".

The log files "kt_iolibs_install_log" and "kt_kernel_install_log" are the installation logs created by the installers.

The script below can be named "gather.sh" and you can run this script in the terminal as sudo .e.g. "sudo gather.sh".

It will create a .tar.gz compressed file of the logs created by IO Libraries Suite installers. This will be useful when you contact Keysight for assistance.

#!/bin/bash
fileName=dir_file_info.txt
installDir=/opt/keysight/iolibs
rm -f $fileName
cat /etc/centos-release > $fileName
cat /etc/redhat-release >> $fileName
KERNEL=`uname -r`
echo "kernel version: "$KERNEL >> $fileName
echo "gathering dir and file info..., output to "$fileName
echo $installDir":" >> $fileName
ls -alh $installDir >> $fileName
echo "" >> $fileName
echo $installDir"/bin:" >> $fileName
ls -alh $installDir"/bin" >> $fileName
echo "" >> $fileName
echo $installDir"/drivers:" >> $fileName
ls -alh $installDir"/drivers" >> $fileName
echo "" >> $fileName
echo $installDir"/ds:" >> $fileName
ls -alh $installDir"/ds" >> $fileName
echo "" >> $fileName
echo $installDir"/ds/ServerComponents:" >> $fileName
ls -alh $installDir"/ds/ServerComponents" >> $fileName
echo "" >> $fileName
echo $installDir"/kernel:" >> $fileName
ls -alh $installDir"/kernel" >> $fileName
echo "" >> $fileName
echo $installDir"/ivireg:" >> $fileName
ls -alh $installDir"/ivireg" >> $fileName
echo "" >> $fileName
echo $installDir"/include:" >> $fileName
ls -alh $installDir"/include" >> $fileName
echo "" >> $fileName
echo $installDir"/ui:" >> $fileName
ls -alh $installDir"/ui" >> $fileName
echo "" >> $fileName
echo $installDir"/utils:" >> $fileName
ls -alh $installDir"/utils" >> $fileName
echo "" >> $fileName
echo $installDir"/dotnetcore-runtime-linux:" >> $fileName
ls -alh $installDir"/dotnetcore-runtime-linux" >> $fileName
echo "" >> $fileName
echo "/usr/lib64:" >> $fileName
ls -alh "/usr/lib64" >> $fileName
echo "" >> $fileName
echo "/usr/lib64/ivivisa:" >> $fileName
ls -alh "/usr/lib64/ivivisa" >> $fileName
echo "" >> $fileName
echo "/var/lib/ivivisa:" >> $fileName
ls -alh "/var/lib/ivivisa" >> $fileName
echo "" >> $fileName
echo "/dev/pcigpib:" >> $fileName
ls -alh "/dev/pcigpib" >> $fileName
echo "gathering dir and file info done!"
DmesgInfoFileName="dmesg_info.txt"
echo "gathering dmesg, output to "$DmesgInfoFileName
dmesg > $DmesgInfoFileName
echo "gathering dmesg done!"
SystemMessageFileName="system_message.txt"
echo "gathering system message, output to "$SystemMessageFileName
cat /var/log/messages > $SystemMessageFileName
echo "gathering system message done!"
echo "gathering running process info..."
IodsRunningInfoFileName="io-ds_running_info.txt"
systemctl status io-ds.service > $IodsRunningInfoFileName
RunningProcessInfoFileName="running_process_info.txt"
ps -ef > $RunningProcessInfoFileName
echo "gathering running process info done!"
echo "gathering loaded kernel module info..."
LoadedKernelInfoFileName="loaded_kernel_modules_info.txt"
lsmod > $LoadedKernelInfoFileName
echo "gathering loaded kernel module info done!"
echo "packaging diagnose information..."
SystemCrashDir=`ls -t /var/crash | head -1`
Today=`date +%F_%H%M%S`
tar czfP "iols_diagnose_data_"$Today".tar.gz" /var/log/keysight/iolibs /etc/keysight/iolibs "/var/crash/"$SystemCrashDir"/vmcore-dmesg.txt" $fileName $DmesgInfoFileName $SystemMessageFileName $IodsRunningInfoFileName $RunningProcessInfoFileName $LoadedKernelInfoFileName
rm $fileName $DmesgInfoFileName $SystemMessageFileName $IodsRunningInfoFileName $RunningProcessInfoFileName $LoadedKernelInfoFileName
echo "done!"

Was this helpful?


Didn't find what you're looking for?