Перейти к содержанию
    

Установка Model Composer(sysgen) Vivado 2022.2 + Matlab R2021a на Red Hat Enterprise Linux 8.6 в Oracle VirtualBox r161095

Добрый день!

Хотел немного "прокачать скиллы", заняться самообразованием, пройти Model Composer Tutorials. А пришлось "прокачивать" навыки установки всего двух программных пакетов от многоуважаемых компаний на линукс в течение трёх рабочих дней. С периодическими затыками, от которых пробивает холодный пот и хочется всё бросить, а бросать нельзя - нужен результат. Хорошо, что по ходу вёл конспект, чего делал и как боролся. Хочу выложить его здесь, может быть, он кому пригодится. Неужели каждому приходится тратить такую кучу времени на установку? А ясного мануала нигде нет. Просто жалко время человеческое. Выкладываю в теле, а не в приложении, чтобы можно было найти по тексту характерных ошибок. Наверное, что-то из этого и устранено в новых версиях, а может и нет.

Ещё давно у меня было установлено всё необходимое добро на Ubuntu 20.04. И оно вроде даже работает, но как-то ненадёжно. Подвисает или при Simulink моделировании, или при генерации HDL кода. Ещё и завит от того, просить у синтезатора кода анализ результата или нет. Пытался искать помощи в инете, не нашёл - слишком всё неопределённо. Учиться, а тем более работать, просто нереально. Постоянно нужно гасить матлаб через kill -9.

Ну ладно думаю, наверное, это Ubunta вредит. Она вроде как допустима для этой версии Vivado, но она скорее некий "пасынок". Законнорожденное дитя - RedHat. Не зря сам Xilinx на виртуалках с ней готовую среду ISE раздаёт. Дай думаю и я разверну систему на Red Hat. На версии 8.6, которая заявлена как поддерживаемая для Vivado 2022.2 в ug1483.

Дистрибутив Rhel оказалось довольно просто получить. Нужно просто зарегистрироваться у них на сайте. Правда, они отрицают существование нашей страны и пришлось выдумывать внешний почтовый адрес. И почту yandex.ru они не уважают, пришлось указать на google.com. При этом сотовый +7... их не смутил. Да, и интернет нужен быстрый. Версия 8.6 около 10 Гб, ссылка на скачивание годна 4 часа.

Ну и ниже - конспект. Выкладываю "как-есть", без "шлифовки". Это просто записи, которые делал в процессе работы.

-----------------------------------------------------------------------

Как устанавливал Vivado на виртуальную машину.

1. RedHat Linux 8.6
 - виртуальная машина Oracle VirualBox 7.0.14 r161095, имя машины Vivado_2022.2, тип машины Linux, Red Hat(64-bit).
 - память дисплея лучше сделать побольше, можно прямо 128 Мб. Чтоб можно было растягивать на монитор высокого разрешения.
 - память системы 12 Gb, 8 ядер, диск 120 Gb (только под Vivado нужно около 80-ти). Сначала сделал недостаточно, потом расширял диск через Vitrual box, Менеджер виртуальных носителей, потом пришлось ставить gparted-1.1.0-3.fc33.x86_64.rpm - именно конкретной версии старую, ей объединять занятую и расширенную файловую систему, и далее командами:
    Команды:
    df -Th
    lsblk
    sudo vgs - показывает одну rhel
    sudo lvextend -l +100%FREE /dev/mapper/rhel-root
    //Что-то из этого сработало
    не это: sudo resize2fs /dev/mapper/rhel-root
    sudo xfs_growfs /dev/mapper/rhel-root - похоже, это. Да, это!

 - язык установки Американский Английский
 - Storage configuration "automatic", root password "root". Хотя кошерно нужно было бы директорию /home сделать 100 Гб, а корневую / - 20 Гб и ставить matlab и vivado в папку /home/vivado не под рутом. Тогда бы и ярлыки сами корректно установились. И куча команд ниже была бы не через "sudo".
 - user Vivado User "vivado", pass "vivado".

2. Перазагрузилась.
 - при первом запуске нажал "License Information", "accept". "Finish Configuration".
 - выбрал язык, показался экран помощи.
 - подключил образ диска дополнений гостевой ОС. Он предложил автозапуск, я согласился.
 - не нашёл Kernel headers, попросил установить и запустить потом /sbin/rcvboxadd setup.
 - разрешил пользователю vivado делать sudo:
    # usermod -a -G wheel vivado
 - не помогло, не работает sudo. Перезагрузил систему, заработало.
 - отмонтировал диск с дополнениями гостевой ОС:
    sudo umount /run/media/vivado/VB0x_GAs_6.1.26
 - средствами виртуальной машины отключил диск дополнений, подключил диск с дистрибутивом ОС. Пришлось перезагрузить.
 - диск примонтировался в /run/media/vivado/RHEL-8-6-0-BaseOS-x86_64. Там в корне файл media.repo. Его скопировали в /etc/yum.repos.d/iso.repo, разрешили запись sudo chmod 644 /etc/yum.repos.d/iso.repo. И полностью его переписали.

[vivado@localhost ~]$ ls /etc/yum.repos.d/
iso.repo  redhat.repo
[vivado@localhost ~]$ more /etc/yum.repos.d/iso.repo
[iso-BaseOS]
name=Red Hat Enterprise Linux 8.6.0 ISO BaseOS
baseurl=file:///run/media/vivado/RHEL-8-6-0-BaseOS-x86_64/BaseOS
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[iso-AppStream]
name=Red Hat Enterprise Linux 8.6.0 ISO AppStream
baseurl=file:///run/media/vivado/RHEL-8-6-0-BaseOS-x86_64/AppStream
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


 - очистили кэш sudo yum clean all
 - sudo yum repolist enabled - показал два репозитория
 - sudo yum update - update repository index. Nothing to do, Complete!
 - ставим пакет:
    sudo yum --disablerepo="*" --enablerepo="iso-BaseOS" install kernel-headers.x86_64
 - установились!
 - аналогично ставим пакет "iso-BaseOS" glibc-devel.x86_64.
 - аналггично ставим пакет "iso-AppStream" gcc
 - оказывается, еще нужен "iso-BaseOS" kernel-devel. Тогда в папке /usr/src/kernels реально появятся хедеры.
 - оказывается, еще нужны "iso-BaseOS make, perl-IO-Zlib и "iso-AppStream" perl.
 - оказалось, что проще устанавливать командой
    sudo yum install perl
   тогда он автоматом зависимости подтягивает (обращается сразу к обоим репозиториям).
 - ещё понадобилась elfutils-libelf-devel.x86_64.
 - перезагрузил, отключил диск с дистрибутивом.
 - переустановил Oracle Virtual Box с 6.1.26 на 7.0.14 (что-то не билось, не помню, что).
 - запустил в виртуальной машине меню "Устройства/Upgrade Guest Additions..."
 - почистил после предыдущих многократных установок:
    sudo semanage fcontexst -d /opt/VBoxGuestAdditions-7.0.14/other/mount.vboxsf
    sudo restorecon /opt/VBoxGuestAdditions-7.0.14/other/mount.vboxsf
 - запустил установку дополнений по новой, всё отработало.
 - для полного счастья убрал сообщение о необходимости зарегистрироваться:

    Попробовал так, sudo vi /etc/yum/pluginconf.d/subscription-manager.conf, там enabled -> 0. Это не помогло, тогда

    sudo vi /etc/xdg/autostart/org.gnome.SettingsDaemon.Subscription.desktop и там:
    
[Desktop Entry]
Type=Application
Name=GNOME Settings Daemon's subscription manager plugin
Exec=/usr/libexec/gsd-subman
OnlyShowIn=GNOME;
NoDisplay=true    ->false
X-GNOME-Autostart-Phase=Initialization
X-GNOME-Autostart-Notify=true    ->false
X-GNOME-AutoRestart=true    ->false

 - перезагрузил. Но сообщение о необходимости зарегистрироваться так и не победилось:(
 - настроил русскую клавиатуру - "Activities/Settings/Region & Language/Input Sources/+", "Russian".

3. Matlab
 - подключил диск как внешнюю папку, чтобы был доступ, добавил себя в группу
    sudo usermod -aG vboxsf vivado
    пришлось перезагрузить, чтобы был эффект
- монтируем дистрибутив:
    mkdir iso
    sudo mount /media/sf_F_DRIVE/LocalDistrib/Matlab910Lin/Matlab910R2021a_Lin64.iso iso -o loop
- запускаем
    cd iso
    ./install
    Падает с runtime error: Unable to launch the MATLABWindow application.
    Нужно удалить файл bin/glnxa64/libcrypto.so. Для этого всё скопировал, удалил файл и линк на него.
- запустил
    sudo ./install (будем ставить в директорию /opt/Matlab, в домашней места нет)
- согласился с лицензией
- ввёл File Installation Key.
- файл лицензии не указывал
- выбрал пакеты (отнюдь не все, опасно, может Model Composer не заработать!):
>> matlab.addons.installedAddons

ans =

  7×4 table

               Name                Version    Enabled    Identifier
    ___________________________    _______    _______    __________

    "LTE Toolbox"                  "3.5"       true         "LS"   
    "Communications Toolbox"       "7.5"       true         "CM"   
    "Simulink"                     "10.3"      true         "SL"   
    "Signal Processing Toolbox"    "8.6"       true         "SG"   
    "5G Toolbox"                   "2.2"       true         "5G"   
    "DSP System Toolbox"           "9.12"      true         "DS"   
    "Control System Toolbox"       "10.10"     true         "CT"   
- задал папку /opt/Matlab/R2021a. Погнала установка.
- скопировал libmwlmgrimpl.so и лицензию, сделал им правильные права на чтение всем.
- matlab запустился.

4. Vivado - ug973, ug1144.
- возможно, придётся почистить
    /root/.config/menus/applications-merged от файлов:
    'Xilinx Design Tools.menu'
    'Xilinx Design Tools One More.menu'

- нужно установить библиотеки (иначе зависнет при установке):

    ncurses-compat-libs - есть в репозитории iso-BaseOS, установили из репы через yum install.

    libtinfo5 libtinfo5-dev - скопировал в корневую папку установщика из уже предварительно недоустановленного каталога
    Vitis_HLS/2022.2/lnx64/tools/clang-3.9/lib два файла libtinfo.so.5 и libtinfo.so.5.7, туда, где лежит ./xsetup

- sudo ./xsetup - заработал! Не запросил java! Нажал кнопку игнорировать подключение к интернету.
- Где-то нужно отключить "Optimize Disk Usage", а то может заклинить. Я так и не нашел где, но и не заклинило.
- Выбрал первый продукт для установки - "Vitis", он даст возможность добавить и "Vivado", и "Model Composer".
- Снял флажок "Acquier or Manage a License key
- Инсталлятор напомнил, что драйверы для кабелей устанавливать отдельно через UG973.
- Согласился с кучей лицензий
- Задал папку установки /opt/Xilinx. Пошла установка, копирование файлов длилось 37 минут.
- Если появится окно "Obtain License" - просто выбрал в меню "Exit"
- Может подвиснуть установка на фазе "Generating Installed Device List". На это целая наука - vivado-installer-stuck.md, а может быть, еще установить библиотеки:

libtinfo5 libtinfo5-dev
libncurses5 libncurses5-dev libncursesw5-dev
ncurses-compat-libs - есть в репозитории iso-BaseOS, установили из репы.

- Закончилась инсталляция
- Скопировал vivado_license.lic в папку ~/.Xilinx.
- скопировал меню:
    sudo cp -r /root/.config/menus ~/.config/

- ещё нужно шорткаты из папки /root/.local/share/applications в ~/.local/share/applications

5. Устанавливаем драйверы программатора

- Из-под суперпользователя:
    cd ${vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers/
    ./install_drivers

- Отработало мгновенно, вот что напечатало:

INFO: Installing cable drivers.
INFO: Script name = ./install_drivers
INFO: HostName = localhost.localdomain
INFO: Current working dir = /opt/Xilinx/Vivado/2022.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
INFO: Kernel version = 4.18.0-372.9.1.el8.x86_64.
INFO: Arch = x86_64.
Successfully installed Digilent Cable Drivers
--File /etc/udev/rules.d/52-xilinx-ftdi-usb.rules does not exist.
--File version of /etc/udev/rules.d/52-xilinx-ftdi-usb.rules = 0000.
--Updating rules file.
--File /etc/udev/rules.d/52-xilinx-pcusb.rules does not exist.
--File version of /etc/udev/rules.d/52-xilinx-pcusb.rules = 0000.
--Updating rules file.

INFO: Digilent Return code = 0
INFO: Xilinx Return code = 0
INFO: Xilinx FTDI Return code = 0
INFO: Return code = 0
INFO: Driver installation successful.
CRITICAL WARNING: Cable(s) on the system must be unplugged then plugged back in order for the driver scripts to update the cables.

6. Запуск Vivado и Model Composer

Запуск Vivado из командной строки:

    source /opt/Xilinx/Vivado/2022.2/settings64.sh
    /opt/Xilinx/Vivado/2022.2/bin/vivado

Запуск Model Composer из командной строки:

    source /opt/Xilinx/Model_Composer/2022.2/settings64.sh
    /opt/Xilinx/Model_Composer/2022.2/bin/model_composer -matlab /opt/Matlab/R2021a/

При запуске Model Composer получаем:
    awk: symbol lookup error: awk: undefined symbol: mpfr_z_sub
и далее прочие ошибки. Начал копать:
- в инетах немного чего есть, нашел полезные команды strace и ldd чтобы понять, какие библиотеки вызываются. например, так:
    ldd /usr/bin/awk
     Народ грешит на то, что то libgmp и libmpfr как-то не бъются. Но команды особо не пригодились.

- начал с /opt/Xilinx/Model_Composer/2022.2/bin/model_composer - это скрипт sh, который, при беглом взгляде, вроде вызывает modelcomposerArgs.sh. Полез туда, там уже есть слова про awk:
 
      # Add a symlink from /usr/lib/.../libmpfr.so.4 to wrapper directory for Ubuntu OS.
      # This libmpfr.so.4 should be used by awk when sysgen loader script is launched.

поставил перед вызовом этого куска кода просто распечатку

echo $XIL_LINUX_PLATFORM;

запустил повторно model_composer, получил, что XIL_LINUX_PLATFORM у меня "Default". Это немного странно, поскольку дальше она сравнивается с "Ubuntu" - должно быть осмысленное значение. Откуда это значение берётся? Вроде как вызовом

XIL_LINUX_PLATFORM=$("$XMC_LDLIBPATH_SCRIPT")

где XMC_LDLIBPATH_SCRIPT="$XMC_PRODUCT_ROOT/bin/ldlibpath.sh"

лезу в ldlibpath.sh, там вижу, что версия ОС получается как выход команды lsb_release. Пробую и получаю:

[vivado@localhost bin]$ lsb_release
bash: lsb_release: command not found...

Аааааа........ Сутки долботни!!! Ааааа.... Как не хотелось скрипты дебажить! Аааааа.....

Его ещё нужно поискать, в каком пакете лежит:
    sudo yum whatprovides lsb_release
получаем, что в
    redhat-lsb-core
тогда:
    sudo yum install redhat-lsb-core

установилось. В скрипте ldlibpath.sh команда lsb_release используется с ключами -i, -r:

[vivado@localhost bin]$ lsb_release
LSB Version:    :core-4.1-amd64:core-4.1-noarch
[vivado@localhost bin]$ lsb_release -i
Distributor ID:    RedHatEnterprise
[vivado@localhost bin]$ lsb_release -r
Release:    8.6

- Проверил по распечаткам из modelcomposerArgs.sh - да, другое дело:
    XIL_LINUX_PLATFORM - Rhel 8
    XMC_IS_REDHAT8 - True
- Вернул содержимое исходного файла modelcomposerArgs.sh из резервной копии, на всякий случай вернул ему время модификации:

[vivado@localhost bin]$ date -r unsetldlibpath.sh
Fri Oct 14 07:19:35 EDT 2022

[vivado@localhost bin]$ sudo touch -mat 202210140719.35 modelcomposerArgs.sh

7. Скопировал ещё со старого Линукса конфиг EBAZ4205, чтоб был.
    /opt/Xilinx/Vivado/2022.2/data/boards/board_files/ebaz4205/1.0
    файлы board.xml  ebaz4205.jpg  part0_pins.xml  preset.xml.

8. Matlab (Model Composer) запускается, но "Examples and Tutorials" по предлагаемой ссылке - не запускается. Даже просто Simulink иконкой не запускается. Ошибка:
Caught "std::exception" Exception message is:
Error loading /opt/Matlab/R2021a/bin/glnxa64/builtins/shared_dastudio_builtins/mwdastudio_builtinimpl.so. /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b: Success: Success

(привет от инсталляции!)

Переименовал ещё библиотеку в папке установки (чтоб она не использовалась, но в то же время была на всякий случай) /opt/Matlab/R2021a/bin/glnxa64
    sudo mv libcrypto.so.1.1 libcrypto.so.1.1.orig
    sudo rm libcrypto.so.1
    sudo ln -s libcrypto.so.1.1.orig libcrypto.so.1.orig

Simulink запустился! "Examples and Tutorials" запустились! При первом запуске предложил выбрать папку, куда распаковать, я выбрал домашнюю /home/vivado, там создалась папка Vitis_Model_Composer-2022.2 и в ней примеры и обучалки.

9. При работе Model Composer возникают варнинги вида:

Warning: P-file /opt/Xilinx/Model_Composer/2022.2/simulink/vmcHub.p is older than MATLAB file
/opt/Xilinx/Model_Composer/2022.2/simulink/vmcHub.m.
/opt/Xilinx/Model_Composer/2022.2/simulink/vmcHub.p may be obsolete and may need to be
regenerated.
Type "help pcode" for information about generating P-files.
> In vmcHubCallback

Чтобы не мучиться, изменил времена всем в папке /opt/Xilinx/Model_Composer/2022.2/simulink

[vivado@localhost simulink]$ sudo touch -mat 202210141023.44 *.m
[vivado@localhost simulink]$ sudo touch -mat 202210141023.45 *.p

О Боже, та же байда в папке /opt/Xilinx/Model_Composer/2022.2/simulink/hdl/

    cd hdl
    И копипаст двух предыдущих команд touch

В итоге, по крайней мере Lab1_1.slx, Lab1_2.slx, Lab1_3.slx, Lab1_4_1.slx, Lab1_4_2.slx отработали без каких-либо зависаний как в режиме simulink моделирования, так и в режиме генерации кода HDL.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"а бросать нельзя - нужен результат"😀.

В американских фильмах после такого герой говорит - Господи я же смогу стать президентом Америки☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...