Данный пост можно рассматривать как дополнение к "КОМПАС-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)
milssky
18.09.2021 14:45Библиотека стандартных изделий нормально работает?
checkpoint Автор
18.09.2021 15:55+1Глубоко не вдавался, но с виду - все в порядке.
Я сейчас забуксовал с другой проблемой КОМПАСа - лицензия куплена на версию 18.1, а установлена 20.0 и она не подхватывается. Написал в саппорт вопрос "можно ли проапгрейдить лицензию и сколько это будет стоить", жду ответа.
milssky
18.09.2021 18:14У меня как факт она просто не работает. Причем остальные библиотеки машиностроительной конфигурации абсолютно нормально функционируют.
checkpoint Автор
18.09.2021 18:27Я смогу проверить более детально, как только решу вопрос с лицензией. Сейчас мой КОМПАС работает в режиме "read only" с массой ограничений. Фактически я его использую только как просмотрщик уже созданных моделей.
MixaSg
18.09.2021 20:31Я всегда любил фряху. Ну как "всегда" - попробовал 4.8, но настоящей любовью была 5.2.1. Не считая мимолетных увлечений NetBSD с 1.6 до 2.0 (думал, никогда не дождусь). Потом 9.0 и так до 13 через build world а потом freebsd_update, но и это прошло. А сейчас живу на ubuntu, как и мои дети. Все проходит, и это пройдет.
robert_ayrapetyan
19.09.2021 07:34+1Тоже мучался фрей по религиозным причинам с 8 по 12 версию. Вот уже как пол года переполз в линукс и ни разу не то что не пожалел, а и не вспомнил даже. Этот их порт вайна без поддержки 64 бит который перебрасывается как горячая картошка, и необходимость покодить под мобильные устройства закончили мои мучения.
kompas_3d
20.09.2021 18:256. На сайте АСКОНа - разрабочика пакета КОМПАС-3D, по какой-то причине 32-х битная версия пакета не доступна, но указано, что любой желающий может получить её отправив запрос по электронной почте на need_32@ascon.ru. Я написал запрос, отправил и ссылка пришла в ту же секунду - ответил робот.
Да всё в принципе доступно. Мы планируем в будущем убрать х86 версию, поэтому считаем количество скачиваний отдельно.
Starwalker
23.09.2021 21:42Преклоняюсь перед упорством автора и сам люто поддерживаю open source, free software и все такое, но вот это:
Дело в том, что мне по долгу службы часто приходится иметь дело с 3D моделями, для этой цели пару лет назад была приобретена сетевая лицензия на КОМПАС-3D, а так же оформлена подписка на Fusion 360. После перехода на фрю, оба этих инструмента мне стали недоступны
лишь подтверждает, что не стоит микроскопом гвозди забивать. Все же для каждой задачи - свой инструмент и если под виндой ваши инструменты работают лучше всего и без танцев с бубном, нужно использовать винду. А для души лучше отдельный комп или на худой конец dual-boot в любимую ОС.
EDIT: ЛОЛ, написал все это и понял, что пишу из Арча, на котором корпоративная винда со всеми тулзами, которые работают лишь под виндой, завернута в виртуалку :-D Юниксоиды неисправимы ;-)
Kuch
Тогда чем FreeBSD для вас лучше Linux? И тем более винды? Просто эта статья как раз о том, что есть огромнейший минус.
Чистое любопытство, может я тоже перейду.
checkpoint Автор
Наверное проще сказать чем 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 это радость и Божья благодать.
robesper
холивар можно считать открытым?!)
Если серьёзно, поддерживаю @checkpoint, так как пользовался фряшкой и это очень классная ОС. У правильно настроенной системы - очень низкий процент "падения" - работает, без преувеличения, годами. Впрочем и винда, и линукс могут работать годами, обратного я не утверждаю. Как-то сравнивал на одной и той же машине отклик веб-серверов (голых apache, nginx, без подключенных модулей), голой samba, и на фряшной машине отклик был побыстрее, чем в ubuntu. Единственный ощутимый минус - слабое комьюнити.
Хотя использовать FreeBSD как десктоп даже для меня - извращение. Основной секс - драйвера, впрочем как и на любом линухе. Хотя помню еще с флешем на иксах ковырялся долго.
checkpoint Автор
У меня есть такое смутное подозрение, что "проблема с драйверами во фре" это такая мифологическая байка уходящая корнями в глубь веков, которую специально подпитывают и передают "из уст в уста" фрюховоды, что бы линуксоиды держались подальше от этой ОС и не захламляли её бесполезными фичами. ;-)
Да, драйверов во фре поменьше, но все основные брэнды поддерживаются "из коробки". А если говорить о драйверах для сетевых карт, то во фре их список будет поболее чем в линуксе, так как фря широко распространена в узких кругах производителей телекоммуникационного оборудования. В общем, если кто надумает ставить фрю на десктоп - упражняйтесь на "номальном" компе или на ноутбуке более-менее известных брэндов.
У меня ноутбук Asus VX7, в целом FreeBSD 13.0 на него стала "с пол пинка". Пришлось немного полистать Handbook на предмет запуска Xorg с картой GeForce GTX 560M - именно с этой моделью карты есть нюанс, но и он разрешился. В итоге аппаратный OpenGL работает, аппаратные видео кодеки поддерживаются (Ютуб сморится в FullHD). Осталась одна нерешенная проблема - не работает suspend/resume, но на этому ноуте с Ubuntu 20 точно такая же беда и похоже что она общая для всех *nix систем.
robesper
@checkpoint, Вы меня неправильно поняли. Я не выделяю ситуацию с драйверами во FreeBSD особняком от прочих *nix.
По поводу десктопа не тороплюсь согласиться. Для интеллигентных людей типа нас с Вами, возможно *nix-система в качестве десктопа - это вариант. Но не для рядового криворукого пользователя. Пока что я видел только печальный опыт работы пользователей с линухами.
checkpoint Автор
Ну я никого не агитирую сползать с винды и ставить фрюху, я просто написал инструкцию для таких же маньяков как я, и даже приписку в конце статьи сделал. :-)