Linuxulator Firefox 68

st1905

Member

Reaction score: 7
Messages: 41

I have installed firefox 68 and it runs under linuxulator, its 12.1 release-p8, CentOS 7 in /compat/linux but I can't browse SSL enabled sites.(without SSL it works) I have latest nss and nspr for CentOS 7 installed in /compat/linux. It runs latest steam, google-earth etc... with no issues but somehow firefox does't open secure sites.
Code:
/dev/random
/dev/urandom
When I mount devfs(5) for /compat/linux/dev it segfaults.

When I use yum under /compat/linux it also fails to initialize nss without /dev/urandom but if I create it using devfs(5), yum, rpm etc... runs correctly but firefox segfaults.
 

Attachments

  • firefox_linux_freebsd.png
    firefox_linux_freebsd.png
    45.3 KB · Views: 94
OP
S

st1905

Member

Reaction score: 7
Messages: 41

I also use your steam implementation which works perfectly, i can run Amnesia: The Dark Descent with no issues. I have just installed it from the Centos 7 repo using yum. Only thing that is not working is ssl enabled sites. Trying to run netflix.
 

Attachments

  • freebsd_centos_firefox_quantum.png
    freebsd_centos_firefox_quantum.png
    134 KB · Views: 103
  • libwidevinecdm.png
    libwidevinecdm.png
    58.8 KB · Views: 126
  • plugin-container-libs-2.png
    plugin-container-libs-2.png
    186 KB · Views: 106
  • libs-plugin-container-1.png
    libs-plugin-container-1.png
    186.7 KB · Views: 99

shkhln

Daemon

Reaction score: 964
Messages: 2,217

Hmm… Firefox is reported as not having any sound as well. Also keep in mind you are running without the usual sandboxing. As for the SSL problem, try env LD_LIBRARY_PATH=/compat/linux/usr/lib64/nss ....
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Hmm… Firefox is reported as not having any sound as well. Also keep in mind you are running without the usual sandboxing. As for the SSL problem, try env LD_LIBRARY_PATH=/compat/linux/usr/lib64/nss ....

It worked, now i can browse ssl sites. Got Widevine installed. Going to try sound now. Thank you.

Update: Netflix gives F7355 fault code. So its a no go, as of yet.

Below is what i get when i try to play any audio.

Code:
[Child 3704, MediaPlayback #1] WARNING: 831ae7570 OpenCubeb() failed to init cubeb: file /builddir/build/BUILD/firefox-68.11.0/dom/media/AudioStream.cpp, line 382
[Child 3704, MediaPlayback #1] WARNING: Decoder=8348d9c00 [OnMediaSinkAudioError]: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3639
[Child 3704, MediaPlayback #1] WARNING: Decoder=8348d9c00 Decode error: NS_ERROR_DOM_MEDIA_MEDIASINK_ERR (0x806e000b) - OnMediaSinkAudioError: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3307
[Child 3704, MediaPlayback #2] WARNING: 82e6148b0 OpenCubeb() failed to init cubeb: file /builddir/build/BUILD/firefox-68.11.0/dom/media/AudioStream.cpp, line 382
[Child 3704, MediaPlayback #2] WARNING: Decoder=82e69c400 [OnMediaSinkAudioError]: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3639
[Child 3704, MediaPlayback #2] WARNING: Decoder=82e69c400 Decode error: NS_ERROR_DOM_MEDIA_MEDIASINK_ERR (0x806e000b) - OnMediaSinkAudioError: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3307
 

Attachments

  • widevine.png
    widevine.png
    37.5 KB · Views: 86
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Hmm… Firefox is reported as not having any sound as well. Also keep in mind you are running without the usual sandboxing. As for the SSL problem, try env LD_LIBRARY_PATH=/compat/linux/usr/lib64/nss ....

I wonder if its possible to use libpulse.so.0 from fakepulse since the firefox is compiled for pulseaudio and lacks ALSA support.

I tried to use it but got this error

Code:
fakepulse: pa_get_library_version
firefox: src/fakepulse.c:223: pa_get_library_version: Assertion `0' failed.
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

Linux applications often probe PulseAudio before ALSA by loading and initializing libpulse.so (or libpulse-simple.so). Presumably, if the PulseAudio daemon is not running, libpulse.so fails initialization and that means the ALSA fallback should be used instead. So, fakepulse.c is a dummy lib always failing initialization, which works a bit nicer than the real libpulse.so with Linuxulator since it doesn't try to use any unimplemented kernel features. The aim there is forcing ALSA usage in the least amount of code.

However, if there is no ALSA fallback at all, you'll probably need something like https://github.com/i-rinat/apulse. It's relatively simple to build: https://gist.github.com/shkhln/6af746f44030443b58db4c8186f0a7bc.
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

I tried to use it but got this error

Code:
fakepulse: pa_get_library_version
firefox: src/fakepulse.c:223: pa_get_library_version: Assertion `0' failed.

Code:
const char* pa_get_library_version() {
  return "13.0";
}
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Code:
const char* pa_get_library_version() {
  return "13.0";
}

Code:
fakepulse: pa_threaded_mainloop_start
firefox: fakepulse.c:371: pa_threaded_mainloop_start: Assertion `0' failed.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

Code:
fakepulse: pa_threaded_mainloop_start
firefox: fakepulse.c:371: pa_threaded_mainloop_start: Assertion `0' failed.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.

Code:
int pa_threaded_mainloop_start(void* m) {
  return -1;
}

void* pa_threaded_mainloop_get_api(void* m) {
  return NULL;
}
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

No, it does`t play Big Buck Bunny

Since you already have Steam installed, would you mind trying both this video and Netflix in the Steam's web browser? You'll need to switch it to Big Picture mode.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Since you already have Steam installed, would you mind trying both this video and Netflix in the Steam's web browser? You'll need to switch it to Big Picture mode.
It works, netflix plays without any issue, sound+video. I never thought it would be possible to watch Netflix under FreeBSD using steam.

Big Buck Bunny still does`t play.

Note that Big Picture mode fails to open. Black screen comes only, i opened the browser from console.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Code:
int pa_threaded_mainloop_start(void* m) {
  return -1;
}

void* pa_threaded_mainloop_get_api(void* m) {
  return NULL;
}

No more errors, but cubeb still giving warnings and there is no sound in Firefox.

Code:
[Child 64146, MediaPlayback #3] WARNING: 84287d460 OpenCubeb() failed to init cubeb: file /builddir/build/BUILD/firefox-68.11.0/dom/media/AudioStream.cpp, line 382
[Child 64146, MediaPlayback #3] WARNING: Decoder=82fb1a800 [OnMediaSinkAudioError]: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3639
[Child 64146, MediaPlayback #4] WARNING: Decoder=82fb1a800 Decode error: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true> > mozilla::MediaSourceTrackDemuxer::DoGetSamples(int32_t): manager is detached.: file /builddir/build/BUILD/firefox-68.11.0/dom/media/MediaDecoderStateMachine.cpp, line 3307
IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PLayerTransaction::Msg_ReleaseLayer Processing error: message was deserialized, but the handler returned false (indicating failure)

IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PLayerTransaction::Msg_ReleaseLayer Processing error: message was deserialized, but the handler returned false (indicating failure)

IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PLayerTransaction::Msg_ReleaseLayer Processing error: message was deserialized, but the handler returned false (indicating failure)
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

It works, netflix plays without any issue, sound+video. I never thought it would be possible to watch Netflix under FreeBSD using steam.

A bit counterintuitive, yes. You can try Vivaldi if you want a complete Chromium-based browser. The incantation is the same as the one for MS Teams there: https://forums.freebsd.org/threads/compat-linux-microsoft-teams.75356/#post-463091. One note, though, Vivaldi downloads Widevine automatically, but it doesn't provide any feedback in the UI when that happens and it requires manual restart to load Widevine.

Big Buck Bunny still does`t play.

Hmm… It really should. It's a pretty basic DRM test.

No more errors, but cubeb still giving warnings and there is no sound in Firefox.

Then you'll want apulse, as suggested above.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

A bit counterintuitive, yes. You can try Vivaldi if you want a complete Chromium-based browser. The incantation is the same as the one for MS Teams there: https://forums.freebsd.org/threads/compat-linux-microsoft-teams.75356/#post-463091. One note, though, Vivaldi downloads Widevine automatically, but it doesn't provide any feedback in the UI when that happens and it requires manual restart to load Widevine.



Hmm… It really should. It's a pretty basic DRM test.



Then you'll want apulse, as suggested above.


When i try to play Big Buck Bunny , all i get is an X Mark and it does`t play. I will try Vivaldi and apulse with Firefox. Thank you so much for all the help.


With apulse, sound works in Firefox. But drm does not work, says "firefox is installing components needed to play the audio or video on this page" but the plugin is already installed.

Got vivaldi working using your workaround. but netflix gives M7361-1254 fault code, the widevinecdm plugin is installed.

Code:
[13058:101099:0829/192145.153426:ERROR:address_tracker_linux.cc(182)] Could not create NETLINK socket: Address family not supported by protocol (97)
[13091:102017:0829/192146.900414:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../chromium/media/filters/ffmpeg_audio_decoder.cc\",\"line\":98}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"FFmpegAudioDecoder\"},\"stack\":[{\"file\":\"../../chromium/media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[13091:102017:0829/192146.900534:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"audio decoder initialization failed"}
[13091:13091:0829/192146.922334:ERROR:batching_media_log.cc(35)] MediaEvent: {"pipeline_error":15}
[13091:102017:0829/192147.061974:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../chromium/media/filters/ffmpeg_audio_decoder.cc\",\"line\":98}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"FFmpegAudioDecoder\"},\"stack\":[{\"file\":\"../../chromium/media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[13091:102017:0829/192147.062042:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"audio decoder initialization failed"}
[13091:13091:0829/192147.130622:ERROR:batching_media_log.cc(35)] MediaEvent: {"pipeline_error":15}
[13091:102017:0829/192149.062599:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../chromium/media/filters/ffmpeg_audio_decoder.cc\",\"line\":98}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"FFmpegAudioDecoder\"},\"stack\":[{\"file\":\"../../chromium/media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[13091:102017:0829/192149.062664:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"audio decoder initialization failed"}
[13091:13091:0829/192149.070080:ERROR:batching_media_log.cc(35)] MediaEvent: {"pipeline_error":15}
[13091:102017:0829/192152.916691:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../chromium/media/filters/ffmpeg_audio_decoder.cc\",\"line\":98}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"FFmpegAudioDecoder\"},\"stack\":[{\"file\":\"../../chromium/media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[13091:102017:0829/192152.916760:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"audio decoder initialization failed"}
[13091:13091:0829/192152.917476:ERROR:batching_media_log.cc(35)] MediaEvent: {"pipeline_error":15}
[13058:101099:0829/192157.154748:ERROR:address_tracker_linux.cc(182)] Could not create NETLINK socket: Address family not supported by protocol (97)
 

Attachments

  • vivaldi1.png
    vivaldi1.png
    101 KB · Views: 70
  • vivaldi3.png
    vivaldi3.png
    385.9 KB · Views: 70
  • vivaldi2.png
    vivaldi2.png
    590.2 KB · Views: 66

shkhln

Daemon

Reaction score: 964
Messages: 2,217

Got vivaldi working using your workaround. but netflix gives M7361-1254 fault code, the widevinecdm plugin is installed.

Did you restart the browser? It won't play anything on the first run.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Did you restart the browser? It won't play anything on the first run.

I did restart it, youtube also does`t play live streams.

Firefox under linuxulator also does`t play live streams saying "Your browser does not currently recognize any of the video formats available. "
 

shkhln

Daemon

Reaction score: 964
Messages: 2,217

I did restart it, youtube also does`t play live streams.

Does procstat -v `ps auxww | grep vivaldi | cut -w -f 2` | grep -E "(widevine|ffmpeg)" show anything?

Firefox under linuxulator also does`t play live streams saying "Your browser does not currently recognize any of the video formats available. "

Honestly, I'm not personally interested in Linux Firefox. I'd rather see attention focused on PR 229708, since this actually prevents me from investigating whether Widevine can be loaded directly into the native Firefox instance.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Does procstat -v `ps auxww | grep vivaldi | cut -w -f 2` | grep -E "(widevine|ffmpeg)" show anything?



Honestly, I'm not personally interested in Linux Firefox. I'd rather see attention focused on PR 229708, since this actually prevents me from investigating whether Widevine can be loaded directly into the native Firefox instance.
 

Attachments

  • vivaldi.png
    vivaldi.png
    266 KB · Views: 75

shkhln

Daemon

Reaction score: 964
Messages: 2,217

I see. In my case it's .local/lib/vivaldi/media-codecs-80.0.3987.149/libffmpeg.so, which is an ffmpeg build with H.264 support. It should be also downloaded automatically, but since apparently that doesn't work for you, try the update-ffmpeg script lying around.
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

I see. In my case it's .local/lib/vivaldi/media-codecs-80.0.3987.149/libffmpeg.so, which is an ffmpeg build with H.264 support. It should be also downloaded automatically, but since apparently that doesn't work for you, try the update-ffmpeg script lying around.
It says Proprietary media codecs (81.0.4044.138) was already present
 
OP
S

st1905

Member

Reaction score: 7
Messages: 41

Oh, and please don't run your browser as root. That's beyond stupid.

I`m not going to run it as root, just trying to get the netflix running. After your latest guidance on libffmpeg.so, netflix works, youtube live streams work, i just replaced it with another library.

3088584 working library has this byte size. Not working one is 1780192 (I guess this was compiled without h264)

I don`t know why it came without h264 support.

Everything works with vivaldi now (including Big Buck Bunny), thank you so much.
 
Top