pipelight installs but firefox says "Error check terminal"

Asked by nick w

I am using gentoo and am trying to run netflix in firefox

When i start firefox from a terminal I receive the following:
(process:15728): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
[PIPELIGHT:LIN:unknown] attached to process.
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_1_CONFIG.
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.1.
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/nick/.config/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] trying to load config file from '/etc/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] trying to load config file from '/usr/local/share/pipelight/configs/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] sandbox not found or not installed!
/usr/local/share/pipelight/hw-accel-default: line 4: glxinfo: command not found
[PIPELIGHT:LIN:silverlight5.1] basicplugin.c:401:checkSilverlightGraphicDriver(): GPU driver check - Your driver is not in the whitelist, hardware acceleration disabled.
[PIPELIGHT:LIN:silverlight5.1] using wine prefix directory /home/nick/.wine-pipelight/.
[PIPELIGHT:LIN:silverlight5.1] checking plugin installation - this might take some time.
[install-dependency] wine-silverlight5.1-installer is already installed in '/home/nick/.wine-pipelight/'.
[install-dependency] wine-mpg2splt-installer is already installed in '/home/nick/.wine-pipelight/'.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
[PIPELIGHT:WIN:silverlight5.1] windowless mode is off.
[PIPELIGHT:WIN:silverlight5.1] embedded mode is on.
[PIPELIGHT:WIN:silverlight5.1] unity hacks is off.
[PIPELIGHT:WIN:silverlight5.1] window class hook is on.
[PIPELIGHT:WIN:silverlight5.1] render toplevelwindow is off.
[PIPELIGHT:WIN:silverlight5.1] replaced API function CreateWindowExA.
[PIPELIGHT:WIN:silverlight5.1] replaced API function CreateWindowExW.
[PIPELIGHT:WIN:silverlight5.1] replaced API function TrackPopupMenuEx.
[PIPELIGHT:WIN:silverlight5.1] replaced API function TrackPopupMenu.
fixme:advapi:RegisterTraceGuidsW (0x2c1f87, 0x360118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x65f678, (null), (null), 0x360118,): stub
[PIPELIGHT:WIN:silverlight5.1] init successful!
[PIPELIGHT:LIN:silverlight5.1] basicplugin.c:117:attach(): error during the initialization of the wine process - aborting.

Afterwhich i go to addons in firefox and it states
Pipelight Error (silverlight 5.1) 0.0

I tried the diagnostic from fds-team.de/pipelight and got:

Pipelight diagnostic:
Please select the Plugin you want to test:

User agent (Javascript)
Checking for Windows user agent ...okay
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
Please note: not every user agent works on every site, try multiple ones if something doesn't work!

Silverlight (as seen by a website)
Checking for Silverlight ...failed

Pipelight
Checking for Pipelight ...okay

Configuration of Pipelight
Checking if config exists ...okay
/usr/local/share/pipelight/configs/pipelight-silverlight5.1
Checking if pluginLoaderPath is set and exists ...okay
/usr/local/share/pipelight/pluginloader.exe
Checking if winePath is set and exists ...okay
/usr/bin/wine
Checking if wine exists ...okay
/usr/bin/wine
Checking if winePrefix is set and exists ...okay
/home/nick/.wine-pipelight/
Checking if dllPath/dllname is set and exists ...not used
You defined the regKey option which is preferred over dllPath/dllName
Checking if regKey is set and exists ...unknown
The regKey is set, but you need to manually check if the key exists
(regKey = @Microsoft.com/NpCtrl,version=1.0)
Checking if dependencyInstaller is set and exists ...okay
/usr/local/share/pipelight/install-dependency
Checking if dependencies are defined ...okay

Distribution
Loading file /etc/issue ...okay

This is \n.\O (\s \m \r) \t

Content of file: /usr/local/share/pipelight/configs/pipelight-silverlight5.1
Loading file /usr/local/share/pipelight/configs/pipelight-silverlight5.1 ...okay
#
# Enables a diagnostic mode which might be helpful to find an
# error in the configuration or installation.
# To get the error messages go to: http://fds-team.de/pipelight
#
# Information for advanced users: The diagnostic page embeds the plugin
# of type "application/x-pipelight-error" to trigger the output of some
# debug information. The plugin cannot be triggered if everything is
# working, so this only affects users with a broken installation.
# The debug output will include paths on the local filesystem and the
# linux distribution used. If you don't want to leak this information
# accidentially in case of a broken installation please either uninstall
# Pipelight or disable the diagnosticMode. [default: false]
#
diagnosticMode = true

#
# Path to the wine directory or the wine executable. When you
# specify a directory it should contain /bin/wine.
#
winePath = /usr/bin/wine

#
# Path to the wine prefix containing Silverlight
#
winePrefix = $HOME/.wine-pipelight/

#
# The wine architecture for the wine prefix containing Silverlight
#
wineArch = win32

#
# DLLs to overwrite in Wine
# (prevents Wine from asking for Gecko, Mono or winegstreamer)
#
wineDLLOverrides = mscoree,mshtml,winegstreamer,winemenubuilder.exe=

#
# Path to the plugin loader executable
# (Should be set correctly by the make script)
#
pluginLoaderPath = /usr/local/share/pipelight/pluginloader.exe

#
# Path to the runtime DLLs (libgcc_s_sjlj-1.dll, libspp-0.dll,
# libstdc++-6.dll). Only necessary when these DLLs are not in the same
# directory as the pluginloader executable.
#
gccRuntimeDlls = /usr/lib64/gcc/i686-w64-mingw32/4.6

#
# Path and name to the Silverlight directory
# You should prefer using regKey to make it easier to switch between
# different versions.
#
dllPath = c:\Program Files\Silverlight\5.1.20913.0\
dllName = npctrl.dll

#
# Name of the registry key at HKCU\Software\MozillaPlugins\ or
# HKLM\Software\MozillaPlugins\ where to search for the plugin path.
#
# You should use this option instead of dllPath/dllName in most cases
# since you do not need to alter dllPath on a program update.
#
regKey = @Microsoft.com/NpCtrl,version=1.0

#
# fakeVersion allows to fake the version string of Silverlight
# Allows to get around some version checks done by some websites
# when using an old version of Silverlight.
#
# fakeVersion = 5.1.20913.0

#
# overwriteArg allows to overwrite/add initialization arguments
# passed by websites to Silverlight applications. You can
# use this option as often as you want to overwrite multiple
# parameters. The GPU acceleration state of Silverlight can be controlled
# by setting:
#
# enableGPUAcceleration=false # disable GPU acceleration
# comment out # let the application decide (default)
# enableGPUAcceleration=true # force GPU acceleration
#
# You may need to overwrite the minimum runtime version if
# you use an old Silverlight version as some websites set
# an artificial limit for the version number although it
# would work with older versions.
#
# overwriteArg = minRuntimeVersion=5.0.61118.0
# overwriteArg = enableGPUAcceleration=false
# overwriteArg = enableGPUAcceleration=true
#

#
# windowlessmode refers to a term of the Netscape Plugin API and
# defines a different mode of drawing and handling events.
# On some desktop enviroments you may have problems using the
# keyboard in windowless mode, on the other hand the drawing is
# more efficient when this mode is enabled. Just choose what works
# best for you. [default: false]
#
windowlessMode = false

#
# Some browsers that don't support XEmbed only work with "real"
# windowlessmode. The following option can be used to force this
# mode. [default: false]
#
linuxWindowlessMode = false

#
# embed defines whether the Silverlight plugin should be shown
# inside the browser (true) or an external window (false).
# [default: true]
#
embed = true

#
# Path to the dependency installer script provided by the compholio
# package. (optional)
#
dependencyInstaller = /usr/local/share/pipelight/install-dependency

#
# Dependencies which should be installed for this plugin via the
# dependencyInstaller, can be used multiple times. (optional)
#
# Useful values for Silverlight are:
#
# -> Silverlight versions (you need to adjust dllPath):
# wine-silverlight5.1-installer
# wine-silverlight5.0-installer
# wine-silverlight4-installer
#
# -> optional depependencies (required by some streaming sites)
# wine-mpg2splt-installer
#
dependency = wine-silverlight5.1-installer
dependency = wine-mpg2splt-installer
optional-dependency = wine-wininet-installer

#
# Doesn't show any dialogs which require manual confirmation during
# the installation process, like EULA or DRM dialogs.
# [default: true]
#
quietInstallation = true

#
# In order to support browsers without NPAPI timer support
# (like Midori) we've implemented a fallback to
# NPN_PluginThreadAsyncCall. In the default configuration
# a timer based approach is preferred over async calls and the
# plugin decides by itself which method to use depending on the
# browser capabilities. Setting the following option to true
# forces the plugin to use async calls. This might be mainly
# useful for testing the difference between both event handling
# approaches. [default: false]
#
# eventAsyncCall = true

#
# The opera browser claims to provide timer functions, but they
# don't seem to work properly. When the opera detection is
# enabled Pipelight will switch to eventAsyncCall automatically
# based on the user agent string. [default: true]
#
operaDetection = true

#
# Minimal JavaScript user agent switcher. If your page doesn't check
# the user agent before loading a Silverlight instance, you can use
# this trick to overwrite the useragent or execute any other Java-
# Script you want. You can use this command multiple times.
# Uncomment the following 4 lines for FF15 spoofing.
#
# executejavascript = var __originalNavigator = navigator;
# executejavascript = navigator = new Object();
# executejavascript = navigator.__proto__ = __originalNavigator;
# executejavascript = navigator.__defineGetter__('userAgent', function () { return 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1'; });

#
# We are currently implementing hardware acceleration support, which
# can cause problems on some systems as especially specific open source
# drivers render only garbage when hardware acceleration is enabled.
# To prevent breaking any working solutions, we are currently
# implementing a whitelist system, which will enable hardware
# acceleration by default if the specified shell scripts returns 0.
# Otherwise we will disable it. You can still use
#
# overwriteArg = enableGPUAcceleration=false/true
#
# to overwrite the check results. If you really want to skip this test
# you can use: silverlightGraphicDriverCheck = /bin/true
#
silverlightGraphicDriverCheck = /usr/local/share/pipelight/hw-accel-default

#------------------------- EXPERIMENTAL -------------------------
# Watch out: The following section contains highly experimental
# stuff! These functions are likely not working properly yet and
# might be removed at any time.

#
# In order to make it possible to let a window stay opened in fullscreen, even
# if the user clicks somewhere else it is necessary to install a window class
# hook. With some plugins this could lead to other problems! [default: false]
experimental-windowClassHook = true

#
# A sandbox is a method to isolate an untrusted program from the rest of
# the system to prevent damage in case of a virus, program errors or
# similar issues. We've been developing the ability to use a (self-created)
# sandbox, but this feature still has to be considered experimental.
# The feature will only be used when the sandbox path exists.
#
sandboxPath = /usr/local/share/pipelight/sandbox

Question information

Language:
English Edit question
Status:
Answered
For:
Pipelight Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Sebastian Lackner (slackner) said :
#1

Hi,

which version of Pipelight are you using and how did you install Pipelight?

Based on the output above I think you somehow tried to combine two incompatible versions of libpipelight and pluginloader.exe.
When you're using git, and not compiling the Windows side yourself, you should always pick two exactly matching version. Otherwise the protocol is not the same, and both sides aren't able to communicate with each other. Please note that you also need a patched wine version to use Silverlight on DRM pages (but this would lead to a different error than the one above).

Sebastian

Revision history for this message
nick w (voncloft) said :
#2

I installed wine 1st:
# Download and extract the latest supported wine version
wget http://sourceforge.net/projects/wine/files/Source/wine-1.7.11.tar.bz2/download
tar -xvjf wine-1.7.11.tar.bz2

# Download and extract the latest wine patches
wget http://fds-team.de/mirror/wine-patches.tar.gz
tar -xvzf wine-patches.tar.gz

# Apply patches
cd wine-1.7.11
(cat ../wine-patches/*.patch | patch -p1) || echo "FAILED TO APPLY PATCHES"

# Regenerate server requests (required for wine-compholio >= 1.7.11)
./tools/make_requests

# Configure
autoreconf
CFLAGS=-DHAVE_ATTR_XATTR_H=1 ./configure --prefix=$HOME/.wine-pipelight

# Check if XATTR support is compiled in
grep -q XATTR config.log || echo "NO XATTR SUPPORT - DRM CONTENT WILL NOT WORK"

# Build
make depend && make

# Install
sudo make install

then compiled and installed pipelight (downloaded tarball from git clone git://fds-team.de/pipelight.git)
./configure --wine-path="/usr/bin/wine" -moz-plugin-path=/usr/lib/nsbrowser/plugins/ --win32-prebuilt && make
sudo make install

# Run this again after you've changed something, could also be done as a post-installation step
sudo pipelight-plugin --create-mozilla-plugins

then I did a /usr/local/bin/pipelight-plugin --enable silverlight

Revision history for this message
nick w (voncloft) said :
#3

for my pipelight configs file I did some modifications to it (i found out it was pointing to the right places)

#
# Enables a diagnostic mode which might be helpful to find an
# error in the configuration or installation.
# To get the error messages go to: http://fds-team.de/pipelight
#
# Information for advanced users: The diagnostic page embeds the plugin
# of type "application/x-pipelight-error" to trigger the output of some
# debug information. The plugin cannot be triggered if everything is
# working, so this only affects users with a broken installation.
# The debug output will include paths on the local filesystem and the
# linux distribution used. If you don't want to leak this information
# accidentially in case of a broken installation please either uninstall
# Pipelight or disable the diagnosticMode. [default: false]
#
diagnosticMode = true

#
# Path to the wine directory or the wine executable. When you
# specify a directory it should contain /bin/wine.
#
winePath = /usr/bin/wine

#
# Path to the wine prefix containing Silverlight
#
winePrefix = $HOME/.wine-pipelight/

#
# The wine architecture for the wine prefix containing Silverlight
#
wineArch = win32

#
# DLLs to overwrite in Wine
# (prevents Wine from asking for Gecko, Mono or winegstreamer)
#
wineDLLOverrides = mscoree,mshtml,winegstreamer,winemenubuilder.exe=

#
# Path to the plugin loader executable
# (Should be set correctly by the make script)
#
pluginLoaderPath = /usr/local/share/pipelight/pluginloader.exe

#
# Path to the runtime DLLs (libgcc_s_sjlj-1.dll, libspp-0.dll,
# libstdc++-6.dll). Only necessary when these DLLs are not in the same
# directory as the pluginloader executable.
#
#gccRuntimeDlls = /usr/lib64/gcc/i686-w64-mingw32/4.6
gccRuntimeDlls = /usr/lib64/gcc/i686-pc-mingw32/4.8.2/
#
# Path and name to the Silverlight directory
# You should prefer using regKey to make it easier to switch between
# different versions.
#
dllPath = "/home/nick/.wine-pipelight/drive_c/Program Files/Silverlight/5.1.20913.0/"
dllName = npctrl.dll

#
# Name of the registry key at HKCU\Software\MozillaPlugins\ or
# HKLM\Software\MozillaPlugins\ where to search for the plugin path.
#
# You should use this option instead of dllPath/dllName in most cases
# since you do not need to alter dllPath on a program update.
#
#regKey = @Microsoft.com/NpCtrl,version=1.0

#
# fakeVersion allows to fake the version string of Silverlight
# Allows to get around some version checks done by some websites
# when using an old version of Silverlight.
#
# fakeVersion = 5.1.20913.0

#
# overwriteArg allows to overwrite/add initialization arguments
# passed by websites to Silverlight applications. You can
# use this option as often as you want to overwrite multiple
# parameters. The GPU acceleration state of Silverlight can be controlled
# by setting:
#
# enableGPUAcceleration=false # disable GPU acceleration
# comment out # let the application decide (default)
# enableGPUAcceleration=true # force GPU acceleration
#
# You may need to overwrite the minimum runtime version if
# you use an old Silverlight version as some websites set
# an artificial limit for the version number although it
# would work with older versions.
#
# overwriteArg = minRuntimeVersion=5.0.61118.0
# overwriteArg = enableGPUAcceleration=false
# overwriteArg = enableGPUAcceleration=true
#

#
# windowlessmode refers to a term of the Netscape Plugin API and
# defines a different mode of drawing and handling events.
# On some desktop enviroments you may have problems using the
# keyboard in windowless mode, on the other hand the drawing is
# more efficient when this mode is enabled. Just choose what works
# best for you. [default: false]
#
windowlessMode = false

#
# Some browsers that don't support XEmbed only work with "real"
# windowlessmode. The following option can be used to force this
# mode. [default: false]
#
linuxWindowlessMode = false

#
# embed defines whether the Silverlight plugin should be shown
# inside the browser (true) or an external window (false).
# [default: true]
#
embed = true

#
# Path to the dependency installer script provided by the compholio
# package. (optional)
#
dependencyInstaller = /usr/local/share/pipelight/install-dependency

#
# Dependencies which should be installed for this plugin via the
# dependencyInstaller, can be used multiple times. (optional)
#
# Useful values for Silverlight are:
#
# -> Silverlight versions (you need to adjust dllPath):
# wine-silverlight5.1-installer
# wine-silverlight5.0-installer
# wine-silverlight4-installer
#
# -> optional depependencies (required by some streaming sites)
# wine-mpg2splt-installer
#
dependency = wine-silverlight5.1-installer
dependency = wine-mpg2splt-installer
optional-dependency = wine-wininet-installer

#
# Doesn't show any dialogs which require manual confirmation during
# the installation process, like EULA or DRM dialogs.
# [default: true]
#
quietInstallation = true

#
# In order to support browsers without NPAPI timer support
# (like Midori) we've implemented a fallback to
# NPN_PluginThreadAsyncCall. In the default configuration
# a timer based approach is preferred over async calls and the
# plugin decides by itself which method to use depending on the
# browser capabilities. Setting the following option to true
# forces the plugin to use async calls. This might be mainly
# useful for testing the difference between both event handling
# approaches. [default: false]
#
# eventAsyncCall = true

#
# The opera browser claims to provide timer functions, but they
# don't seem to work properly. When the opera detection is
# enabled Pipelight will switch to eventAsyncCall automatically
# based on the user agent string. [default: true]
#
operaDetection = true

#
# Minimal JavaScript user agent switcher. If your page doesn't check
# the user agent before loading a Silverlight instance, you can use
# this trick to overwrite the useragent or execute any other Java-
# Script you want. You can use this command multiple times.
# Uncomment the following 4 lines for FF15 spoofing.
#
# executejavascript = var __originalNavigator = navigator;
# executejavascript = navigator = new Object();
# executejavascript = navigator.__proto__ = __originalNavigator;
# executejavascript = navigator.__defineGetter__('userAgent', function () { return 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1'; });

#
# We are currently implementing hardware acceleration support, which
# can cause problems on some systems as especially specific open source
# drivers render only garbage when hardware acceleration is enabled.
# To prevent breaking any working solutions, we are currently
# implementing a whitelist system, which will enable hardware
# acceleration by default if the specified shell scripts returns 0.
# Otherwise we will disable it. You can still use
#
# overwriteArg = enableGPUAcceleration=false/true
#
# to overwrite the check results. If you really want to skip this test
# you can use: silverlightGraphicDriverCheck = /bin/true
#
silverlightGraphicDriverCheck = /usr/local/share/pipelight/hw-accel-default

#------------------------- EXPERIMENTAL -------------------------
# Watch out: The following section contains highly experimental
# stuff! These functions are likely not working properly yet and
# might be removed at any time.

#
# In order to make it possible to let a window stay opened in fullscreen, even
# if the user clicks somewhere else it is necessary to install a window class
# hook. With some plugins this could lead to other problems! [default: false]
experimental-windowClassHook = true

#
# A sandbox is a method to isolate an untrusted program from the rest of
# the system to prevent damage in case of a virus, program errors or
# similar issues. We've been developing the ability to use a (self-created)
# sandbox, but this feature still has to be considered experimental.
# The feature will only be used when the sandbox path exists.
#
sandboxPath = /usr/local/share/pipelight/sandbox

but I am receinving a new error and can not find where npctrl.dll is?

[PIPELIGHT:WIN:silverlight5.1] pluginloader.c:281:initDLL(): could not load library 'npctrl.dll' (last error = 126).
[PIPELIGHT:WIN:silverlight5.1] pluginloader.c:522:main(): failed to initialize DLL.

Revision history for this message
Sebastian Lackner (slackner) said :
#4

Hi,

when compiling with --win32-prebuilt there shouldn't be any file pluginloader.exe. Did you miss that step in your instructions above?
When you're using win32-prebuilt, then please download the corresponding pluginloader.exe file from: https://launchpad.net/pipelight/+download
And unpack it into src/windows of the pipelight source. Afterwards run "make install".

Concerning your latest message: Your modifications to the pipelight config files are incorrect (don't use quotation marks). In theory it should work without any modifications (gccRuntimeDlls is ignored when using the statically linked pluginloader.exe, and all other fields are initialized with the values passed to ./configure). Please restore the default one and try again.

[You can also ask us directly in #pipelight on freenode, if you want to ;-) ]

Sebastian

Revision history for this message
nick w (voncloft) said :
#5

I left the exe part out in my steps but yes i did do that as well.
I downloaded it from
wget https://launchpad.net/pipelight/trunk/0.2/+download/pluginloader-prebuilt-v0.2.3.tar.xz
I did put it into the src/windows location.

Revision history for this message
Michael Müller (mqchael) said :
#6

Hi nick,

you are currently mixing a lot of stuff which is not compatible.

If you are using the prebuilt binaries for the win32 part you also need to use the according linux version otherwise the protocol is incompatible and it will most probably crash or you may experience other weird errors.

I recommend you to use our most recent version 0.2.4.2 which is available here:

- linux:
https://bitbucket.org/mmueller2012/pipelight/get/v0.2.4.2.tar.gz

- win32 prebuilt:
https://launchpad.net/pipelight/trunk/0.2/+download/pluginloader-prebuilt-v0.2.4.2.tar.xz

The config files should be setup correctly if you pass a valid wine path to configure and you should not need to change it. Moreover, the dllPath config value is used by the win32 part and must not be a linux path. Your current configuration is therefore invalid.

Michael

Can you help with this problem?

Provide an answer of your own, or ask nick w for more information if necessary.

To post a message you must log in.