mitro 0 6 марта Опубликовано 6 марта · Жалоба Добрый день! Хотел немного "прокачать скиллы", заняться самообразованием, пройти 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 7 марта Опубликовано 7 марта · Жалоба "а бросать нельзя - нужен результат"😀. В американских фильмах после такого герой говорит - Господи я же смогу стать президентом Америки☺️ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться