Отключаем функции UMIP

Начиная с ядра Linux версии 5.4 и выше появилась поддержка User-Mode Instruction Prevention (UMIP). Существует определенный набор операций, который не должен исполнятся как есть, а должен поддерживаться через механизмы эмуляции, спуфинга и/или виртуализации.

Несмотря на решение части проблем, UMIP и сегодня бьёт по старым играм и мешает Wine их исполнять. Выглядит это как экстренное завершение процесса игры и Wine. Пока разработчики Wine и ядра Linux ищут эффективное решение, UMIP можно просто отключить.

Чтобы понять, является ли комбинация Вашего железа/системы/игры подверженной проблеме с UMIP, достаточно поискать релевантные строчки в логах. В моём случае той самой проблемной игрой являлся Split/Second:

$ sudo journalctl | grep -i umip

kernel: x86/cpu: User Mode Instruction Prevention (UMIP) activated
kernel: umip: SplitSecond.exe[19872] ip:12d14f7 sp:235c4a4: SIDT instruction cannot be used by applications.
kernel: umip: SplitSecond.exe[19872] ip:12d14f7 sp:235c4a4: For now, expensive software emulation returns the result.
kernel: umip: SplitSecond.exe[19872] ip:12d14fd sp:235c4a4: SLDT instruction cannot be used by applications.
kernel: umip: SplitSecond.exe[19872] ip:12d14fd sp:235c4a4: For now, expensive software emulation returns the result.
kernel: umip: SplitSecond.exe[19872] ip:12d1503 sp:235c4a4: SGDT instruction cannot be used by applications.

Достаточно указать ядру новый параметр для отключения UMIP. Откроем конфигурацию grub:

$ sudoedit /etc/default/grub

Добавим параметр clearcpuid=514 в строку GRUB_CMDLINE_LINUX_DEFAULT. К примеру:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noresume clearcpuid=514"

Обновляем конфигурацию grub и перезагружаемся:

$ sudo update-grub
$ sudo reboot

Посмотрим на свежие логи этой загрузки и увидим, что UMIP был отключен:

$ sudo journalctl -b | grep -i umip

kernel: Clearing CPUID bits: umip

Проблема с UMIP всё ещё охватывает много старых игр и даже “цепляет” новые. Поговаривают, что одной из новых игр, которая просто не запускается без отключения UMIP, стала Hogwarts Legacy 2023 года выпуска. Выходит, проблема актуальна как никогда и не только для старых игр…

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