Запуск HLDS через Windows Subsystem for Linux (WSL)

Сообщения
24
Реакции
25
Помог
1 раз(а)
Краткая справка:
Подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux, включая большинство программ командной строки, служебных программ и приложений, непосредственно в Windows без каких-либо изменений, избавляя от необходимости использовать отдельную виртуальную машину. Подробнее о WSL здесь.

Установка WSL 2 и Linux дистрибутива
  • Windows 10 не ниже версии 2004
Нажимаем комбинацию клавиш Windows+R, затем в открывшемся окне набираем winver.
Аннотация 2020-06-21 003105.png
Если у вас версия ниже, чем 2004, то необходимо обновиться.
Инструкция по обновлению есть на сайте Microsoft: тык.
Самый простой способ обновиться - скачать помощника по обновлению Windows 10, сделать это можно здесь.
1. Открываем PowerShell с правами администратора. Для этого жмём Windows+X и выбираем нужный пункт.
2. Вводим следующие команды для активации компонентов платформы виртуальных машин и WSL:
  • dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
И перезагружаем компьютер.​
3. После перезагрузки снова открываем PowerShell и вводим следующее:
  • wsl --set-default-version 2
Готово, компоненты WSL 2 установлены! Теперь необходимо установить дистрибутив Linux.​
4. Открываем Microsoft Store и набираем в поиск Ubuntu, либо переходим по ссылке.
Аннотация 2020-06-21 005746.pngАннотация 2020-06-21 010109.png
5. Создаём нового пользователя и пароль для него. Здесь всё как в стандартном Linux.
ubuntuinstall.png
Готово, Ubuntu установлен! Теперь обновляемся и ставим нужные пакеты.

Установка пакетов и SteamCMD
При успешной установке нас встретит стандартный терминал Ubuntu. Теперь приступим к базовой настройке.
Аннотация 2020-06-21 010759.png
1. Обновляем стандартные пакеты до последних версий. Здесь абсолютно ничего не отличается от обновления в обычном Ubuntu/Debian.
Bash:
sudo apt update && sudo apt dist-upgrade
2. Подключаем i386 репозитории. WSL по стандарту поддерживает только 64 битные приложения, но с версией WSL 2 появилась нативная поддержка i386.
Bash:
sudo dpkg --add-architecture i386
sudo apt update
3. Ставим необходимые пакеты для gcc компилятора и SteamCMD. Это понадобится для запуска HLDS.
Bash:
sudo apt install -y lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 zlib1g-dev:i386 gcc
4. Теперь можно установить SteamCMD и скачать сервер, если его нет.

Несколько советов:
  • Терминал Ubuntu можно запускать из любого окна проводника Windows, для этого в папке жмём SHIFT+ПКМ, затем выбираем "Откройте здесь оболочку Linux".
  • Для Ubuntu удобнее всего использовать Windows Terminal, загрузить его можно из Microsoft Store.

Запускаем HLDS
1. Исправляем работу 32 битных приложений. Без этого HLDS не запустится.
  • Скачиваем исходный код библиотеки:
  • Используем готовый скрипт, либо вводим все команды вручную:
    Bash:
    #!/bin/sh
    # Обратите внимание!
    # При ручном вводе необходимо создать файл vers.
    # Содержимое файла указано ниже, выделено отступами (GLIBC_2.0 { ... };)
    
    cat > vers <<EOC
    
    GLIBC_2.0 {
    global:
    readdir;
    __fxstat;
    __xstat;
    __lxstat;
    };
    
    EOC
    
    gcc -c -fPIC -m32 -fno-stack-protector inode64.c
    mkdir -p b32 b64
    ld -shared -melf_i386 --version-script vers -o b32/inode64.so inode64.o
    echo "" | gcc -xc -fPIC -shared -o b64/inode64.so -
    sudo cp b64/inode64.so /lib/x86_64-linux-gnu/inode64.so
    sudo cp b32/inode64.so /lib/inode64.so
2. В start.sh перед строкой запуска сервера добавляем следующее:
Bash:
export LD_PRELOAD=inode64.so
Bash:
export LD_PRELOAD=inode64.so
./hlds_run -game cstrike ...
Теперь сервер должен запускаться и работать нормально.
 
Последнее редактирование:
Сообщения
443
Реакции
319
Помог
13 раз(а)
1) Не обязательно ubuntu, в нашем случае и debian подойдет.
2) Все пакеты из магазина подписаны, если у вас будет отключена хоть одна из важных служб win 10 вы не сможете установить их, даже если скачаете и попытаетесь установить вручную, а не из магазина.
export LD_PRELOAD= по аккуратнее пожалуйста, wsl игрушка, используйте виртуальные машины, настраиваются и устанавливаются проще, работают лучше, проблем меньше, не будем брать во внимание новые версии убунту.
 
Сообщения
5
Реакции
6

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу