Jump to content
Korean Random
arzakon

[XvmFS] Xvm-stat для Linux

Recommended Posts

@JustPotter, что имено не работает и где именно пишет Error? Опишите ситуацию подробнее, прикрепите скриншоты и логи (файлы XVM.log и Python.log из папки игры)

Share this post


Link to post

Short link
Share on other sites

@JustPotter, что имено не работает и где именно пишет Error? Опишите ситуацию подробнее, прикрепите скриншоты и логи (файлы XVM.log и Python.log из папки игры)

Error пишет там, где должен отображаться пинг к серверам

И не показывает стату во время загрузки боя и в самом бою.

Вот скрины и логи

https://www.dropbox.com/s/m9oge6damwa1uib/python.log

https://www.dropbox.com/s/86mszz1rhw4ape5/xvm.log

evne.png

1uv4.png

daoy.png

 

OS: Xubuntu 13.04

Wine: 1.6

Share this post


Link to post

Short link
Share on other sites

@JustPotter, пинг не работает потому что он сделан через виндовый ping.exe. Надо как-то скормить его вайну.

 

Стату не показывает потому что она отключена в конфиге, включи и заработает.

Share this post


Link to post

Short link
Share on other sites

@JustPotter, пинг не работает потому что он сделан через виндовый ping.exe. Надо как-то скормить его вайну.

 

Стату не показывает потому что она отключена в конфиге, включи и заработает.

Спасибо, конфиг правил ранее, но почему то не сохранился.

Включил еще раз - работает.

Share this post


Link to post

Short link
Share on other sites

Виндозный ping.exe скормить не получиться никак, в Linux'е создание сетевых пакетов, обычному-ушастому юзеру запрещено, как следствие виндозный ping.exe работать будет но не сможет отослать ни единого пакета.

Попытался сделать софт-лин с /bin/ping в <путь до WorldOfTanks.exe>/ping.exe, но ожидаемо это не спасло так-как формат вывода виндозного ping.exe и Linux'ового ping разный.

Ща попробую сделать врапер чтоб вывод Linux'ового превращать в виндозный...

Share this post


Link to post

Short link
Share on other sites
Виндозный ping.exe скормить не получиться никак, в Linux'е создание сетевых пакетов, обычному-ушастому юзеру запрещено, как следствие виндозный ping.exe работать будет но не сможет отослать ни единого пакета.

http://wiki.winehq.org/Ping 

Edited by melizetinger

Share this post


Link to post

Short link
Share on other sites

Открепляю, т.к. начиная с XVM 5.0.0 использование XVMfs более не требуется для статистики под Linux/MacOS.

Share this post


Link to post

Short link
Share on other sites

Пасиб за линк, не знал что Wine'шники одумлялись этим, но ситуации это не меняет.

Виндозный ping.exe не работает а Linux'овый не прокатыввает так-как вывод не совместим.

 

PS: Хотя, в последнем транке ping'ера есть какая-то система определения операционки и передача ping'у других параметров с иной обработкой вывода, так что надежда есть. :)

Share this post


Link to post

Short link
Share on other sites

PS: Хотя, в последнем транке ping'ера есть какая-то система определения операционки и передача ping'у других параметров с иной обработкой вывода, так что надежда есть. :)

Осталось только чтобы кто-то с линухом довел это до ума.

Share this post


Link to post

Short link
Share on other sites

 

 

 

Эта устаревшая вики. В современом вайне ping.exe - это заглушка, ждущая -w секунд и возвращающая 0. (В винде нету команды sleep, скрипты всякие командлайные вместо этого используют ping -w).

Share this post


Link to post

Short link
Share on other sites

 

 

Эта устаревшая вики.

Да, скорее всего вы правы (давно уже wine не пользовался). Просто у меня в конце 2007 (если не путаю). на компе стоял тогда еще Debian Etch, была проблема с ping.exe. Помнится, перерыл половину Интернета тогда и на одном из сайтов нашел варианты решения и эту ссылку. Ссылку эту сейчас легко нашел, т.к. первой же строчкой выдает в поисковике при запросе "wine ping".

Share this post


Link to post

Short link
Share on other sites

В wine wiki на самом деле написано что ничего работать не будет, так как давай права ping.exe или нет, а процесс будет не ping.exe а wine а потом wineserver, а им всем этого надовать...

В общем не вариант, да ещё и в wine и wineserver стоит проверка на всякие попытки не коректных привелигерованных действий и отбой, чтоб всякие бяки из под wine не могли ничего плохого системе сделать.

Осталось только чтобы кто-то с линухом довел это до ума.

А в этом "доведении" нужно знать python?

Share this post


Link to post

Short link
Share on other sites

В wine wiki на самом деле написано что ничего работать не будет, так как давай права ping.exe или нет, а процесс будет не ping.exe а wine а потом wineserver, а им всем этого надовать...

В общем не вариант, да ещё и в wine и wineserver стоит проверка на всякие попытки не коректных привелигерованных действий и отбой, чтоб всякие бяки из под wine не могли ничего плохого системе сделать.

А в этом "доведении" нужно знать python?

немного нужно, тем более что вроде все уже сделано, нужно только как-то определить OS. Скорей всего она из-под wine определяется как винда, поэтому и не работает. Нет линуха под рукой, на котором можно было бы проверить.

Share this post


Link to post

Short link
Share on other sites

А может проще будет обойтись без определения через python а воспользоваться стандартной системной командой?

"uname" есть во всех Линуксах, если её выполнить без параметров она вернёт "тип" Линукса.

Не знаю что она вернёт на MacOS, на любом Линуксе она вернёт "Linux".

Ну а в винде этой команды просто нету.


Мнда, не проверил и ошибся, раньше из под wine можно было любую Линуксовую команду выполнить, сейчас уже чего-то не получается.

Но есть другой вариант, везде в Линуксе, будет переменная "DISPLAY", нормально она будет равна ":0", но важно что она должна быть, и должна не быть пустой так что можно проверку сделать на это.


PS: Кстати, у Линуксового ping'a есть аналог параметра "-w", это то-же "-W" но заглавная.

Edited by hash

Share this post


Link to post

Short link
Share on other sites
нужно только как-то определить OS

А нужно именно определить ОС? Поможет ли как-нибудь знание того, что мы просто из-под wine сейчас? Что-нибудь вида:

import _winreg

try:
  explorer = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,"Software\\Wine")
except WindowsError, e:
  print "error"

т.к.

import sys

print sys.platform

полагаю, вернет из под wine win32

Edited by melizetinger

Share this post


Link to post

Short link
Share on other sites

Проблема не в том, как сделать, а в том, кто это может сделать. У меня нет линуха под рукой, в виртуалке танки пускать совсем нет желания.

Share this post


Link to post

Short link
Share on other sites

Я "живу" на Линуксе, так что у меня "проблема" винду запустить, ну конечно не проблема, 250 виндозных юзеров не дают забыть этот "офф-топик", но на моих компах винда только в виртуалке.

Только в питоне я не бум-бум, из языков программирования ASM(лет 10ть назад) / Pascal(И турбо и дельфи) / ну и всяческие скриптинги т.е. DOS'овский comman.com, NT'ишный cmd.exe, VBS скриптики для домена и конечно sh/bash немного AWK/sed.

Но эти "зубодробительные конструкции" на python'e/perl'e для разбора строк, у меня мозги в папирус сворачиваются от них! :)

 

Если что надо быстренько проверить или от дебажить на Линуксе, всё есть, всё под парами, чего нет соберу/запатчу.


А нужно именно определить ОС? Поможет ли как-нибудь знание того, что мы просто из-под wine сейчас? Что-нибудь вида:

import _winreg

try:
  explorer = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,"Software\\Wine")
except WindowsError, e:
  print "error"

т.к.

import sys

print sys.platform

полагаю, вернет из под wine win32

Да, wine под страхом смертной казни не ппризнается что она не натуральная "блЯндинЬка", то-есть не натуральная винда, так что либо искать этот кусок реестра, который wine будет всегда создавать, или переменную DISPLAY, без DISPLAY wine просто стартовать откажется.


Мнда, вкратце, Линуксойдам можно забыть про ping'er.

Более развёрнуто:

Можно почитать "ломание копий" с разрабами wine в 2009м году, всё на аглицком.

Вкратце, аргумент разрабов wine:

Нефиг детектить и подстраиваться, лучше напишите тестовую прогу для нужной не работающей или не корректно работающей функции и помогите её пофиксить.

 

Детектить ветку реестра не вариант, её создаёт ещё и wined3d, компанент который ставиться на винду для сборки виндозной проги для работы её в Линуксе в "почти" нативном виде.

Конечно шанс на пересечение Танков и "wined3d на одном компе минимален, но дядька Мэрфи всегда с нами! :)

 

Но сошлись что такая функция таки нужна хотя-бы для того чтоб разрабы прог могли проанализировать как много народу гоняют их прогу под wine.

 

Для обнаружения wine "всего лишь" нужно проверить наличие функции wine_get_version в ntdll.

 

Только это нам уже не поможет.

Так как родной, системный, Линуксовый ping из под wine больше не запустить.

В общем сушите вёсла господа.

 

PS:Есть один вариантик который надо тщательно проверить, но надежда минимальна...

Edited by hash

Share this post


Link to post

Short link
Share on other sites

блин, хватит уже. нет никакой проблемы, нужно просто сесть и сделать.

пойду виртуалку ставить, надоело это уже

Share this post


Link to post

Short link
Share on other sites

Очень надеюсь и жду чуда от вас Sir Max, как это обычно и случается, вы крайне верно выбрали как ник так и аватарку! :)

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...