sailfishos-sony-tama / main

Documentation, releases, and issues
MIT License
36 stars 7 forks source link

PulseAudio looks for 32-bit libs and fails to find 64-bit variants #135

Closed rinigus closed 3 years ago

rinigus commented 3 years ago

Some libs are not loaded as 32-bit versions were found first. As a result, 64-bit version is not checked. Not sure if it matters, but logging here anyway.

Extract from strace (see below for more)

mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x779e8e7000
prctl(PR_SET_VMA, 0, 0x779e8e7000, 0x64000, 0x77a01115c0) = 0
openat(AT_FDCWD, "/vendor/lib/soundfx/libqcomvisualizer.so", O_RDONLY|O_CLOEXEC) = 45
readlinkat(AT_FDCWD, "/proc/self/fd/45", "/vendor/lib/soundfx/libqcomvisua"..., 4096) = 40
fstat(45, {st_mode=S_IFREG|0644, st_size=32896, ...}) = 0
fstatfs(45, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=1251712, f_bfree=785588, f_bavail=768692, f_files=320000, f_ffree=288399, f_fsid={val=[951724351, 1991834331]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOATIME}) = 0
pread64(45, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0 \0\0004\0\0\0"..., 64, 0) = 64
write(2, "\"/vendor/lib/soundfx/libqcomvisu"..., 70"/vendor/lib/soundfx/libqcomvisualizer.so" is 32-bit instead of 64-bit) = 70
write(2, "\n", 1

strace for PA attached

HYBRIS_LD_LIBRARY_PATH=/vendor/lib64:/vendor/lib64/hw strace -f pulseaudio -n --file=/etc/pulse/arm_droid_default.pa > logs/pa.strace 2>&1

shows that HYBRIS path was not effective

pa_strace.txt

Originally posted by @rinigus in https://github.com/sailfishos-sony-tama/main/issues/107#issuecomment-785037503

rinigus commented 3 years ago

When running with HYBRIS_LD_DEBUG=5 pulseaudio -n --file=/etc/pulse/arm_droid_default.pa:

FOUND acdb_loader_init_ACDB in /odm/lib64/libacdbloader.so (0xb858) 104
 Diag_LSM_Init: Failed to open handle to diag driver, error = 13diag: In diagpkt_tbl_reg, service not initialized.
SEARCH acdb_loader_get_calibration in /odm/lib64/libacdbloader.so@0x7f58e0c000 (gnu)
FOUND acdb_loader_get_calibration in /odm/lib64/libacdbloader.so (0x11088) 160
[ "/vendor/lib/soundfx/libqcomvisualizer.so" find_loaded_library_by_soname failed (*candidate=n/a@(nil)). Trying harder... ]
[ opening /vendor/lib/soundfx/libqcomvisualizer.so from namespace (default) ]
name /vendor/lib/soundfx/libqcomvisualizer.so: allocating soinfo for ns=0x7f59fa3010
name /vendor/lib/soundfx/libqcomvisualizer.so: allocated soinfo @ 0x7f59f447f0
"/vendor/lib/soundfx/libqcomvisualizer.so" is 32-bit instead of 64-bit
name /vendor/lib/soundfx/libqcomvisualizer.so: freeing soinfo @ 0x7f59f447f0
[ "/vendor/lib/libqtigef.so" find_loaded_library_by_soname failed (*candidate=n/a@(nil)). Trying harder... ]
[ opening /vendor/lib/libqtigef.so from namespace (default) ]
library "/vendor/lib/libqtigef.so" not found
[ "/vendor/lib/soundfx/libqcompostprocbundle.so" find_loaded_library_by_soname failed (*candidate=n/a@(nil)). Trying harder... ]
[ opening /vendor/lib/soundfx/libqcompostprocbundle.so from namespace (default) ]
name /vendor/lib/soundfx/libqcompostprocbundle.so: allocating soinfo for ns=0x7f59fa3010
name /vendor/lib/soundfx/libqcompostprocbundle.so: allocated soinfo @ 0x7f59f447f0
"/vendor/lib/soundfx/libqcompostprocbundle.so" is 32-bit instead of 64-bit
name /vendor/lib/soundfx/libqcompostprocbundle.so: freeing soinfo @ 0x7f59f447f0
[ "/vendor/lib/hw/sound_trigger.primary.sdm845.so" find_loaded_library_by_soname failed (*candidate=n/a@(nil)). Trying harder... ]
[ opening /vendor/lib/hw/sound_trigger.primary.sdm845.so from namespace (default) ]
name /vendor/lib/hw/sound_trigger.primary.sdm845.so: allocating soinfo for ns=0x7f59fa3010
name /vendor/lib/hw/sound_trigger.primary.sdm845.so: allocated soinfo @ 0x7f59f447f0
"/vendor/lib/hw/sound_trigger.primary.sdm845.so" is 32-bit instead of 64-bit
name /vendor/lib/hw/sound_trigger.primary.sdm845.so: freeing soinfo @ 0x7f59f447f0
E: [pulseaudio] droid-util.c: Audio calibration file generation failed! (/data/vendor/audio/cirrus_sony.cal doesn't exist)
E: [pulseaudio] droid-util.c: Audio calibration file generation failed! (/data/vendor/audio/cirrus_sony.cal doesn't exist)