s@beast:~ % uname -srm FreeBSD 10.3-RELEASE-p12 amd64Что по линупсам?
s@beast:~ % sysctl -a | grep compat.linux hw.snd.compat_linux_mmap: 0 compat.linux32.maxvmem: 0 compat.linux32.maxssiz: 67108864 compat.linux32.maxdsiz: 536870912 compat.linux.oss_version: 198144 compat.linux.osrelease: 2.6.39 compat.linux.osname: Linux
Уже есть Освежу в памяти как все это хозяйство появилось:
Установил linux_base-c7. Там есть поддержка нового ядра, в c6 старый хлам, который многими приложениями не поддерживается
s@beast:~ % pkg info | grep linux linux_base-c7-7.2.1511_3 Base set of packages needed in Linux mode for i386/amd64 (Linux CentOS 7)
После установки прописал в следующие файлы загрузку эмулятора при старте системы.
s@beast:~ % cat /boot/loader.conf linux_load="yes" linprocfs_load="yes" s@beast:~ % cat /etc/rc.conf | grep linux linux_enable="YES" s@beast:~ % cat /etc/sysctl.conf compat.linux.osrelease=2.6.32 kern.fallback_elf_brand=3 kern.ipc.maxsockbuf=524288
Перезагрузим sysctl:
service sysctl restart
Замечу, что пресловутые рекомендации на форумах в строке релиза compat.linux.osrelease=2.6.32 ставить значение 2.6.18 не привели к успеху установки сервера. Ругань была такая:
FATAL: kernel too old
Ну и /etc/fstab, конечно:
s@beast:~ % cat /etc/fstab | grep lin linprocfs /compat/linux/proc linprocfs rw 0 0 tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0
Далее. Polling я включать не стал. Играть все равно там будет от силы 4 человека, нагрузка минимальная на сеть.
Так! После всех этих манипуляций загрузим модуль линупса: kldload linux и проверим, загрузился ли:s@beast:~ % kldstat | grep lin 2 1 0xffffffff819bd000 11a90 linprocfs.ko 3 3 0xffffffff819cf000 c128 linux_common.ko 4 1 0xffffffff819dc000 9af18 linux.ko
Усе в порядке. Можно качать сервер. Сервер я качал официальный, без всяких там NoSteam сборок. Качал по привычке hldsupdatetool.bin. И вот тут ждал меня провал. Оказалось, что старая добрая программка по обновлению дистра сервачка более не оспользуется. Вместо нее пришла тулза steamcmd.
Забугорные парни еще советуют ставить bash перед закачкой steamcmd. Поставил bash, затем скачал саму прогу по ссылке: https://media.steampowered.com/installer/steamcmd_linux.tar.gz
Распаковал:
tar -zxvf steamcmd_linux.tar.gz
Кстати все эти действия я делаю в подготовленной папке для сервера. Шаги эти я не описываю.Далее я нашел на форуме у Лиссяры пост комрада, который поделился работающим скриптом по запуску steam. Назвал я его steambsd.sh:
s@beast:~/cs % cat steambsd.sh #!/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 STEAMROOT=$(cd "${0%/*}" && echo $PWD) if [ -z $STEAMEXE ]; then STEAMEXE=steamcmd fi #determine platform UNAME=`uname` if [ "$UNAME" == "Linux" ]; then PLATFORM=linux32 # prepend our lib path to LD_LIBRARY_PATH export LD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$LD_LIBRARY_PATH PATHLINK=~/.steampath rm -f ${PATHLINK} && ln -s ${STEAMROOT}/${PLATFORM}/${STEAMEXE} ${PATHLINK} PIDFILE=~/.steampid echo $$ > ~/.steampid else # if [ "$UNAME" == "FreeBSD" ]; then PLATFORM=linux32 # prepend our lib path to LD_LIBRARY_PATH export LD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$LD_LIBRARY_PATH PATHLINK=~/.steampath rm -f ${PATHLINK} && ln -s ${STEAMROOT}/${PLATFORM}/${STEAMEXE} ${PATHLINK} PIDFILE=~/.steampid echo $$ > ~/.steampid fi ulimit -n 2048 # and launch steam cd "$STEAMROOT" STATUS=42 while [ $STATUS -eq 42 ]; do ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@" STATUS=$? # are we running osx? if [ $STATUS -eq 42 -a ${PLATFORM} == "osx32" -a -f Info.plist ]; then # are we running from in a bundle? exec open "${STEAMROOT}"/../.. fi done exit $STATUS
Далее стартуем steam:
s@beast:~ % bash cs/steambsd.sh Redirecting stderr to '/home/s/Steam/logs/stderr.txt' [ 0%] Checking for available updates... [----] Verifying installation... Steam Console Client (c) Valve Corporation -- type 'quit' to exit -- Loading Steam API...opensslconnection.cpp (1375) : Assertion Failed: unable to load trusted SSL root certificates Created shared memory when not owner SteamController_Shared_mem OK. Steam>
Конечно в первый раз он сам себя обновит Итак, вот я в консоле стима. Что дальше? Дальше надо залогиниться под анонимусом, ибо я качаю старье. Вроде как оно бесплатно
Steam>login anonymous Connecting anonymously to Steam Public...Logged in OK Waiting for license info...OK
Указал папку, где будет лежать сервер:
Steam>force_install_dir /usr/home/s/hlds
Затем надо качнуть сам сервер. Сейчас в Steam сервера ранжируются по идентификаторам приложений (App ID). У CS 1.6 идентификатор 90, а Counter Strike: Gloval Offensive 740.
Steam>app_update 90 validate Update state (0x3) reconfiguring, progress: 0,00 (0 / 0) Update state (0x5) validating, progress: 14,20 (41573707 / 292792971) Update state (0x5) validating, progress: 35,09 (102755047 / 292792971) Update state (0x5) validating, progress: 55,33 (162014261 / 292792971) Update state (0x5) validating, progress: 88,04 (257777347 / 292792971) Update state (0x5) validating, progress: 94,95 (278021239 / 292792971) Update state (0x5) validating, progress: 43,50 (321119057 / 738123909) Update state (0x5) validating, progress: 47,49 (350511218 / 738123909) Update state (0x5) validating, progress: 59,80 (441365866 / 738123909) Update state (0x5) validating, progress: 70,48 (520206902 / 738123909) Update state (0x5) validating, progress: 78,32 (578125477 / 738123909) Update state (0x5) validating, progress: 85,12 (628278358 / 738123909) Update state (0x5) validating, progress: 88,09 (650190920 / 738123909) Update state (0x5) validating, progress: 91,03 (671897797 / 738123909) Update state (0x5) validating, progress: 92,37 (681826249 / 738123909) Update state (0x5) validating, progress: 93,98 (693719565 / 738123909) Update state (0x5) validating, progress: 95,84 (707396568 / 738123909) Update state (0x5) validating, progress: 97,42 (719086655 / 738123909) Update state (0x5) validating, progress: 98,61 (727881770 / 738123909) Success! App '90' fully installed.
И долгожданный старт сервера:
s@beast:~/hlds % ./hlds_run -game cstrike Auto-restarting the server on crash Unable to open tty(/dev/tty) for output Console initialized. Using breakpad crash handler Setting breakpad minidump AppID = 10 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Protocol version 48 Exe version 1.1.2.7/Stdio (cstrike) Exe build: 13:12:29 Aug 29 2013 (6153) STEAM Auth Server Server IP address couldn't exec listip.cfg couldn't exec banned.cfg
Стартует норм. Но, как я выше и писал, что я попытался его установить. При попытке зайти на игровой сервер он падает в кору. Вот, что происходит:
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration of GDB. Attempting to continue with the default i386 settings. "/usr/home/s/hlds/./hlds_linux.core" is not a core dump: File format is ambiguous No stack. debug.cmds:2: Error in sourced command file: No frame selected. email debug.log to linux@valvesoftware.com воскресенье, 4 декабря 2016 г. 20:32:45 (MSK): Server restart in 10 seconds
gdb мало чем помог:
s@beast:~/hlds % gdb GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd". (gdb) set gnutarget i386-marcel-freebsd (gdb) file hlds_linux warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration of GDB. Attempting to continue with the default i386 settings. Reading symbols from hlds_linux...done. (gdb) core hlds_linux.core Core was generated by `hlds_linux'. Program terminated with signal 11, Segmentation fault. #0 0x28436ae8 in ?? () (gdb) bt full #0 0x28436ae8 in ?? () No symbol table info available.
Поиски решения продолжаются...
Вы можете войти под своим логином или зарегистрироваться на сайте.