Wine не хватает памяти
На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.
Типична такая ситуация: есть своп (swap, раздел подкачки), который начинает использоваться при нехватке оперативной памяти, и размещен он на HDD, то есть жестком диске с низкой скоростью чтения информации. В таких ситуациях операционная система начинает тормозить, подвисает курсор мыши, сложно переключиться в соседнюю tty и т.д. Почему? Потому что планировщик ядра Linux не может выполнить запрос на какое-то действие в запущенной программе, пока не получит доступ к ее оперативной памяти, выполнить следующее действие тоже не может, образовывается очередь из запросов на чтение с диска, и система «подвисает» именно потому, что обработка очереди происходит гораздо медленнее, чем этого хочет пользователь.
Если в такой момент запустить htop или uptime , то показатель Load Average (LA) будет очень высоким, несмотря на низкую загруженность ядер процессора. Сочетание высокого Load Average и низкой загрузки процессора говорят о забитой очереди процессора.
Часто в интернете советуют изменить параметр ядра Linux vm.swappiness . Узнать его текущее значение на вашей системе можно так:
Ответ будет 60 почти наверняка. Это значит, что ядро Linux начинает свопить редко используемые страницы оперативной памяти, когда использование свободной оперативной памяти достигает 100%-60%=40%. Часто встречаются рекомендации поставить, например, vm.swappiness=10, чтобы своп не начинал использоваться, пока загрузка ОЗу не достигнет 90%. На самом деле не нужно трогать vm.swappiness, вы не умнее разработчиков ядра Linux, которые не просто так поставили 60 по умолчанию. Почему?
Представьте, что у вас всего 4 ГБ оперативной памяти, из них прямо сейчас занято 3 ГБ, vm.swappiness=10, своп на жестком диске (HDD) занят на 0%, и вы открываете тяжелый сайт в браузере, для чего требуется больше, чем имеющийся свободный 1 ГБ, например, 2 ГБ. Операционная система начинает в экстренном порядке отправлять в своп как минимум 0.5 ГБ (а по факту больше), чтобы можно было выделить браузеру необходимое количество оперативной памяти. Эта процедура становится самой приоритетной задачей, и придется пожертвовать даже движениями курсора мыши, чтобы ее выполнить как можно быстрее. Вы ждете. Проходит 5 минут, и система развисает, потому что окончила процедуру 100% загрузки очереди доступа к медленному жесткому диску, на котором размещена оперативная память (своп). При дефолтном vm.swappiness=60 редко используемые страницы памяти сбрасываются в своп заблаговременно, и резкого зависания на 5-10 минут не происходит.
UPD. В комментарии подсказывают, что это не точное описание работы vm.swappiness.
Быстро вырубить программу, перегружающую ОЗУ. Запас ОЗУ для SSH
Бывает такое, что даже при vm.swappiness=60 какому-то черту, как правило, браузеру, требуется очень много оперативной памяти, и система подвисает. Решается очень просто: сочетание клавиш Alt+SysRq(PrintScreen)+F заставляет oom_killer принудительно включиться и вырубить процесс, который на момент вызова занимает больше всего памяти. Строго 1 процесс на 1 вызов, и строго обязательно что-то будет убито. Если много раз подряд нажмете, то, скорее всего, перезапустится графическая сессия. Событие убиения процесса отражается в dmesg красным цветом.
Однако эта штука, называющаяся Magic SysRq, из коробки отключена в большинстве дистрибутивов, потому что непривилегированный пользователь может убить абсолютно любой процесс. За это отчечает параметр ядра kernel.sysrq , узнать его текущее значение можно так:
Для работы Alt+SysRq+F нужно kernel.sysrq=1. Для этого отредатируем параметры ядра, расположенные в файлах /etc/sysctl.conf (обычно симлинк на /etc/sysctl.d/99-sysctl.conf) и /etc/sysctl.d/*.conf. Лучше всего создать отдельный файл:
sudo nano /etc/sysctl.d/99-dumalogiya.conf
Нажмем Ctrl+O, Enter для сохранения.
В случае с браузером Chromium Alt+SysRq(PrintScreen)+F будет вырубать по одной вкладке, не закрывая сам браузер, что очень удобно.
Сочетания клавиш Magic SysRq перехватываются напрямую ядром Linux, поэтому работают даже когда из-за очереди процессора подвисает X-сервер.
vm.admin_reserve_kbytes — это размер оперативной памяти в килобайтах, который будет держаться гарантированно свободным для административных нужд, например, работы SSH. По умолчанию что-то около 8 МБ. Целесообразно увеличить, число 60192 почти от балды.
Wine использует только 2 гига оперативки. Ограничение для 32битной windows, я так понимаю 4 гига, 3 из которых он может выделять приложению.
Как заставить wine выделить 3 гига на приложение? В диспетчере задач выдается тоже только 2 гига.
ubuntu 13.04 x86 wine1.6 (1.7.1)
Ограничение для 32битной windows, я так понимаю 4 гига, 3 из которых он может выделять приложению.
Не может. 3Gb выделяются только приложениям, собранным с ключом largeaddressaware. А таких единицы.
Как заставить wine выделить 3 гига на приложение?
написать патч, погуглить тех кто уже написал патч или на худой конец завести багу
Т.е. если поставить 64битную систему то будет выделять?
largeaddressaware имеется в виду для виндовых приложений?
А как быть с тем, что в диспетчере задач показывается 2 гига памяти всего?
Demige ★ ( 13.09.13 12:45:50 )
Последнее исправление: Demige 13.09.13 12:49:14 (всего исправлений: 1)
Так тут же не windows, а wine. Он тоже ограничивает?
Да, это особенность архитектуры. 32 бита могут адресовать только 4 гига. 2 можно выделить приложению, 2 ядру. 3 гига приложению можно выделить, если приложение скомпилено с флагом largeaddressaware. Поддержки PAE (Physical Address Extension) в XP нет.
Demige ★ ( 13.09.13 17:51:09 )
Последнее исправление: Demige 13.09.13 17:51:42 (всего исправлений: 1)
2 можно выделить приложению, 2 ядру.
это где так сказано, что только 2? На какие параметры процессора влияет указанный флаг? или же это чисто виндовая особенность?
PAE ядро ? не, не слышал
4Gt ? не, не гуглил
64битный вайн? Запамятовал, а настройках вайна под приложение нет в списке версий виндов их 64битных вариантов?
64-битный WINE разве может запускать 32-битные программы?
Нет, wine x86 ибо и убунту x86ая.
А как связано pae с доступной одному процессу памятью?
Нет. Для большинства 32-битных виндовых приложений ограничение памяти в винде - 2 ГБ. 3 ГБ вроде как только на серверной винде и то не для всех приложений.
Другое дело, что есть 64-битный Wine, который помимо прочего умеет запускать и 64-битные бинарники от винды. Вот он может выделить больше 2 ГБ по понятным причинам.
Управление памятью в Wine
Замечательный продукт этот wine и развивается уже давно, но вот столкнулся с такой проблемой - wine по умолчанию в своей 32 разр сборке при запуске любого приложения использует 3.6 ГБ памяти. Причем как я понял из исходных текстов сей параметр прописан практически в сотне файлов в своем абсолютном значении.
Но на самом деле в многопользовательских системах это причиняет неудобство.
Не слышал ли кто-нибудь про планы обеспечения возможности динамического изменения этого параметра?
wine по умолчанию в своей 32 разр сборке при запуске любого приложения использует 3.6 ГБ памяти. Причем как я понял из исходных текстов сей параметр прописан практически в сотне файлов в своем абсолютном значении.
ищите что-то типа 0xffffffff
в параметрах задания максимальных адресов для переменных итп
а для проверки - запустите любое приложение и посмотрите размер заказанной под процесс виртуальной памяти
Насколько я знаю часть параметров перекрывается в конфигурационных файлах, но можно ли изменить кол-во используемой памяти??
ищите что-то типа 0xffffffff
в параметрах задания максимальных адресов для переменных итп
а для проверки - запустите любое приложение и посмотрите размер заказанной под процесс виртуальной памяти
Насколько я знаю часть параметров перекрывается в конфигурационных файлах, но можно ли изменить кол-во используемой памяти??
Нет нельзя, потому как в 32 битной системе можно максимум адресовать 0xffffffff байт памяти.
ребят, я не спрашивал почему
я спрашивал может кто-то слышал о путях и планах решения этой проблемы?
ведь я говорю не о 64 разр поддержке а всего лишь об уменьшении используемой памяти,
казалось бы что мешало разработчикам сделать этот параметр динамическим?
я спрашивал может кто-то слышал о путях и планах решения этой проблемы?
ведь я говорю не о 64 разр поддержке а всего лишь об уменьшении используемой памяти,
казалось бы что мешало разработчикам сделать этот параметр динамическим?
Максимальный размер не может быть динамическим. Он - максимальный, и это определено архитектурой.
А вот используемая память - конечно же она динамическая, в чём проблема-то?
я спрашивал может кто-то слышал о путях и планах решения этой проблемы?
ведь я говорю не о 64 разр поддержке а всего лишь об уменьшении используемой памяти,
казалось бы что мешало разработчикам сделать этот параметр динамическим?
Максимальный размер не может быть динамическим. Он - максимальный, и это определено архитектурой.
А вот используемая память - конечно же она динамическая, в чём проблема-то?
может быть я не совсем понятно сформулировал свой вопрос.
Распишу:
при запуске ЛЮБОГО процесса из по wine - он замахивается сразу на 3.6 гб виртуальной памяти вне зависимости от того сколько реально может потреблять виндовая программа. Если я контролирую выделение ресурсов памяти на многопользовательской машине, то появляются некоторые проблемы с неадекватным распределением ресурсов.
Каким же образом размер этой виртуальной памяти можно уменьшать, если вы говорите что это возможно?
цитирую самого себя "а для проверки - запустите любое приложение и посмотрите размер заказанной под процесс виртуальной памяти
Насколько я знаю часть параметров перекрывается в конфигурационных файлах, но можно ли изменить кол-во используемой памяти??"
посмотрите сами
Всем привет!
Прочел статью про «Все тонкости настройки Wine», оказалось, что там далеко не все тонкости. Поэтому написал этот пост как дополнение тому.
В данном посте в основном вольный перевод оф. документации, а так же несколько своих и чужих хитростей при работе с вайн.
Скорее всего данный пост будет интересен новичкам и обычным пользователям GNU\Linux. Тем не менее добротные советы от специалистов не будут лишними.
Что такое вайн думаю объяснять нет смысла. Хочу лишь показать несколько трюков при работе с ним.
Префиксы
С их помощью вы можете устанавливать приложения именно туда куда вы их хотите установить, а не в дефолтный .wine. Даже если что то пойдет не так, достаточно удалить тот префикс, в котором произошла ошибка, при этом все другие приложения\префиксы (предположим, что они настроенные) не пострадают.
То есть каждый созданный вами префикс можно рассматривать как отдельный wine – он независим от других префиксов. Или, для еще большей простоты, воспринимайте каждый созданный префикс, как отдельно установленную винду.
Теперь немного практики:
Сейчас мы создадим папку Gamez, в ней мы создадим префикс lib в который установим несколько библиотек. Эти библиотеки все равно пригодятся потом, поэтому пусть кешируются.
mkdir ./Gamez
env WINEPREFIX=$HOME/Gamez/lib wine winecfg
env WINEPREFIX=$HOME/Gamez/lib winetricks directx9 vcrun2005 vcrun2008 vcrun6
env WINEPREFIX=$HOME/Gamez/lib wine winecfg
Последней командой мы опять вызвали окно конфигуратора wine. Просто перейдите на вкладку «Библиотеки» и убедитесь, что все установилось. После этого выполните:
wine winecfg — откроется конфигуратор wine (не из префикса), проверьте ту же вкладку. Видите! Здесь никаких библиотек. Значит он цел и невредим.
Как установить несколько разных версий wine?
Для решения этой задачи придется собирать wine из исходников. При сборке просто используем префикс для дефолтной установке. Примерно как здесь:
./configure prefix=/path/to/install/directory && make
sudo make install
AppDB
Обязательно используйте appdb для поиска информации по установке приложения, возможно стаф, который вы устанавливаете, уже установили и расписали все подводные камни.
Наводим порядок в домашнем каталоге
Если вы любите поиграть, то вероятно ваш /home раздел забит сейвами и прочими файлами игр. Избавиться от этого всего дела, не в ущерб можно так:
Замените стандартный путь к моим документам, на желаемое место для хранения сейвов. У меня, к примеру, этот путь ведет в папку с игрой.
Использование последних версий wine
Wine такая штука, чем новее тем лучше! С помощью следующей команды вы всегда будете иметь последнею версию wine (для Ubuntu-подобных дистрибутивов):
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
После выполнения этих команд ищите последнею версию wine в synaptic.
Установка winetricks
Если по каким-либо причинам у вас до сих пор нет winetricks, то завести его в хозяйстве можно так:
Как установить MSI файл?
Это можно сделать двумя способами: wine msiexec /i whatever.msi
Альтернативный способ: wine start whatever.msi
The file foo.exe is not marked as executable… — Что это значит?
chmod a+x ./patch/you/exe.file
если же файл находится на диске, то должна помочь вот эта команда:
mount -o remount,mode=0777,exec /media/cdrom
Как вывести содержимое отладки в отдельный файл?
cd ~/.wine/drive_c/Games/Tron
wine tron.exe &> log.txt
Как отключить «crash» диалог?
Если вы используете префиксы, не забудьте в команде указать путь к префиксу — winetricks nocrashdialog
После запуска приложения\игры, wine ругается и ничего не запускает. Что делать?
Для начала изучите логи, обычно в них все написано. Ниже я приведу самые популярные ошибки:
MFC40.DLL : через winetricks установи mfc40 (Microsoft Foundation Classes from Visual C++ 4).
MFC42.DLL, MSVCP60.DLL : через winetricks установи vcrun6 (MS Visual C++ 6 sp4 libraries: mfc42, msvcp60, msvcrt).
MFC71.DLL, MSVCP71.DLL : через winetricks установи vcrun2003 (MS Visual C++ 2003 libraries: mfc71,msvcp71,msvcr71).
MFC80.DLL, MSVCP80.DLL : через winetricks установи vcrun2005 (MS Visual C++ 2005 libraries: mfc80,msvcp80,msvcr80).
MFC90.DLL, MSVCP90.DLL : через winetricks установи vcrun2008 (MS Visual C++ 2008 libraries: mfc90,msvcp90,msvcr90).
MDAC : через winetricks установи mdac27 (MS MDAC 2.7).
Мое приложение работает, но текстовые поля ведут себя странно
Проанализируйте дебаг wine после запуска приложения, если видите что ругается на RICHED20.DLL, то доустановите через winetricks следующею библиотеку: riched20
Вы можете просто их игнорировать, это информация для разработчиков.
Через вайнтрикс можно установить 1 или 2 фреймворк. Как альтернатива использовать mono. Если же приложение требует 3 или 4 фреймворк, то скорее всего оно работать не будет (хотя 3 и даже 3.5 доступен в меню winetricks). Ждем пока решат эту проблему.
Игра которую я пытаюсь установить защищена от распространения возможно ли её установить?
Смотри список copy protection, которые работают.
Что делать если приложение требует IE?
Wine использует по умолчанию ядро\движок Gecko – это то же, что и на Firefox. Поэтому можно через winetrikcs доустановить gecko(если его нет) и\или fakeie6.
Если же это не помогло, попробуйте поменять версию windows на win2k и установить через winetricks ie6, ie7 или ie8.
Как включить сглаживание шрифтов в wine?
Если ваша версия выше чем 1.1.12 вы можете использовать winetricks и выбрать один из трех вариантов сглаживания: fontsmooth-gray, fontsmooth-rgb или fontsmooth-bgr
После выхода из игры не восстанавливается разрешение экрана
Должно помочь: xrandr -s 0
Как попасть в реестр wine?
wine regedit — Если используются префиксы укажите путь в команде.
Нуждается ли wine в отдельной установке драйверов?
Нет. Wine – это не эмулятор компьютера, он лишь переводит вызовы Windows API в понятные линуксу команды.
Безопасно ли запускать wine от root?
Никогда не запускайте wine от root пользователя.
Если это уже случилось измените владельца ~./wine директории.
cd ~
sudo chown -R $USER:$USER .wine
Техника безопасности при использовании wine
Вот несколько советов, которые помогут вам повысить безопасность:
- Никогда не запускайте программы с подозрительных сайтов
- Никогда не используйте root пользователя для запуска приложений!
- Используйте антивирусный сканер для запускаемых приложений, например ClamAV. Или хотя бы проверяете экзешники на virustotal
- Попробуйте удалить wine диск Z:, который указывает по умолчанию на корневой каталог. В качестве обходного пути запускать программы из ~/.wine/drive_c директории.
- Используйте виртуальную машину для запуска и проверки подозрительных приложений.
Файл .xsession-errors забивает мусором все дисковое пространство. Что делать? (рецепт от --=XliN=--)
Делаем «песочницу» для wine (рецепт от drBatty)
*1) создаём юзера
2) меняем права на домашние каталоги на 700
*3) прописываем команду в sudoers (visudo)
первый_юзер имя_компа=(второй_юзер) NOPASSWD: /программа_с_полным_путём
4) у первого юзера прописываем в автозагрузку DE команду xhost +local: второй_юзер
5) в ярлык для запуска программы пишем
sudo -u второй_юзер /программа_с_полным_путём
тогда первый юзер сможет более-менее безопасно запускать программы от имени второго юзера.
звёздочкой отмечены пункты, для которых нужны права рута.
Статья посвящена Wine и всем аспектам его использования. В сети находится очень
много информации, есть различные руководства по настройке и многое другое. Я
постараюсь объединить все для того чтобы любой человек смог достичь
максимального успеха, в пределах своих способностей и конечно возможности
программы. Итак — начнем.
Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.
Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.
Установка Wine
Первый вопрос человека который только что перешёл на Linux (в нашем случае
Ubuntu): «Как я буду запускать программы из Windows?». Он начинает поиск на эту
тему и естественно натыкается на Wine.
Второй вопрос: «Как его поставить?». Есть два способа: Поставить из
официальных репозиториев или скомпилировать самому из исходников. Мы рассмотрим
оба варианта.
Вариант 1: Установка из репозитория.
Тут все очень просто. Идем в Приложения // Стандартные // Терминал:
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.3
Ждем завершения установки…
Всё! Wine установлен и можно пробовать устанавливать игры и программы.
Вариант 2: Компилирование из исходников.
2. Распаковываем исходники.
Дальше вводим в терминале следующие команды:
переходим в директорию, в которую был распакован архив с исходными текстами:
Перед компиляцией надо включить поддержку OpenGL. Если мы этого не сделаем
приложения которым нужен OpenGL работать не будут. В терминале:
Находим строку, начинающуюся с CONFARGS=, и после вписываем в нее нужные
параметры сборки. В нашем случае строка будет выглядеть так:
CONFARGS="--with-opengl --disable-debug --disable-trace"
sudo apt-get install auto-apt checkinstall
sudo auto-apt -y run ./configure
Устанавливаем через создание пакета, вместо make install
Всё. Ждем окончания установки.
Есть ещё промежуточный вариант, для джедаев на debian-based дистрибутивов. Кратко:
apt-get source wine1.3
sudo apt-get build-dep
Теперь самое интересное: скачиваем нужную версию wine с официального сайта, распаковываем, и копируем туда директорию debian из директории с исходниками оригинального пакета wine1.3. Делаем
и у нас появляется *.deb пакет для убунты/дебиана со всеми нужными патчами для дистрибутива, почти как из официального репозитория, но только новая версия. К тому же её ещё потом можно спокойно удалить так же через apt-get.
Рассмотрим плюсы и минусы каждого из вариантов.
Вариант 1.
Плюсы:
1. За нас уже все собрано и пыжиться не надо, все уже готово к употреблению.
Минусы:
1. Мы не сможем применить патч, например для улучшения работы какой нибудь игрушки.
2. Не стабильная работа на некоторых видеокартах.
Вариант 2.
Плюсы:
1. Возможность применить патчи для улучшения работы
2. Стабильная работа с не стабильными драйверами видеокарт.
Минусы:
1. Нет меню в Приложениях, что не удобно. Приходиться все делать из консоли,
выходить в настройки Wine например.
2. Процесс установки слишком долгий, зависит от мощности вашего компьютера.
1. Нет меню в Приложениях, что не удобно. Приходиться все делать из консоли, выходить в настройки Wine например.»
Можно самому добавить через Система — Параметры — Главное меню
Я отдаю предпочтение второму варианту. Wine установленный таким образом работает
лучше, чем установленный из репозиториев. Но это лишь мое маленькое ИМХО.
Установка программ и игр
Если программа работает без проблем, значит с чистой душой её устанавливаем
простым кликом. Если это какая нибудь серьёзная игра или программа и без
шаманства с бубном не обойтись — значит надо создавать отдельный префикс* для
наших танцев. * Все файлы вайна хранятся в префиксе, или ещё называемом бутылкой (по анологии с вином/wine). Там внутри этой бутылки имеются все файлы диска C, реестр, индивидуальные настройки и так далее.
Таких бутылок может быть сколько угодно.
Просто может быть какой-то софт, который ведёт себя очень капризно под вайном и для него нужны какие-то костыли, которые будут мешать нормальной работе других приложений вайна. Тогда просто этот софт ставим в отдельную бутылку (префикс) и любые настройки не будут влиять на другие программы.
Когда вайн запускается в первый раз без указанного префикса, используется ~/.wine. Если префикс не существует вайн создаст его и наполнит дефолтным содержимым создаст и наполнит файлами каталоги C:\windows, C:\Program Files, C:\users. Плюс будет создан чистый реестр.
Идем в наш домашний каталог и создаем новую директорию. Например .wine2.
Дальше идем в терминал и вводим:
Всё. Отдельный префикс создан. Там хранятся различные конфигурации реестра и сами программы.
Установку программы также производим через консоль.
WINEPREFIX="/home/username/.wine2/" wine /media/DVD/setup.exe
Идет процесс установки и самое главное в отдельный префикс.
Потом мы запускаем уже установленную программу, также из консоли и смотрим вывод.
В выводе могут быть ошибки, о том что нет нужных компонентов и библиотек. В
установке недостающих компонентов нам поможет winetricks (см. ниже)
Что это дает? Это дает стабильную работу приложений в своем префиксе, если
масса программ будет работать в одной префиксе, он рано или поздно засориться
что приведет к сбою других программ. Поэтому нужно использовать отдельные
префиксы, если не хотите все настраивать по много раз.
Winetricks
В правильной настройке префикса нам поможет winetricks.
Winetricks — это скрипт, который устанавливает различные компоненты, которые
требуются для работы приложения, например DirectX, Vcredist и многое другое.
Как это скрипт работает? Он скачивает библиотеки и компоненты с
Microsoft-овских ресурсов. Именно так, и не как по другому. Зачем этот скрипт
нужен? Это очень упрощает работу с Wine-ом. Без скрипта мы бы сами лазили и
искали нужные компоненты, а тут уже все сделано, надо только поставить галочку
и нажать «Установить» Также этот скрипт помогает редактировать реестр,
вписывать туда различные ключи. И помимо этого в winetricks есть много настроек
и функций.
Для ознакомления с ним просто введите в терминале winetricks
Редактирование реестра
В терминале вводим:
Мы в реестре. Редактировать нам ничего не надо, мы будет только добавлять.
Идем в HKEY_CURRENT_USER/Software/Wine/Direct3D.
Если каталога Direct3D нет, то не отчаиваемся. Я это пишу чтобы читатель понял
где-то надо редактировать или добавлять.
winetricks ddr=opengl orm=fbo glsl=disabled videomemorysize=1024
(1024 меняете на свое)
Все эти параметры появиться в реестре. Это можно посмотреть в папке указанной выше.
Что это дает? Это улучшает производительность в играх, скорость и вообще игры
работают от этого лучше, но это только для игр.
PlayOnLinux
Также существует PlayOnLinux. Это отдельная программа, которая использует Wine,
но там более все автоматизированно и настроено. Программа сама скачает нужный
Wine, установит компоненты и создаст отдельный префикс. Но это не значит что
все будет идеально работать. Может вообще не работать. Так что я отдаю свое
предпочтение обычному Wine, ручной настройке и работе собственного мозга, а не
автоматизированной программе.
Плюсы:
Все автоматизированно и нам по сути делать ничего не надо.
Можно держать несколько версий Wine и применять их для различных префиксов.
Программа сама создает префиксы.
Минусы:
Все что делает программа, устанавливает и скачивает предугадать невозможно.
Все что делает программа можно сделать самому, ручками, это + к знаниям человека.
Программа «Робот» никогда не сравнится с человеческим мозгом.
Монтирование образов CD/DVD-дисков
В Windows есть для этого утилита под названием Daemon-Tools. Это очень удобная
и не заменимая утилита. У человека возникает вопрос: Есть ли аналог этой
чудо-утилиты? Ответ: Есть и на много лучше Windows утилиты. Называется она
Cdemu. Для её установки нам требуется ввести всего лишь три команды:
sudo add-apt-repository ppa:cdemu/ppa
sudo apt-get update
sudo apt-get install cdemu-daemon cdemu-client gcdemu
Добавляем аплет на панель, указываем путь к образу и радуемся жизни. Не каких
проблем не будет и Wine будет отлично определять образ. Если аплета не находим не торопитесь перезагружаться.
В терминале вводим команды:
sudo service cdemu-daemon start
sudo update-rc.d cdemu-daemon enable
Запуск игр в отдельном Х-сервере
Этому можно посветить целую книгу, но я остановился на одном способе, которым всегда пользуюсь:
Переходим в виртуальный терминал:
Ctrl + Alt + F1
login: ******
password: ******
Запускаем вручную новую копию X-сервера:
xinit -- :2
wine путь/папке/c/игрой/game.exe
Прирост от этого не большой, но лично мне этого хватает. Ещё раз повторю:
способов запуска в отдельном х-сервере много и каждый человек волен сам выбирать.
Заключение
Все эти советы, азы, которые должен знать каждый человек который хочет
использовать Wine для достижения своих целей. Все остальное в ваших руках. Если
вы хотите достичь цели не смотря ни на что, а надежда уже уходит, не
отчаивайтесь никогда, ибо решение может находиться у вас «перед носом». Усидеть
на двух стульях возможно, но для этого нужно желание и стальные нервы. Желание
— тысяча возможностей, не желание — тысяча причин.
Управление памятью в Wine (Управление памятью в Wine)
zram и приоритеты свопов
Рекомендую включить zram — прозрачное сжатие содержимого оперативной памяти. В Ubuntu это автоматизировано, достаточно установить пакет:
sudo apt install zram-config
Здесь и далее для дистрибутивов Rosa, Fedora все то же самое, но вместо zram-config —
Сервис systemd zram-config на Ubuntu будет автоматически добавлен в автозагрузку при установке пакета и запущен при перезагрузке системы. Для запуска вручную:
sudo systemctl start zram-config
sudo systemctl stop zram-config
Удаления из автозапуска:
sudo systemctl disable zram-config
Добавление в автозапуск:
sudo systemctl enable zram-config
При запуске zram-config берет число, равное 50% всего объема оперативной памяти, далее делает по одному виртуальному устройству /dev/zramN, где N начинается с 0, для каждого ядра процессора, а объем каждого /dev/zramN равен 50% всей оперативной памяти, деленному на количество ядер процессора. Так делалается для распараллеливания сжатия содержимого оперативной памяти по ядрам процессора; насколько я знаю, на современных ядрах Linux достаточно одного устройства /dev/zramN, а распараллелится оно само, но меня полностью устраивает искоробочная работа zram-config, и предпочитаю не лезть в нее руками.
Команда swapon -s выведет список всех задействованных свопов с указанием их приоритета. Первым используется тот своп, у которого приоритет выше. Если у вас уже есть дисковый своп и включен zram, то в случае с описанным выше пакетом-автокофигуратором приоритеты из коробки будут правильными. Например, у дискового свопа будет -1, а все /dev/zramN — 5. Таким образом, сначала используется zram, и только потом — диск.
Кстати, zram часто применяется на смартфонах, какую-либо на глаз заметную нагрузку на процессор при дефолтном методе сжатия lz4 он не создает.
Также приоритет свопа можно указать в /etc/fstab . Покажу на примере, как это сделано на моем рабочем компьютере с 6 ГБ ОЗУ.
Опцией монтирования pri=X заданы приоритеты свопов. Если еще включить zram, то картинка будет такой:
На офисных ПК с 4 ГБ ОЗУ (Xubuntu 16.04, 17.10) всегда ставлю пакет zram-config . Chromium, по наблюдениям, на глаз, очень хорошо сжимается в оперативной памяти, в результате чего zram позволяет сделать работу намного более комфортной без модернизации железа.
Читайте также: