Forums » Bugs

Voice Chat

Jul 03, 2016 Xeha link
Today i tried activating Voice Chat which just gave "Unable to enable Voice Chat\n Voice Chat Initialization failed".

checked the log and got this:

Voice Chat failed to load: LIBRARY NOT LOADED
Voice Chat failed to initialize: LIBRARY NOT LOADED
Initializing Voice Chat with default settings.
Voice Chat failed to initialize.

anything special needed for VO voicechat @ linux?

EDIT: wrong forum, move to linux pls.
Jul 07, 2016 raybondo link
What distribution and architecture of Linux are you using?
Jul 08, 2016 Xeha link
Linux HPML370G6 4.4.0-24-lowlatency #43~14.04.1-Ubuntu SMP PREEMPT Thu Jun 9 10:35:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

i didnt try it on another distro yet, cause i only tried it once to activate VoiceChat since i play VO.

do i need special libs for it to work? if so just tell me which :)

unfortunately, it dosnt tell me which libs it need. ima try later with strace to find out myself.

EDIT: strace shows all requested libs at runtime are loaded and once i click "enable voicechat" it dosnt even try to load any files.
Jul 08, 2016 raybondo link
It's supposed to attempt to load the drivers/gkvc.so file in the .vendetta directory, if not then make sure it's present and has executable permissions, I suppose.
Jul 08, 2016 Xeha link
i've checked and VO dosnt even try to load that library.

it only loads these, but not gkvc.so (it exist, even a failed open would be shown via strace)

open("/home/XXX/.vendetta/drivers/libfmodex64.so", O_RDONLY|O_CLOEXEC) = 4
open("/home/XXX/.vendetta/drivers/opengl4.so", O_RDONLY|O_CLOEXEC) = 4
open("/home/XXX/.vendetta/drivers/gkgl.so", O_RDONLY|O_CLOEXEC) = 4
open("/home/XXX/.vendetta/drivers/gkalsa.so", O_RDONLY|O_CLOEXEC) = 4
open("/home/XXX/.vendetta/drivers/osssound.so", O_RDONLY|O_CLOEXEC) = 4
open("/home/XXX/.vendetta/drivers/opengl4.so", O_RDONLY) = 4
open("/home/XXX/.vendetta/drivers/gkgl.so", O_RDONLY) = 4
open("/home/XXX/.vendetta/drivers/gkalsa.so", O_RDONLY) = 4
open("/home/XXX/.vendetta/drivers/osssound.so", O_RDONLY) = 4

EDIT:
loading the lib forcefully via LD_PRELOAD=/home/XXX/.vendetta/drivers/gkvc.so dosnt work either, as then VO hangs when entering the universe...
Jul 08, 2016 raybondo link
That's strange that you don't see it attempting to load the library at all.
Does it attempt to chdor("drivers") and then chdir("..")?

Today's update will add some more debugging info into the errors.log so we can see what's happening a little better.
Jul 09, 2016 Xeha link
now i see it tries to load it, but looking in the wrong place.

as this is a linker issue, running vo with this: LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/XXX/.vendetta/drivers" makes it work!

without adjusted ENV:

[pid 26835] chdir("drivers") = 0
[pid 26835] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 24
[pid 26835] fstat(24, {st_mode=S_IFREG|0644, st_size=228982, ...}) = 0
[pid 26835] mmap(NULL, 228982, PROT_READ, MAP_PRIVATE, 24, 0) = 0x7faa969c4000
[pid 26835] close(24) = 0
[pid 26835] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/x86_64-linux-gnu/tls/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/x86_64-linux-gnu/tls/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/x86_64-linux-gnu/tls/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/x86_64-linux-gnu/tls", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/x86_64-linux-gnu/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/x86_64-linux-gnu/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/x86_64-linux-gnu/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 24734] sched_yield( <unfinished ...>
[pid 26835] stat("/lib/x86_64-linux-gnu", <unfinished ...>
[pid 24734] <... sched_yield resumed> ) = 0
[pid 26835] <... stat resumed> {st_mode=S_IFDIR|0755, st_size=213, ...}) = 0
[pid 26835] open("/usr/lib/x86_64-linux-gnu/tls/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/x86_64-linux-gnu/tls/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/x86_64-linux-gnu/tls/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/x86_64-linux-gnu/tls", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/x86_64-linux-gnu/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/x86_64-linux-gnu/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/x86_64-linux-gnu/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=2947, ...}) = 0
[pid 26835] open("/lib/tls/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/tls/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/tls/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/tls", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/lib/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/lib", {st_mode=S_IFDIR|0755, st_size=48, ...}) = 0
[pid 26835] open("/usr/lib/tls/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/tls/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/tls/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/tls", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/x86_64/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib/x86_64", 0x7faa91dc6670) = -1 ENOENT (No such file or directory)
[pid 26835] open("/usr/lib/gkvc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 26835] stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=1030, ...}) = 0
[pid 26835] munmap(0x7faa969c4000, 228982) = 0
[pid 26835] chdir("..") = 0
[pid 26835] write(1, "Error loading gkvc.so\n", 22) = 22
[pid 26835] write(1, "dlerror = 'gkvc.so: cannot open "..., 79) = 79
[pid 26835] write(1, "Voice Chat failed to load: (1) L"..., 50) = 50
Jul 09, 2016 raybondo link
weird. can you post the strace where it does work? odd that the paths it printed didn't include 'drivers'.
Jul 09, 2016 Xeha link
no need to post it, all LD_LIBRARY_PATH does is telling another directory to look for when loading a dynamic lib with dlopen.

so you'd see a open("/home/XXX/.vendetta/drivers/gkvc.so", O_RDONLY)

im not using the updater to launch VO, that might be the issue. i wouldnt be surprised if the launcher does update the LD_LIBRARY_PATH to make things work. for a clean/proper way to do this, read further below.

from man:

dlopen()
The function dlopen() loads the dynamic library file named by the null-terminated string filename and returns an opaque "handle" for the dynamic library. If filename is NULL, then the returned handle is for the main program. If filename contains a slash
("/"), then it is interpreted as a (relative or absolute) pathname. Otherwise, the dynamic linker searches for the library as follows (see ld.so(8) for further details)

ie, change your source accordingly:

look for dlopen("gkvc.so") and replace with dlopen("./gkvc.so")

./ because you chdir to drivers. you could avoid to chdir at all and just dlopen("./drivers/gkvc.so")
Jul 09, 2016 raybondo link
Ah yeah, the updater does add './drivers' and '.' path to the LD_LIBRARY_PATH before launching VO.

Thanks. I don't think making the change you suggest would cause any problems.
Jul 09, 2016 Xeha link
i'll report back once theres an update.
Jul 24, 2016 ianw093@gmail.com link
Not a programmer, so please have patience.
My system is a generic android tablet (Polaroid A8)
The problem here is sometimes my voice chat fails completely. I've tried resetting Bluetooth, turning the headphones/mic off then on again, even rebooting the tablet. Twice I've run a factory reset and reinstalled. Still having issues.
I am using some plugins, as is necessary for mobile users.
My plugins are droidbuttons, horn and radarswap.

Thank you.
Jul 25, 2016 Xeha link
create your own thread... this thread is about a different issue.
Jul 25, 2016 incarnate link
Xeha, I believe Ray addressed this in the last patch, although it may not have been mentioned in the changelog.
Jul 25, 2016 Xeha link
just checked, thanks for including my change. it loads the gkvc.so correctly now even without the adjusted ENV