Forums » Bugs
Voice Chat
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.
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.
What distribution and architecture of Linux are you using?
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.
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.
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.
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...
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...
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.
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.
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
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
weird. can you post the strace where it does work? odd that the paths it printed didn't include 'drivers'.
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")
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")
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.
Thanks. I don't think making the change you suggest would cause any problems.
i'll report back once theres an update.
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.
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.
create your own thread... this thread is about a different issue.
Xeha, I believe Ray addressed this in the last patch, although it may not have been mentioned in the changelog.
just checked, thanks for including my change. it loads the gkvc.so correctly now even without the adjusted ENV