Closed inukaze closed 1 year ago
attribute 53 is NV_CTRL_STRING_GPU_UTILIZATION
, GPU Load. It seems like there isn't support for your graphics cards for that metrics in nvctrl
Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.
$LIB is a dynamic/runtime linker's (whatever you wanna call it) built-in "variable" (notice the backslash so bash would leave it alone), you don't need to define it yourself.
attribute 53 is
NV_CTRL_STRING_GPU_UTILIZATION
, GPU Load. It seems like there isn't support for your graphics cards for that metrics in nvctrl
Thank you very much for the answer :D. Well if possible use an external command to get the GPU usage ? like the command i use on bash.
Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.
$LIB is a dynamic/runtime linker's (whatever you wanna call it) built-in "variable" (notice the backslash so bash would leave it alone), you don't need to define it yourself.
That thing is not working, because of that i prefer fix by my hand. and well i am working on my own version of the mangohud script.
That thing works fine, you can ignore that LD_PRELOAD spam if HUD works. MangoHud installs 64bit libs to /usr/lib/mangohud/lib
as that's how Arch Linux does it. Some distros expect lib
to be 32bit instead (even on 64bit os, weirdly) but should finally manage to load it from i386-linux-gnu
etc folder symlink.
That thing works fine, you can ignore that LD_PRELOAD spam if HUD works. MangoHud installs 64bit libs to
/usr/lib/mangohud/lib
as that's how Arch Linux does it. Some distros expectlib
to be 32bit instead (even on 64bit os, weirdly) but should finally manage to load it fromi386-linux-gnu
etc folder symlink.
that just work for 64 Bits binary executables, with the 32 bits binary executable the mangohud never start.
all distros can use /lib /lib64 /usr/lib /usr/lib64
they are the common folders for 32 bits libs and 64 bits libs, for all GNU distros, the folders like "/usr/lib/i386-linux-gnu" or "/usr/lib/x86_64-linux-gnu" or "/usr/lib/linux-gnu-amd64" are just expected on Debians. and well not have much sense because some packages of 64 Bits replace libs of 32 Bits, because ever the most important package are installed on /usr/lib, without distintion of 32 Bits or 64 Bits. like "nvidia", "sdl" / "sdl1.2" / "sdl2"
Just debians use /lib and /usr/lib for both architectures, another distros like ArchLinux, Slackware, GoboLinux, use the common paths like the software expect 32 Bits and/or 64 Bits libs.
Problem probably is that there are files in /usr/lib/mangohud/lib
. Should probably leave just /usr/lib/mangohud/lib32
and /usr/lib/mangohud/lib64
and add i386-linux-gnu
etc symlinks to these.
E: Crap, seems it doesn't search in other "LD_LIBRARY_PATH"'s if LD_PRELOAD path is absolute.
Hi there again. well i wrote two versions of my script
1 using OD :
#!/usr/bin/env bash
# Inukaze :
Nombre="MangoHud"
Ruta_Actual="$PWD" &> /dev/null
OBJETIVO="$@"
OBJETIVO=$(od -An -t x1 -j 4 -N 1 "$1")
if [ "$OBJETIVO" == " 02" ]; then
export LIB="lib64"
fi
if [ "$OBJETIVO" == " 01" ]; then
export LIB="lib32"
fi
#MangoHud :
if [ "$#" -eq 0 ]; then
programname=`basename "$0"`
echo "ERROR: No program supplied"
echo
echo "Usage: $programname <program>"
exit 1
fi
if [ "$1" = "--dlsym" ]; then
MANGOHUD_DLSYM=1
shift
fi
MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud.so"
if [ "$MANGOHUD_DLSYM" = "1" ]; then
MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi
# Preload using the plain filesnames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/$LIB/"
exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"
2 using objdump :
#!/usr/bin/env bash
# Inukaze :
OBJETIVO=$(objdump -f "$1" | sed -n 2p | awk '{print $5}' | sed '$ s/,$//g')
#OBJDUMP :
if [ "$OBJETIVO" == "elf64-x86-64" ]; then
export LIB="lib64"
fi
if [ "$OBJETIVO" == "pei-x86-64" ]; then
export LIB="lib64"
fi
if [ "$OBJETIVO" == "elf64-x86-64" ]; then
export LIB="lib64"
fi
if [ "$OBJETIVO" == "elf32-i386" ]; then
export LIB="lib32"
fi
if [ "$OBJETIVO" == "pei-i386" ]; then
export LIB="lib32"
fi
if [ "$OBJETIVO" == "i386" ]; then
export LIB="lib32"
fi
#MangoHud :
if [ "$#" -eq 0 ]; then
programname=`basename "$0"`
echo "ERROR: No program supplied"
echo
echo "Usage: $programname <program>"
exit 1
fi
if [ "$1" = "--dlsym" ]; then
MANGOHUD_DLSYM=1
shift
fi
MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud.so"
if [ "$MANGOHUD_DLSYM" = "1" ]; then
MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi
# Preload using the plain filesnames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/$LIB/"
exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"
3 - After a lot of test i don't find the way for test with Win32 APP, like a 32 Bits windows binary executable. Then i use the follow commands :
reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver" ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32 ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1
cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE
++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ++ awk '{print $5}' ++ sed -n 2p ++ sed '$ s/,$//g'
- OBJETIVO=elf32-i386
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == pei-x86-64 ']'
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == elf32-i386 ']'
- export LIB=lib32
- LIB=lib32
- '[' elf32-i386 == pei-i386 ']'
- '[' elf32-i386 == i386 ']'
- '[' 2 -eq 0 ']'
- '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
- '[' 1 = 1 ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
- exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-x86/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.88". WINE VERSION = wine-1.8.6
MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: Failed to open 32bit libXNVCtrl.so.0: libXNVCtrl.so.0: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio MANGOHUD: XNVCtrl loader failed to load MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 246 Current serial number in output stream: 250
locate libXNVCtrl.so.0 | grep /usr/lib
/usr/lib64/libXNVCtrl.so.0
/usr/lib64/libXNVCtrl.so.0.0.0
After internet search i found this thread on nvidia forum
And then i mount a 32 Bits distro and compile again that library from there This is the Makefily edited for make the library :
# Copyright (c) 2008 NVIDIA, Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
RANLIB ?= ranlib
CFLAGS += -fPIC
all: libXNVCtrl.a libXNVCtrl.so
libXNVCtrl.a : libXNVCtrl.a(NVCtrl.o)
$(RANLIB) $@
libXNVCtrl.so: NVCtrl.o
$(RM) $@ $@.*
$(CC) -shared -Wl,-soname=$@.0 -o $@.$(NVIDIA_VERSION) $(LDFLAGS) $^ -lXext -lX11
ln -s $@.$(NVIDIA_VERSION) $@.0
ln -s $@.0 $@
NVCtrl.o : NVCtrl.h nv_control.h NVCtrlLib.h
.INTERMEDIATE: NVCtrl.o
clean ::
rm -f libXNVCtrl.a *.o
rm -f libXNVCtrl.so libXNVCtrl.so.*
.PHONY: clean
Well i try again :
reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver" ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32 ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1
cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE
++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ++ sed -n 2p ++ awk '{print $5}' ++ sed '$ s/,$//g'
- OBJETIVO=elf32-i386
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == pei-x86-64 ']'
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == elf32-i386 ']'
- export LIB=lib32
- LIB=lib32
- '[' elf32-i386 == pei-i386 ']'
- '[' elf32-i386 == i386 ']'
- '[' 2 -eq 0 ']'
- '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
- '[' 1 = 1 ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
- exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-x86/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.106". WINE VERSION = wine-1.8.6
MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: XNVCtrl is using display :0 MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 246 Current serial number in output stream: 250
¬¬
Well i try with the mangohud script came with the package :
reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver" ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32 ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1
cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud "$WINELOADER" OR2006C2C.EXE
Here i go again xD
bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE
++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE
++ awk '{print $5}'
++ sed -n 2p
++ sed '$ s/,$//g'
+ OBJETIVO=elf32-i386
+ '[' elf32-i386 == elf64-x86-64 ']'
+ '[' elf32-i386 == pei-x86-64 ']'
+ '[' elf32-i386 == elf64-x86-64 ']'
+ '[' elf32-i386 == elf32-i386 ']'
+ export LIB=lib32
+ LIB=lib32
+ '[' elf32-i386 == pei-i386 ']'
+ '[' elf32-i386 == i386 ']'
+ '[' 2 -eq 0 ']'
+ '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
+ MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
+ '[' 1 = 1 ']'
+ MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
+ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
+ LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
+ exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ]
skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/MangoHud.conf [ not found ]
skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ]
parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ]
MANGOHUD: Connected to D-Bus as ":1.109".
WINE VERSION = wine-1.8.6
MANGOHUD: Failed to initialize CPU power data
MANGOHUD: Failed to load NVML
MANGOHUD: XNVCtrl is using display :0
MANGOHUD: Uploading is disabled (permit_upload = 0)
Version: 4.2
X Error of failed request: GLXBadDrawable
Major opcode of failed request: 153 (GLX)
Minor opcode of failed request: 16 (X_GLXVendorPrivate)
Serial number of failed request: 249
Current serial number in output stream: 253
- '[' 2 -eq 0 ']'
- '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
- MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud.so'
- '[' 1 = 1 ']'
- MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
- LD_PRELOAD=':/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
- LD_LIBRARY_PATH=':/usr/lib/mangohud/$LIB/'
- exec env MANGOHUD=1 'LD_LIBRARY_PATH=:/usr/lib/mangohud/$LIB/' 'LD_PRELOAD=:/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
One More Time :
cd PATH="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wineserver" ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/lib" ; \
export WINEDEBUG=-all ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1
cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
mangohud-objdump "$WINELOADER" OR2006C2C.EXE
++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ++ sed -n 2p ++ awk '{print $5}' ++ sed '$ s/,$//g'
- OBJETIVO=elf32-i386
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == pei-x86-64 ']'
- '[' elf32-i386 == elf64-x86-64 ']'
- '[' elf32-i386 == elf32-i386 ']'
- export LIB=lib32
- LIB=lib32
- '[' elf32-i386 == pei-i386 ']'
- '[' elf32-i386 == i386 ']'
- '[' 2 -eq 0 ']'
- '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
- '[' 1 = 1 ']'
- MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
- LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
- exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.114". WINE VERSION = wine-1.8.6
MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: XNVCtrl is using display :0 MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 249 Current serial number in output stream: 253
Next Try :
reset ; bash -x mangohud "$WINELOADER" OR2006C2C.EXE
- '[' 2 -eq 0 ']'
- '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
- MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud.so'
- '[' 1 = 1 ']'
- MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
- LD_PRELOAD=':/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
- LD_LIBRARY_PATH=':/usr/lib/mangohud/$LIB/'
- exec env MANGOHUD=1 'LD_LIBRARY_PATH=:/usr/lib/mangohud/$LIB/' 'LD_PRELOAD=:/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Well with wine does not work for me, i got some kind of issue with the 32 Bits lib, for wine you don't had some «injector» like « ssr-glinject » ?
With some native games works fine in both architectures but with anothers does not work for example
Colin McRae Rally 2.0 Remasted [ Work ] (32 Bits & 64 Bits)
pcsxr (+ GPU Pete's XGL2 Plugin ) (Just 32 Bits, works fine)
pcsxr (+ GPU Mesa GL Plugin (64 Bits, works wrong)
with retroarch can work better or worse, core depend
Well with another things just dont work like Re-Volt Mighty No. 9 SuperTuxKart Shovel Knight Legend Of Grimrock Need For Speed II Special Edition HorizonChase Turbo [Unity3D Engine] Quake 3 (Team) Arena [ioquake3 engine] Return To Castle Wolfenstein [ iortcw engine ]
System Shock [ shockolate engine ]
Duke Nukem 3D [ eDuke32 engine ]
Hi there yestarday i test again MangoHud. (and GOverlay but that is another theme). well i know the project is too much new and i understand you need test and see which things are better improve first.
Well yesterday testing with Tibia Linux client (64 Bits) i notice some weird in % of GPU
Right now I test glxgears with the follow command:
reset ; MANGOHUD_DLSYM=1 mangohud glxgears
Command Output :
Then i decide to test with « Sega Outrun 2006 » using « Wine 1.8.6 » ( 32 Bits ) again to the terminal , enter in the game directory, and use environment variables for set the wine version i wish to use and the architecture of wine
Then is moment for try the follow command
reset ; MANGOHUD_DLSYM=1 mangohud wine OR2006C2C.EXE
Command output :
Well i notice the follow thing :
ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
I think this had two way for fix, but first i go to analyze the mangohud bash script, right now have this content :
Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.
First, the simple way, just adjusting script and leave the follow content
PRO : This version of script, works perfectly with native games of 64 Bits CON : This does not work for compat layers like Wine or Proton when need run 32 Bits Games.
Second way : i am thinking is better use the tool "file" for determinate the "Architecture" of file.
for example when use file with a native file :
file /usr/bin/pcsxr32
then is prefer just trim the need part
file /usr/bin/pcsxr32 | cut -c26-27
and then obtain "32" for the 32 Bits of this executable, in the case of 64 Bits
file /usr/bin/pcsxr64
then is prefer just trim the need part
file /usr/bin/pcsxr64 | cut -c23-24
and then obtain "64" for the 64 Bits of this executable.
The problem with this method is not very accurate. better is use this another command
od -An -t x1 -j 4 -N 1 /usr/bin/pcsxr32
od -An -t x1 -j 4 -N 1 /usr/bin/pcsxr64
have a one blank space before the 0 in both cases is " 0?" In ELF Format ( Just for Native FIles ) 01 for 32 Bits 02 for 64 Bits
well then for windows file
objdump -f bin64.exe | grep "pei-" | awk '{print $5}'
objdump -f bin32.exe | grep "pei-" | awk '{print $5}'
the objdump can be use for determine the native binary executables too :
objdump -f /usr/bin/pcsxr64
Well the unique info can be useful for use with mangohud are elf64-x86-64 and i386:x86-64, then can be isolate by this way
objdump -f /usr/bin/pcsxr64 | sed -n 2p | awk '{print $5}'
objdump -f /usr/bin/pcsxr64 | sed -n 3p | awk '{print $2}' | sed '$ s/,$//g'
objdump -f /usr/bin/pcsxr32
objdump -f /usr/bin/pcsxr32 | sed -n 2p | awk '{print $5}'
objdump -f /usr/bin/pcsxr32 | sed -n 3p | awk '{print $2}' | sed '$ s/,$//g'
well i think is most important improve the script for determine if binary executable is 32 Bits or 64 Bits, after detect that, use the mangohud with the libs mangohud need for run.
Well in some hours or days i share my own version of mangohud script for run it determinating the binary executable. by the moment the things i feel should be improve, apart of the script.
GOVerlay The MangoHud should can be positioning in any part of screen, please use a thing for determinate the resolution in use, and in base of that, became in something relative for use pixel position for put the hud in any part the user need.
The GOverlay i need a desing of that GUI can be use in 1024x768, because is the resolution i ever use. but the minimal size of window is huge for my resolution :
i need a better scalable gui.
Well returning to the mango, and the thing is not getting the % of use from GPU. well i think you should need use the same method as conky for execute external commands. but first i am using nvidia drivers 304.137 i can use the nvidia-settings for get information
nvidia-settings -q all | grep "Attribute 'GPU" | awk '{print $1,$2}'
For example i had 2 GB of Memory but if i want to use memory in use i can use the follow command :
echo "$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t) MB"
but if i want a constant monitoring of that vale i prefer use :watch -t -n0.1 'echo "$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t) MB"'
Well the anothers attributed can be very useful for the hud :
Well you can use something like to calculate and get the % of usage of GPU :
nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory | awk '{usage=('"$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t)"')*100/('"$(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory -t)"')} END {print usage "%"}' | sed -e 's/.[0-9].//g'
Or you can try with watch command
watch -t -n0.1 -t echo $(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory | awk '{usage=('"$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t)"')*100/('"$(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory -t)"')} END {print usage "%"}' | sed -e 's/.[0-9].//g')
Dunno what is :
Failed to query attribute '53'.
?Well that is all for now, i am going to make my own version of /usr/bin/mangohud script for use the libs the game executable binary needs for the mangohud can be active and use.