The main showstopper, so far, is that I watch Amazon Prime Video,
which requires Widevine DRM software. Widevine doesn't appear to work
on AArch64 Linux, maybe it works on the oPi5 Android 11 build, but my
first impression was that it didn't.
Does anyone have any ideas how to fix/work around this?
Am 02.01.2023 um 00:21:53 Uhr schrieb Pancho:
The main showstopper, so far, is that I watch Amazon Prime Video,
which requires Widevine DRM software. Widevine doesn't appear to work
on AArch64 Linux, maybe it works on the oPi5 Android 11 build, but my
first impression was that it didn't.
That is the disadvantage of DRM - you cannot use what you paid for in
the way you like.
Which browser do you use, which OS?
Chromium Version 107.0.5304.62 (Developer Build) Ubuntu 22.04 (64-bit) Firefox Version 102.6.0esr (64-bit)
Pancho <Pancho.Jones@proton.me> wrote:
The main showstopper, so far, is that I watch Amazon Prime Video, which
requires Widevine DRM software. Widevine doesn't appear to work on
AArch64 Linux,
This is also a problem on the 64-bit version of RasPiOS which has been out
of beta for almost a year now. The RPi people don't care and point to
Google. Their solution is to install the 32-bit version of Chromium. But
they can't be installed next to each other, it's either/or, and it will probably lead to incompatibilities. See https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/ and the comments.
The Raspbian repo apt install:
$ sudo apt install chromium-browser:armhf libwidevinecdm0
puts libwidevinecdm.so in:
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so
and I got another version from a chrome OS install and put it in:
$HOME/snap/chromium/current/.local/lib/WidevineCdm/libwidevinecdm.so
However, Chromium didn't load either libwidevinecdm.so. DRM wasn't enabled.
I get the helpful log message from Chromium
$ chromium -enable-logging=stderr --v=1 > chrome.log 2>&1
--
cdm_registration.cc(189)] Widevine enabled but no library found
--
But it doesn't tell me where it was looking!
I give up!
Pancho <Pancho.Jones@proton.me> wrote:
The Raspbian repo apt install:
$ sudo apt install chromium-browser:armhf libwidevinecdm0
puts libwidevinecdm.so in:
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so
and I got another version from a chrome OS install and put it in:
$HOME/snap/chromium/current/.local/lib/WidevineCdm/libwidevinecdm.so
However, Chromium didn't load either libwidevinecdm.so. DRM wasn't enabled. >>
I get the helpful log message from Chromium
$ chromium -enable-logging=stderr --v=1 > chrome.log 2>&1
--
cdm_registration.cc(189)] Widevine enabled but no library found
--
But it doesn't tell me where it was looking!
I give up!
If I look for shared libraries in x86_64 Ubuntu 22.04's chromium snap, I
find them in:
$ find /snap/chromium/2254/ -name "*.so*" | xargs -n1 dirname | sort | uniq /snap/chromium/2254/usr/lib/chromium-browser /snap/chromium/2254/usr/lib/man-db /snap/chromium/2254/usr/lib/x86_64-linux-gnu /snap/chromium/2254/usr/lib/x86_64-linux-gnu/dri /snap/chromium/2254/usr/lib/x86_64-linux-gnu/nss /snap/chromium/2254/usr/lib/x86_64-linux-gnu/pipewire-0.3 /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/audiomixer /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/audiotestsrc /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/control /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/support /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/v4l2 /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/videoconvert /snap/chromium/2254/usr/lib/x86_64-linux-gnu/spa-0.2/videotestsrc /snap/chromium/2254/usr/lib/x86_64$HOME/snap/chromium/2254-linux-gnu/spa-0.2/volume
I would guess /snap/chromium/2254/usr/lib/chromium-browser/ is the most plausible place to put it.
But there's two problems. The first is that snap upgrades apps constantly, so you can't put the library in there and expect it to last very long, because in a short while a new version of the snap will be released and
we'll move to 2255 or whatever.
The other problem is this:
$ mount | grep chrom
/var/lib/snapd/snaps/chromium_2254.snap on /snap/chromium/2254 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/chromium_2238.snap on /snap/chromium/2238 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
ie the /snap/chromium/NNNN isn't a real directory, it's a read-only squashfs filesystem. So you can't write the file in there anyway. The only way I
can think to resolve this is via an overlayfs on top of the squashfs mount, but I'm not sure snap is going to be happy about that. And you'd still need to remount it every time the snap is updated.
Another thought is to run the chromium binary with an LD_PRELOAD hack:
LD_PRELOAD=/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so /snap/bin/chromium
which I think has a better chance of working and should persist over
updates. If it works, perhaps you could make it into a script called chromium?
On 1/3/23 18:36, Theo wrote:
Pancho <Pancho.Jones@proton.me> wrote:
The Raspbian repo apt install:
$ sudo apt install chromium-browser:armhf libwidevinecdm0
puts libwidevinecdm.so in:
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so
and I got another version from a chrome OS install and put it in:
$HOME/snap/chromium/current/.local/lib/WidevineCdm/libwidevinecdm.so
However, Chromium didn't load either libwidevinecdm.so. DRM wasn't enabled. >>>
On 2023-01-03 at 21:38 AST, Pancho <Pancho.Jones@proton.me> wrote:Thanks Jim.
On 1/3/23 18:36, Theo wrote:
Pancho <Pancho.Jones@proton.me> wrote:
The Raspbian repo apt install:
$ sudo apt install chromium-browser:armhf libwidevinecdm0
puts libwidevinecdm.so in:
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so
and I got another version from a chrome OS install and put it in:
$HOME/snap/chromium/current/.local/lib/WidevineCdm/libwidevinecdm.so
However, Chromium didn't load either libwidevinecdm.so. DRM wasn't enabled.
I recently put 64-bit Raspberry Pi OS on an RPi4 4 GB system.
Unfortunately I don't have at hand to examine closely. For what it's worth...
I then installed the 32 bit version of chromium. I *did not* use the
snap, I installed it with (IIRC) the same command as you wrote above
(which put the library in /opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so, I believe).
My chromium happily uses the 32-bit version of libwidevine installed
via apt. I don't recall doing anything else special to get it
working. Have you tried the usual debian repeat the following
apt update
apt upgrade
and then maybe either
depmod -a
or even a good old M$ "Three R"s and reboot?
If you try all this and remain stuck, follow up and I'll go get my
64-bit Pi and have a look.
Jim
On 05/01/2023 21:42, Jim Diamond wrote:
On 2023-01-03 at 21:38 AST, Pancho <Pancho.Jones@proton.me> wrote:Thanks Jim.
On 1/3/23 18:36, Theo wrote:
Pancho <Pancho.Jones@proton.me> wrote:
The Raspbian repo apt install:
$ sudo apt install chromium-browser:armhf libwidevinecdm0
puts libwidevinecdm.so in:
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so
and I got another version from a chrome OS install and put it in:
$HOME/snap/chromium/current/.local/lib/WidevineCdm/libwidevinecdm.so >>>>>
However, Chromium didn't load either libwidevinecdm.so. DRM wasn't enabled.
I recently put 64-bit Raspberry Pi OS on an RPi4 4 GB system.
Unfortunately I don't have at hand to examine closely. For what it's
worth...
I then installed the 32 bit version of chromium. I *did not* use the
snap, I installed it with (IIRC) the same command as you wrote above
(which put the library in
/opt/WidevineCdm/_platform_specific/linux_arm/libwidevinecdm.so, I believe). >>
My chromium happily uses the 32-bit version of libwidevine installed
via apt. I don't recall doing anything else special to get it
working. Have you tried the usual debian repeat the following
apt update
apt upgrade
and then maybe either
depmod -a
or even a good old M$ "Three R"s and reboot?
If you try all this and remain stuck, follow up and I'll go get my
64-bit Pi and have a look.
Jim
First point, the current oPi Ubuntu "apt install chromium-browser" uses
snap under the hood.
On my oPi Ubuntu system, apt says 64bit, but is installing a 32bit
snap Chromium.
Secondly, the apt libwidevinecdm0 apt install is rPi specific, from an
rPi repo. Maybe the rPi install of Chromium is tailored to it.
I do have a rPi 4 which I could test on, if I get desperate enough. Currently, I'm having other problems with the oPi, which may mean
the oPi isn't currently a viable HTPC even if I could view Amazon
Prime Video.
I did a Chromium install on an Ubuntu Intel VM. I can see that it
installs libwidevinecdm.so + related files into a folder structure
under: $HOME/snap/chromium/common/chromium/WidevineCdm. I tried to
duplicate this on the oPi, but Chromium didn't load files as expected.
I don't understand the relevance of depmod.
I did think about some utility tool to build a linkage dependency
tree for libwidevinecdm.so, but I have used strace to see that oPi
Chromium isn't even attempting to open libwidevinecdm.so, so a
missing dependency isn't the problem.
Sysop: | Coz |
---|---|
Location: | Anoka, MN |
Users: | 2 |
Nodes: | 4 (0 / 4) |
Uptime: | 140:09:13 |
Calls: | 166 |
Files: | 5,389 |
Messages: | 223,236 |