Keysight ADS

Материал из ALT Linux Wiki

Keysight Advanced Design System или просто ADS - проприетарный пакет для СВЧ моделирования. Дополнительно, в составе пакета имеются инструменты для анализа целостности питания и перекрёстных помех. Является частью экосистемы анализа и моделирования PathWave, поэтому более полное название - Keysight PathWave Advanced Design System. Первая версия программы выпущена аж в 1983 году для рабочих станций Sun Microsystems и HP-UX.


Установка

Рассмотрим установку ADS, версии 2025 Update 2, на ОС Альт 10.4 Рабочая Станция К. Для доступности всем пользователям, будем производить установку и запуск сервера лицензий от суперпользователя. В случае установки для одного пользователя, можно сделать всё по аналогии. Для установки необходимо скачать архив или ISO с программой. Например, с официального сайта.

0. Начнём с установки необходимых пакетов. Для работы ADS необходим интерпретатор ksh и библиотека libnsl1. В Альт P10 ksh имеет название pdksh.

# apt-get install pdksh libnsl1

1. Производим распаковку архива или ISO в домашнею папку пользователя.

2. Переходим в папку с программой, находим скрипт SETUP.SH и запускаем от суперпользователя:

$ su
# ./SETUP.SH

3. В установщике соглашаемся с лицензионным соглашением, выбираем комплектность установки, выбираем путь для установки (по умолчание это /usr/local/ADS2025_Update2) и устанавливаем программу. После закрываем установщик.

4. Чтобы автоматически проверять сетевую лицензию, необходимо добавить новую переменную среды. Для этого, при установке для всех пользователей, необходимо добавить в profile.d скрипт для её создания. Помимо этого, неплохо иметь возможность запускать программу из терминала, для этого добавим путь к исполняемому файлу в переменную PATH.

4.1. Создадим скрипт ads_env.sh и добавим туда команду для лицензии:

export ADS_LICENSE_FILE=<порт вашего сервера лицензий>@<IP адрес вашего сервера лицензий>

И для запуска из терминала:

export PATH="<Ваш путь к папке с установленной программой>/bin":$PATH

В моём случае, используется локальный сервер, а путь стандартный, поэтому скрипт ads_env.sh будет иметь вид:

export ADS_LICENSE_FILE=27009@localhost
export PATH="/usr/local/ADS2025_Update2/bin":$PATH

4.2. Сделаем скрипт исполняемым и положим в profile.d:

$ su
# chmod +x ads_env.sh
# cp ads_env.sh /etc/profile.d/

5. После установки переменных среды необходимо получить рабочий файл лицензии и активировать лицензию. Рассмотрим сетевую активацию с локальным сервером лицензий. Более подробно про работу с сервером плавающих лицензий lmgrd можно прочитать тут.

5.1. В начале, необходимо получить корректный файл лицензии. Перед запуском сервера обязательно убедитесь, что данные вашей машины указаны верно и корректно. Обычно, в файле лицензий это выглядит так:

SERVER <Имя хоста> ANY <Порт, на котором будет расположен сервер лицензий>
VENDOR agileesofd
.....

5.2. Необходимо скопировать файл лицензии в папку: <Папка с установленной программой>/Licensing/<Версия ПО>/linux_x86_64/bin. В моём случае это выглядит так:

$ su
# cp agileesofd.lic /usr/local/ADS2025_Update2/Licensing/2024.06/linux_x86_64/bin/

5.3. Необходимо запустить сервер лицензий. Лучше делать это с созданием лога отладки для возможности обнаружения ошибок. Чтобы избежать проблем с путями, лучше запускать сервер из папки, в которую был ранее скопирован файл лицензии. Команда для запуска из папки:

./lmgrd -c <Имя вашего файла лицензии> -l debug.log

В моём случае, это делается так:

$ su
# cd /usr/local/ADS2025_Update2/Licensing/2024.06/linux_x86_64/bin/
# ./lmgrd -c agileesofd.lic -l debug.log
Примечание: Встречается проблема, связанная с библиотекой ld-lsb-x86-64.so.3, отсутствующей в Альт. Выражается ошибка в том, что бинарный файл сервера лицензий lmgrd, при запуске, может быть не обнаружен:
# ./lmgrd
bash: ./lmgrd: Нет такого файла или каталога

Для устранения ошибки вводим команду от суперпользователя:

# ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3


5.4. Для проверки корректности запуска сервера лицензий необходимо прочитать лог файл:

# cat debug.log

В случае удачного запуска сервера, файл debug.log выглядит примерно так:

22:11:09 (agileesofd) (@agileesofd-SLOG@) Running on Hypervisor: Unknown Hypervisor
22:11:09 (agileesofd) (@agileesofd-SLOG@) ===============================================
22:11:09 (agileesofd) Ecomms: Encrypted Communication disabled
22:11:09 (agileesofd) TCP_NODELAY NOT enabled
22:11:09 (agileesofd) Listener Thread: running
22:11:09 (agileesofd) Starting diagnostics port listener thread (DPLT)
22:11:09 (agileesofd) Starting diagnostics output thread (DRQT)
22:11:09 (agileesofd) DPLT: running
22:11:09 (agileesofd) DPLT: waiting for logger to connect
22:11:09 (agileesofd) DRQT: running

5.5. Для того, чтобы каждый раз не перезапускать сервер лицензий при перезапуске машины, логично добавить задачу в Cron того пользователя, от которого запускается сервер. В моём случае - это суперпользователь. Чтобы избежать проблем с путями к файлам, и при этом обойтись одной командой, можно просто добавить полные пути к файлам в команду. Для этого открываем таблицу Cron командой:

# crontab -e

И добавляем туда строку такого содержания:

@reboot <Путь к папке с lmgrd>/lmgrd -c <Путь к папке с lmgrd>/licence.lic -l <Путь к папке с lmgrd>/debug.log

В моём случае, запись в Cron выглядит так:

@reboot /usr/local/ADS2025_Update2/Licensing/2024.06/linux_x86_64/bin/lmgrd -c /usr/local/ADS2025_Update2/Licensing/2024.06/linux_x86_64/bin/agileesofd.lic -l /usr/local/ADS2025_Update2/Licensing/2024.06/linux_x86_64/bin/debug.log

6. Перезагружаем машину.

# reboot

7. Пробуем запустить ПО, написав в консоли от обычного пользователя:

$ ads

В случае, если вы всё сделали правильно, программа запустится и сразу подхватит вашу лицензию.

Иконка для запуска

При установке программы, в отличии от Windows версии, иконка для запуска не создаётся. Но, это можно поправить, создав её самостоятельно.

1. Создаём папку, например, ads_run:

# mkdir ads_run

2. Находим в сети логотип ADS, например, такой, скачиваем его и кладём в папку ads_run.

3. Даём соответствующее имя, например, ADS.ico.

4. Создаём скрипт для создания иконки. Например, такой:

#!/bin/bash
pa=$(pwd)
us=$(whoami)
rt=root
if [ "$us" = "$rt" ]
then sv=/usr/share/applications/ADS_2024.desktop
else sv=~/.local/share/applications/ADS_2024.desktop
fi
echo "[Desktop Entry]
Comment[ru_RU]=PathWave Advanced Design System (ADS) 2024
Comment=PathWave Advanced Design System (ADS) 2024
Exec=ads
GenericName[ru_RU]=ADS 2024
GenericName=ADS 2024
Icon=${pa}/ADS.ico
MimeType=
Name[ru_RU]=ADS 2024
Name=ADS 2024
Path=/home/$USER
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Categories=Science;
X-KDE-SubstituteUID=false
X-KDE-Username=" > $sv

Данный скрипт при запуске от пользователя создаёт иконку локально, а при запуске от суперпользователя глобально. Данный скрипт должен лежать рядом с иконкой в папке ads_run.

5. Перемещаем папку ads_run в папку с установленной программой, переходим в папку и запускаем скрипт. Вот как это выглядит в моём случае:

$ su
# mv ads_run/ /usr/local/ADS2025_Update2
# cd /usr/local/ADS2025_Update2/ads_run/
# chmod +x SETUP_ICON.SH
# ./SETUP_ICON.SH

Теперь иконка программы должна появиться в разделе "Наука" главного меню операционной системы!

Совместимость

Какие версии лучше ставить на Альт?

На Альт P10 лучше всего работают наиболее свежие версии ADS. В процессе тестов выявлено, что лучше всего ставить версии от 2023 и выше. На более старых версиях могут встречаться проблемы в виде не отображающихся результатов моделирования и не работающих дополнительных пакетов, таких как, Via Designer или RFPro.

Совместимость с проектами под Windows

Обычно, всё что было создано в ADS для Windows без каких-либо проблем открывается и Линукс версии. Исключение могут составлять проекты от достаточно старых версий, например, если попытаться открыть проект, созданный в ADS 2019 под Windows, в ADS 2024 на Линукс можно получить предупреждение о возможных ошибках в работе.

Кириллица

ADS не полностью поддерживает кириллицу. Чтобы избежать неожиданных ошибок, лучше избегать кириллических символов в названии рабочих папок, в именах файлов, путях к файлам, а также в процессе работы с программой необходимо использовать только ASCII символы.

Wayland

Wayland сессии не поддерживаются. Исключительно XORG.