[4.1.0.24 GEMINI PDA] No sound after upgrade

REPRODUCIBILITY (% or how often): 100%
BUILD ID = OS VERSION (Settings > About product): 4.1.0.24
HARDWARE (XA2, Xperia 10…): Gemini PDA
UI LANGUAGE: Slovak
REGRESSION: (compared to previous public release: Yes, No, ?): 4.0.1.48 OK

DESCRIPTION:

The sound doesn’t work

  • in sound recordings
  • in the video
  • in alerts
    … nowhere
    neither in the speaker nor in the wired headphones. Sound is on - set to on.
    I tried to increase/decrease the volume, restart the device, …

PRECONDITIONS:

STEPS TO REPRODUCE:

Play a music or video, or set an alert.

EXPECTED RESULT:

Play sound.

ACTUAL RESULT:

No sound.

ADDITIONAL INFORMATION:

(Please ALWAYS attach relevant data such as logs, screenshots, etc…)

EDIT 1:
pulseaudio --check - is unresponsive (does not print anything)
pulseaudio --start - restarts the device

EDIT 2:
pulseaudio --dump-modules
E: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib/pulse-14.2/modules/module-droid-glue.so: libdroid-util.so: unable to open shared object file: Directory or the file does not exist
E: [pulseaudio] modinfo.c: Failed to open module "/usr/lib/pulse-14.2/modules/module-droid-glue": file not found
E: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib/pulse-14.2/modules/module-policy-enforcement.so: libmeego-common.so: unable to open shared object file: Directory or the file does not exist
E: [pulseaudio] modinfo.c: Failed to open module "/usr/lib/pulse-14.2/modules/module-policy-enforcement": file not found

3 Likes

the outputs from --dump quoted above are normal, also on working devices.

I fixed it though by doing ln -s /vendor /odm but am not sure this doesn’t have bad sideffects.

EDIT: Sven on Telegram reported extremely high battery drain after doing the symlink above. Possibly related to the GSensor going haywire. I have also seen this. It may or may not be completele (un)related to the sound thing and this workaround though,

So the more conservative version would be:

$ devel-su
# mkdir -p /odm/etc/
# cd /odm/etc/
# ln -s /vendor/etc/audio_param .
# exit
$ systemctl --user restart pulseaudio.service
$ systemctl --user status pulseaudio.service
3 Likes

Background:

when launching pulseaudio using the parameters from the systemd service, an strace shows that it segfaults when trying to access paths under /odm/etc. As that dir seems to be missing I tried the symlink and it did away with the segfault.

# strace pulseaudio --daemonize=no -n --file=/etc/pulse/arm_droid_default.pa

close(15)                               = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1622371252, tv_nsec=385140822}) = 0
getuid32()                              = 0
gettid()                                = 5705
writev(12, [{iov_base="\0I\26\264k\263`V\310\364\26", iov_len=11}, {iov_base="\3", iov_len=1}, {iov_base="NVRAM\0", iov_len=6}, {iov_base="NVM_CloseFileDesc: Open by Reado"..., iov_len=66}], 4) = 84
clock_gettime(CLOCK_REALTIME, {tv_sec=1622371252, tv_nsec=386283595}) = 0
getuid32()                              = 0
gettid()                                = 5705
writev(12, [{iov_base="\0I\26\264k\263`K8\6\27", iov_len=11}, {iov_base="\3", iov_len=1}, {iov_base="AudioParamParser\0", iov_len=17}, {iov_base="isCustXmlEnable(), Get cust xml "..., iov_len=75}], 4) = 104
fstatat64(AT_FDCWD, "/odm/etc/audio_param//AudioParamOptions.xml", 0xffc97428, 0) = -1 ENOENT (No such file or directory)
fstatat64(AT_FDCWD, "/vendor/etc/audio_param//AudioParamOptions.xml", {st_mode=S_IFREG|0644, st_size=2611, ...}, 0) = 0
gettimeofday({tv_sec=1622371252, tv_usec=387790}, NULL) = 0
futex(0xe50914f8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
fstatat64(AT_FDCWD, "/vendor/etc/audio_param//AudioParamOptions.xml", {st_mode=S_IFREG|0644, st_size=2611, ...}, 0) = 0
fstatat64(AT_FDCWD, "/vendor/etc/audio_param//AudioParamOptions.xml", {st_mode=S_IFREG|0644, st_size=2611, ...}, 0) = 0
fstatat64(AT_FDCWD, "/vendor/etc/audio_param//AudioParamOptions.xml", {st_mode=S_IFREG|0644, st_size=2611, ...}, 0) = 0
openat(AT_FDCWD, "/vendor/etc/audio_param//AudioParamOptions.xml", O_RDONLY) = 15
fstat64(15, {st_mode=S_IFREG|0644, st_size=2611, ...}) = 0
read(15, "<?xml version=\"1.0\" encoding=\"UT"..., 4096) = 2611
read(15, "", 4096)                      = 0
close(15)                               = 0
openat(AT_FDCWD, "/odm/etc/audio_param/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x6052317b} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

Someone more knowledgeable than me should review that and suggest a correct fix.

In case it matters, this is from an OTA updated device, not flashed.

Yes, I upgraded OTA.

I confirm, this helped, thank you.
Should I remember this for the next upgrade, or is it a permanent fix?

Only time will tell I guess.

Perfect fix, thank you.

OS update 4.2.0 will contain the fix.

2 Likes

Sorry if this sounds off-topic…

I just bought an Xperia 10 II and pulseudio always dies generating a coredump. It complains about a missing file (checked with strace) called “/data/vendor/audio/cirrus_sony.cal”

I’m in 4.1.0.24, but flashed and upgraded to 4.2 the device several times with no solution…

Any clues as to what may be happening? I (maybe mistakenly), upgraded Android baseband to 59.1.A.2.145-R4B before unlocking bootloader…Could it be that the filesystem layout is different?

Best Regards.