Oyun sever birisi değilim ancak söz konusu Counter Strike olunca akan sular duruyor ne yazık ki, vazgeçemedim 🙂 Windows’tan Linux’a geçiş yaparken en çok bu sevdamdan vazgeçmek zor olmuştu.

Steam sağolsun, Linux kullananları da düşünmüş. Bazı oyunlar için Linux desteği veriyor. Aslında tam olarak bilmiyorum, Steam firmasının bir kıyağı mıdır yoksa oyun firmalarının mı? Ama kimin kıyağıysa canını yerim 🙂

Debian kullanıcısı olduğum için ben Debian üzerinde kurulumdan ve ayarlamalardan bahsedeceğim. Bilgisayarınızda hibrid olarak isimlendirilen çift ekran kartı sistemi varsa, bu anlatım çok işinize yarayacak diye düşünüyorum.

Önce kullandığım sistemden bahsedeyim: Bilgisayarımda Intel + NVIDIA ekran kartları var. Windows kullanıcısıyken, oyun veya yoğun grafik içeren uygulamaları açtığımda NVIDIA otomatik devreye giriyordu . Linux’ta ise sürücü probleminiz yoksa siz müdahele etmediğiniz sürece daima Intel devrededir(sürücüler eksikse daima NVIDIA devrede oluyor ve doğal olarak daima fan çalışıyor.).

Intel + NVIDIA kullanan sistemde CS:GO oynamak için sisteminizde primus yani NVIDIA Optimus yapılandırmaları kurulu olması gerekiyor, böylece grafik kartları arasında “primusrun” komutu ile geçiş yapabiliyorsunuz. Adım adım yazarsam sanırım daha rahat anlaşılır:

  1. NVIDIA Optimus yapılandırmalarını ayarlayın: Configure NVIDIA Optimus in Debian with Bumblebee
  2. Steam kurulumunu yapın.
  3. CS:GO’nun başlatıcı dosyasında bazı değişikler yapın.

Değişiklikleri yapmanıza rağmen NVIDIA ekran kartınız devreye girmiyorsa, csgo.sh dosyasındaki if-else bloklarındaki tüm bloklar için “primusrun” komutunu kullanmayı deneyin. Benim csgo.sh dosyam aşağıdaki gibi:

#!/bin/bash

# figure out the absolute path to the script being run a bit
# non-obvious, the ${0%/*} pulls the path out of $0, cd's into the
# specified directory, then uses $PWD to figure out where that
# directory lives - and all this in a subshell, so we don't affect
# $PWD

GAMEROOT=$(cd "${0%/*}" && echo $PWD)

#determine platform
UNAME=`uname`
if [ "$UNAME" == "Darwin" ]; then
   # Workaround OS X El Capitan 10.11 System Integrity Protection (SIP) which does not allow
   # DYLD_INSERT_LIBRARIES to be set for system processes.
   if [ "$STEAM_DYLD_INSERT_LIBRARIES" != "" ] && [ "$DYLD_INSERT_LIBRARIES" == "" ]; then
      export DYLD_INSERT_LIBRARIES="$STEAM_DYLD_INSERT_LIBRARIES"
   fi
   # prepend our lib path to LD_LIBRARY_PATH
   export DYLD_LIBRARY_PATH="${GAMEROOT}"/bin:"${GAMEROOT}"/bin/osx64:$DYLD_LIBRARY_PATH
elif [ "$UNAME" == "Linux" ]; then
   # prepend our lib path to LD_LIBRARY_PATH
   export LD_LIBRARY_PATH="${GAMEROOT}"/bin:"${GAMEROOT}"/bin/linux64:$LD_LIBRARY_PATH
fi

if [ -z $GAMEEXE ]; then
	if [ "$UNAME" == "Darwin" ]; then
		GAMEEXE=csgo_osx64
	elif [ "$UNAME" == "Linux" ]; then
		GAMEEXE=csgo_linux64
	fi
fi

ulimit -n 2048

# enable nVidia threaded optimizations
export __GL_THREADED_OPTIMIZATIONS=1
# enable Mesa threaded shader compiles
export multithread_glsl_compiler=1

# and launch the game
cd "$GAMEROOT"

STATUS=42
while [ $STATUS -eq 42 ]; do
	if [ "${DEBUGGER}" == "gdb" ]; then
		ARGSFILE=$(mktemp $USER.hl2.gdb.XXXX)
		echo b main > "$ARGSFILE"
		echo run $@ -game csgo >> "$ARGSFILE"
		echo show args >> "$ARGSFILE"
		primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
		rm "$ARGSFILE"
		primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
	elif [ "${DEBUGGER}" == "lldb" ]; then
		ARGSFILE=$(mktemp $USER.hl2.lldb.XXXX)
		echo "b main" > "$ARGSFILE"
		echo "env DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" > "$ARGSFILE"
		${DEBUGGER} -s "$ARGSFILE" -- "${GAMEROOT}"/${GAMEEXE} "$@"
		rm $ARGSFILE
	else
		primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
	fi
	STATUS=$?
done
exit $STATUS