Данный пост можно рассматривать как дополнение к "КОМПАС-3D и Linux → Часть 1"

Небольшое отступление.

К фрюхе я неравнодушен давно, года с 1996-го, но использовал её ранее только как серверную ОС. О том, что бы установить FreeBSD на рабочий ноутбук, как -то даже и мысли не возникало. Но времена меняются. С месяц назад я просто почувствовал, что пора... пора расстаться с этим недоразумением под названием Windows и накатил FreeBSD 13.0 на свой рабочий ASUS VX7. Почему не Linux ? Потому, что фрюха - это наше все! О том, как проходил процесс пуско-наладки FreeBSD на отдельно взятом ноутбуке можно написать не один пост, но сейчас вопрос не об этом.

Дело в том, что мне по долгу службы часто приходится иметь дело с 3D моделями, для этой цели пару лет назад была приобретена сетевая лицензия на КОМПАС-3D, а так же оформлена подписка на Fusion 360. После перехода на фрю, оба этих инструмента мне стали недоступны и я вынужден был использовать FreeCAD. К сожалению, приходится констатировать факт - FreeCAD урод от рождения, пользоваться им можно, но крайне тяжело. Это вынудило меня потратить некоторое время на поиски альтернативного решения, а именно - как заставить Fusion 360 или КОМПАС-3D работать под FreeBSD в среде Wine.

Несколько бессонных ночей ушло на то, что бы выяснить, что Wine под FreeBSD, по идеологическим соображениям, не может исполнять приложения PE32 (смесь 32 и 64 битного кода), а Fusion оказался именно таким и другим уже не будет (т.е. чисто 32-х битной версии Fusion-а нет). К слову сказать, Fusion 360 под Linux-ом прекрасно работает в среде Wine. Разочарованный таким положением дел я принялся изучать эту же тему с КОМПАСом и, не без удивления, обнаружил статью на Хабре с подробной инструкцией как запустить КОМПАС-3D под Linux-ом. Проделав незатейливые манипуляции, выяснил, что КОМПАС таки работает под FreeBSD! Но есть один нюанс - видео карта nVidia GeForce GTX 560M в моём ноутбуке с которой Wine, по-умолчанию, не дружит. Выглядит это так: виндовое приложение (КОМПАС) запускается и даже делает вид что работает, но вместо 3D графики мы видим черное (серое) поле, т.е. 3D графика просто не рендерится. Отключение использования аппаратного ускорителя в настройках КОМПАСа не дало никакого эффекта. Сам факт того, что КОМПАС запускается меня воодушевил на дальнейшие поиски и это привело меня на форум разработчиков FreeBSD где обсуждается необходимость патчить Wine добавлением 32-битных драйверов от проприетарного драйвера nVidia. Более того, монтейнеры порта emulators/i386-wine и emulators/i386-wine-devel добавили в него скрипт files/nvidia.sh который самостотельно находит проприетарный видео-драйвер и накатывает патч, после чего wine можно собирать и устанавливать и все будет как в сказке.

И так, инструкция по запуску КОМПАС-3D V20 под FreeBSD 13.0 в среде Wine32.

Прежде стоит отметить, что запускать будем только 32-х битную версию КОМПАС-3D, так как 64-х битная это все тот же PE32 и работать она не будет до тех пор, пока в порт Wine не вернут поддержку PE32. А значит, запускать будем под wine32 версии 6.12 (пакет emulators/i386-wine-devel).

1. Установить проприетарный видео драйвер от nVidia. В моем случае это порт x11/nvidia-driver-390:

# cd /usr/ports/x11/nvidia-driver-390
# make && make install

2. Добавить загрузку ядерных модулей драйвера, для чего в файл /boo/loader.conf добавить:

nvidia_load="YES"
nvidia-modset_load="YES"

3. Дать Xorg-у указание использовать проприетарный драйвер, для этого в /etc/X11/xorg.conf в секции Device указать "nvidia" как показано ниже:

EndSectionSection "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID    "PCI:1:0:0"
EndSection

4. Убедиться в том, что драйвер загружен, а команда glxinfo -В выдает подобное:

$ glxinfo -B

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 3072 MB
    Total available memory: 3072 MB
    Currently available dedicated video memory: 2854 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 560M/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 390.144
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5.0 NVIDIA 390.144
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.144
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

5. Пропатчить и установить Wine 32-х битный:

# cd /usr/ports/emulators/i386-wine-devel/
# sh files/nvidia.sh 
===> Patching i386-wine to work with x11/nvidia-driver:
=> Detected i386-wine: 6.12,1
=> Detected nvidia-driver: 390.144
=> Extracting NVIDIA-FreeBSD-x86-390.144.tar.gz to /usr/local/lib32...
x libnvidia-glcore.so.1
x libnvidia-tls.so.1
x libGL.so.1
=> Cleaning up...
===> i386-wine-6.12,1 successfully patched for nvidia-driver-390.144

# make && make install

6. На сайте АСКОНа - разрабочика пакета КОМПАС-3D, по какой-то причине 32-х битная версия пакета не доступна, но указано, что любой желающий может получить её отправив запрос по электронной почте на need_32@ascon.ru. Я написал запрос, отправил и ссылка пришла в ту же секунду - ответил робот.

7. Скачиваем инсталляшку размером 1.7 ГБ.

8. Пока инстлляшка КОМПАСа скачивается, займемся подготовкой среды Wine. Нам потребуется установить следующие пакеты: dotnet472, d3dcompiler_47, vcrun2015 и corefonts c помощью утилиты winetricks:

Установим саму утилиту winetricks:

$ sudo pkg install winetricks

Устанавливаем пакеты:

$ winetricks --force -q dotnet472 d3dcompiler_47 vcrun2015 corefonts

Замечание: все скачаные утилитой winetricks пакеты будут установлены к пользователю в домашний каталог в подкаталог ~/.wine

9. Запускаем конфигуратор winecfg и указываем тип операционной системы по-умолчанию: Windows 7. В этой же утилите, по желанию, можно подкрутить размер системного шрифта для win32 приложений и прочие настройки.

10. Распаковываем скачанную инсталляшку. Cодержимое скачанного архива не содержит подкаталога, а значит команда unzip распакует вам десяток файлов в текущий каталог, что несколько "не айс". По этому имеет смысл создать временный каталог, скажем compas_install_dir, и распаковать инсталляшку в него.

11. Запускаем инсталлятор КОМПАС-а:

$ cd compas_install_dir
$ wine ./Setup.exe

и следуем его инструкциям.

После завершения инсталлятора, на рабочем столе (Desktop-е) появится иконка для запуска приложения. Если же по какой-то причине она не появилась, то КОМПАС можно запустить "от руки":

$ wine ~/.wine/drive_c/"Program Files/ASCON/KOMPAS-3D v20/Bin/KOMPAS.Exe"

Маловероятно, что найдутся желаюшие запускать КОМПАС-3D под FreeBSD, но все же я надеюсь, что данная инструкция будет кому-то полезной для запуска других виндовых приложений в среде Wine под FreeBSD на машинах с карточками nVidia.

Комментарии (14)


  1. Kuch
    18.09.2021 08:42

    Тогда чем FreeBSD для вас лучше Linux? И тем более винды? Просто эта статья как раз о том, что есть огромнейший минус.

    Чистое любопытство, может я тоже перейду.


    1. checkpoint Автор
      18.09.2021 15:28
      +10

      Наверное проще сказать чем FreeBSD хуже Linux-а ;-).

      Мой выбор в пользу FreeBSD обусловлен чисто религиозными пристрастиями, такими как:

      • FreeBSD - монолитная независимая операционная система в которой всё разложено по полочка. Linux, на против, как операционная система не существует. Linux - ядро вокруг которого выстроено бесконечное количество дистрибутивов и клонов, от чистого и стройного Debian до радикального Android. Порой складывается такое впечатление, что каждый новоиспеченный линуксоид считает своим долгом засетапить новый дистрибутив, перетоссовав местами разные фичи в только одному ему известном "правильном" порядке.

      • Средства управления во FreeBSD от релиза к релизу не меняются. Все ручки, кпнопки и крутилки находятся на своих местах, там где они были двацать или тридцать лет назад, они того же самого цвета и той же самой формы. Это позволяет пользоваться системой на годами выстроенных рефлексах, не задумываясь в каком ты сейчас дистрибутиве, где и как данная фича расположена (если вообще не убрана).

      • Во FreeBSD есть полноценная, всегда свежая и актуализированная документация в виде man и Handbooks, что позволяет решать проблемы самостоятельно, без доступа в Интернет. К Linux-based ОС обязательно должен прилагаться Google, Stackexchange и man стыренный из FreeBSD. И даже в этом случаем найденая информация в подавляющем большинстве случаев будет неактуальной и вводящей в заблуждение.

      • Во FreeBSD нет systemd и iptables. Зато есть ZFS, Netgraph, IPFW, IPFIREWALL и несколько разных TCP стэков заточенных под различные нужды.

      • Каждый новый релиз Linux-based ОС это стресс для пользователя. Каждый новый релиз FreeBSD это радость и Божья благодать.


      1. robesper
        18.09.2021 21:47
        +1

        холивар можно считать открытым?!)

        Если серьёзно, поддерживаю @checkpoint, так как пользовался фряшкой и это очень классная ОС. У правильно настроенной системы - очень низкий процент "падения" - работает, без преувеличения, годами. Впрочем и винда, и линукс могут работать годами, обратного я не утверждаю. Как-то сравнивал на одной и той же машине отклик веб-серверов (голых apache, nginx, без подключенных модулей), голой samba, и на фряшной машине отклик был побыстрее, чем в ubuntu. Единственный ощутимый минус - слабое комьюнити.

        Хотя использовать FreeBSD как десктоп даже для меня - извращение. Основной секс - драйвера, впрочем как и на любом линухе. Хотя помню еще с флешем на иксах ковырялся долго.


        1. checkpoint Автор
          18.09.2021 22:36
          +1

          Хотя использовать FreeBSD как десктоп даже для меня - извращение. Основной секс - драйвера, впрочем как и на любом линухе. Хотя помню еще с флешем на иксах ковырялся долго.

          У меня есть такое смутное подозрение, что "проблема с драйверами во фре" это такая мифологическая байка уходящая корнями в глубь веков, которую специально подпитывают и передают "из уст в уста" фрюховоды, что бы линуксоиды держались подальше от этой ОС и не захламляли её бесполезными фичами. ;-)

          Да, драйверов во фре поменьше, но все основные брэнды поддерживаются "из коробки". А если говорить о драйверах для сетевых карт, то во фре их список будет поболее чем в линуксе, так как фря широко распространена в узких кругах производителей телекоммуникационного оборудования. В общем, если кто надумает ставить фрю на десктоп - упражняйтесь на "номальном" компе или на ноутбуке более-менее известных брэндов.

          У меня ноутбук Asus VX7, в целом FreeBSD 13.0 на него стала "с пол пинка". Пришлось немного полистать Handbook на предмет запуска Xorg с картой GeForce GTX 560M - именно с этой моделью карты есть нюанс, но и он разрешился. В итоге аппаратный OpenGL работает, аппаратные видео кодеки поддерживаются (Ютуб сморится в FullHD). Осталась одна нерешенная проблема - не работает suspend/resume, но на этому ноуте с Ubuntu 20 точно такая же беда и похоже что она общая для всех *nix систем.


          1. robesper
            20.09.2021 12:44
            +1

            @checkpoint, Вы меня неправильно поняли. Я не выделяю ситуацию с драйверами во FreeBSD особняком от прочих *nix.

            По поводу десктопа не тороплюсь согласиться. Для интеллигентных людей типа нас с Вами, возможно *nix-система в качестве десктопа - это вариант. Но не для рядового криворукого пользователя. Пока что я видел только печальный опыт работы пользователей с линухами.


            1. checkpoint Автор
              20.09.2021 14:10
              +1

              Ну я никого не агитирую сползать с винды и ставить фрюху, я просто написал инструкцию для таких же маньяков как я, и даже приписку в конце статьи сделал. :-)


  1. milssky
    18.09.2021 14:45

    Библиотека стандартных изделий нормально работает?


    1. checkpoint Автор
      18.09.2021 15:55
      +1

      Глубоко не вдавался, но с виду - все в порядке.

      Я сейчас забуксовал с другой проблемой КОМПАСа - лицензия куплена на версию 18.1, а установлена 20.0 и она не подхватывается. Написал в саппорт вопрос "можно ли проапгрейдить лицензию и сколько это будет стоить", жду ответа.


      1. milssky
        18.09.2021 18:14

        У меня как факт она просто не работает. Причем остальные библиотеки машиностроительной конфигурации абсолютно нормально функционируют.


        1. checkpoint Автор
          18.09.2021 18:27

          Я смогу проверить более детально, как только решу вопрос с лицензией. Сейчас мой КОМПАС работает в режиме "read only" с массой ограничений. Фактически я его использую только как просмотрщик уже созданных моделей.


  1. MixaSg
    18.09.2021 20:31

    Я всегда любил фряху. Ну как "всегда" - попробовал 4.8, но настоящей любовью была 5.2.1. Не считая мимолетных увлечений NetBSD с 1.6 до 2.0 (думал, никогда не дождусь). Потом 9.0 и так до 13 через build world а потом freebsd_update, но и это прошло. А сейчас живу на ubuntu, как и мои дети. Все проходит, и это пройдет.


  1. robert_ayrapetyan
    19.09.2021 07:34
    +1

    Тоже мучался фрей по религиозным причинам с 8 по 12 версию. Вот уже как пол года переполз в линукс и ни разу не то что не пожалел, а и не вспомнил даже. Этот их порт вайна без поддержки 64 бит который перебрасывается как горячая картошка, и необходимость покодить под мобильные устройства закончили мои мучения.


  1. kompas_3d
    20.09.2021 18:25

    6. На сайте АСКОНа - разрабочика пакета КОМПАС-3D, по какой-то причине 32-х битная версия пакета не доступна, но указано, что любой желающий может получить её отправив запрос по электронной почте на need_32@ascon.ru. Я написал запрос, отправил и ссылка пришла в ту же секунду - ответил робот.

    Да всё в принципе доступно. Мы планируем в будущем убрать х86 версию, поэтому считаем количество скачиваний отдельно.


  1. Starwalker
    23.09.2021 21:42

    Преклоняюсь перед упорством автора и сам люто поддерживаю open source, free software и все такое, но вот это:

    Дело в том, что мне по долгу службы часто приходится иметь дело с 3D моделями, для этой цели пару лет назад была приобретена сетевая лицензия на КОМПАС-3D, а так же оформлена подписка на Fusion 360. После перехода на фрю, оба этих инструмента мне стали недоступны

    лишь подтверждает, что не стоит микроскопом гвозди забивать. Все же для каждой задачи - свой инструмент и если под виндой ваши инструменты работают лучше всего и без танцев с бубном, нужно использовать винду. А для души лучше отдельный комп или на худой конец dual-boot в любимую ОС.

    EDIT: ЛОЛ, написал все это и понял, что пишу из Арча, на котором корпоративная винда со всеми тулзами, которые работают лишь под виндой, завернута в виртуалку :-D Юниксоиды неисправимы ;-)