script.module.inputstreamhelper: Playback fails using newer Widevine CDM 4.10.2252.0 on ARM
It seems our users updating Widevine CDM on ARM are downloading a different kind of libwidevinecdm.so.
The error shown in the Kodi log is:
ERROR: AddOnLog: InputStream Adaptive: Unable to load widevine shared library (/storage/.kodi/cdm/libwidevinecdm.so)
ERROR: AddOnLog: InputStream Adaptive: OpenDRMSystem failed
The older Widevine CDM has the following dependencies:
kodi04:~ # cd ~/.kodi/userdata/addon_data/script.module.inputstreamhelper/backup
kodi04:backup # ls -l 13505.111.0/libwidevinecdm.so
-rwxr--r-- 1 root root 7297324 Feb 4 19:03 13505.111.0/libwidevinecdm.so
kodi04:backup # sha1sum 13505.111.0/libwidevinecdm.so
d5ee489d5c409ff6cb423f318a23dba71ff2f2b0 13505.111.0/libwidevinecdm.so
kodi04:backup # ldd 13505.111.0/libwidevinecdm.so
linux-vdso.so.1 (0xbeca5000)
/usr/lib/libarmmem-v7l.so (0xb67ac000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb6783000)
libm.so.6 => /usr/lib/libm.so.6 (0xb6719000)
libdl.so.2 => /usr/lib/libdl.so.2 (0xb6706000)
librt.so.1 => /usr/lib/librt.so.1 (0xb66ef000)
libnss3.so => /usr/lib/libnss3.so (0xb65fa000)
libnssutil3.so => /usr/lib/libnssutil3.so (0xb65c8000)
libnspr4.so => /usr/lib/libnspr4.so (0xb6594000)
libc.so.6 => /usr/lib/libc.so.6 (0xb6459000)
/usr/lib/ld-linux-armhf.so.3 (0xb6f0a000)
libplc4.so => /usr/lib/libplc4.so (0xb6f30000)
libplds4.so => /usr/lib/libplds4.so (0xb6f2c000)
The newer (broken) Widevine CDM has fewer dependencies:
kodi04:~ # ls -la .kodi/cdm/libwidevinecdm.so
-rwxr--r-- 2 root root 8887360 May 10 14:51 .kodi/cdm/libwidevinecdm.so
kodi04:~ # sha1sum .kodi/cdm/libwidevinecdm.so
4d129768d3753328a837a940e6ee903830c791c4 .kodi/cdm/libwidevinecdm.so
kodi04:~ # ldd .kodi/cdm/libwidevinecdm.so
linux-vdso.so.1 (0xbee96000)
/usr/lib/libarmmem-v7l.so (0xb5dcb000)
libdl.so.2 => /usr/lib/libdl.so.2 (0xb5db8000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb5d8f000)
librt.so.1 => /usr/lib/librt.so.1 (0xb5d78000)
libm.so.6 => /usr/lib/libm.so.6 (0xb5d0e000)
libc.so.6 => /usr/lib/libc.so.6 (0xb5bd3000)
/usr/lib/ld-linux-armhf.so.3 (0xb6f6c000)
This newer Widevine CDM no longer depends on libnss3, libnssutil3, libnspr4, libplc4 and libplds4.
Reported at CastagnaIT/plugin.video.netflix#1154 and xbmc/inputstream.adaptive#678
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 25
LibreELEC users who are experiencing this problem should use the new 9.2.7 version: https://libreelec.tv/2021/05/le-9-2-7-10b4-fix-widevine/
Your issue is related to the nightly build, LibreELEC will release a new version 9.2.7 where the preloading is permanently added: https://github.com/LibreELEC/LibreELEC.tv/pull/5399
Okay, it took a while for me as beginner to figure out that changes to
/run/libreelec/kodi.conf
are never permanent. But adding a newkodi.conf
withLD_PRELOAD=/usr/lib/libtcmalloc_minimal.so
inside in the path/storage/.config
finally survived the reboot and theLD_PRELOAD=/usr/lib/libtcmalloc_minimal.so
is visible in the /run environment.…and finally: That solved the DRM issue with the newest widevine!
Cool. That made my day. Now widewine works also on the RPI2. Thank you for the quick response and the good work! 👍
… one additional question: Was this an “issue” for me due to my nightly build or is there an additional script or something similar required for the headless installation with KODI and most of the users that do not want to dive into the config files?
Thanks for the info. You need to add
LD_PRELOAD=/usr/lib/libtcmalloc_minimal.so
to make the nightly image work with the newest Widevine.@cchsu23 I quickly created a script based on the code from inputstreamhelper. Just put it in the same directory as the ChromeOS recovery .bin or .zip and run it. https://gist.github.com/horstle/f3680902708084a11abb6428fb5fcff4