- Firefox and Flashplayer on DragonFlyBSD
- Installing Linux emulation layer on DragonFlyBSD
- Installing Firefox
- Installing Flashplayer
- Alternative: Using nspluginwrapper with the native Flash plugin
- Step 1: Setup Linux Emulation Environment
- Install linux compatibility packages and multimedia/libflashsupport
- Configure DragonFlyBSD to run Linux binaries
- Install nspluginwrapper and ns-flash
- Audio/Video sync issues with this method
- Further testing for nspluginwrapper, trying other versions, etc
- Firefox в локальной папке, установить в него libflashplayer.so
Firefox and Flashplayer on DragonFlyBSD
Unfortunately, a Flash plugin is not natively available for DragonFlyBSD. When you want to watch Flash sites, you must install Linux versions of Firefox and the Flash player to run under emulation.
Installing Linux emulation layer on DragonFlyBSD
First, you have to install the Linux emulation. This is described in the DragonFly handbook. Of course, you can install a more up-to-date-package of the Suse package, like meta-pkgs/suse100. To do the next steps, you must have your Linux emulation up and running. Do the following steps as «root».
‘NOTE: You can also just install the firefox-linux package and flashplayer from pkgsrc, which is actually the preferred way. ‘
Installing Firefox
You should create a subdirectory where you can put in all your Linux applications. In this Howto, it’s /usr/local/linuxapps.
- Create the directory for you Linux applications mkdir /usr/local/linuxapps
- Download a Linux version of Firefox from http://www.mozilla.org and drop the file to /usr/local/linuxapps.
- Do a . cd /usr/local/linuxapps
- Extract firefox . tar xvfz firefox-*gz
- A subdirectory /usr/local/linuxapps/firefox is created then. It contains a firefox «installation»
- Delete the firefox installation tarball . rm firefox-*gz
- Firefox is now ready to use. You can start it with . /usr/local/linuxapps/firefox/firefox
- You may want to make a desktop link/shortcut
Installing Flashplayer
Alternative: Using nspluginwrapper with the native Flash plugin
The method described here consists on using nspluginwrapper, from pkgsrc, with a native browser which, in theory, will perform much better if compared to a generic emulated browser.
Procedure tested against DragonFlyBSD 2.6/i386, Firefox 3.6, and flash9 on the pkgsrc-2010Q1 branch.
Note : Linux emulation support on 64Bit DragonFly is not functional at the time of writing — so you’ll need to run 32Bit DragonFly if you want this to work for now.
Step 1: Setup Linux Emulation Environment
Nspluginwrapper requires that the Linux emulation infrastructure is in place in order to correctly deal with the linux format flash plugin.
Install linux compatibility packages and multimedia/libflashsupport
This installs the needed linux packages for flash support, as well as installing the core linux emulation environment, and can be done as follows:
# cd /usr/pkgsrc/multimedia/libflashsupport # bmake package clean
Configure DragonFlyBSD to run Linux binaries
In order to use Linux emulated binaries, the linux compatibility layer needs a bit of setup.
First, load the linux emulator kernel module:
# kldload linux # kldload aac_linux # note - not 100% sure if needed here..
# mount -t linprocfs none /usr/pkg/emul/linux/proc
Then, run Linux ldconfig to setup the linux-side library linker paths:
The above steps should enable the linux emulation system to work — this can be tested by running a linux command — for example:
# uname -sr DragonFly 2.6-RELEASE # file /usr/bin/uname /compat/linux/bin/uname /usr/bin/uname: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for DragonFly 2.0.600, stripped /compat/linux/bin/uname: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped # uname -sr DragonFly 2.6-RELEASE # /compat/linux/bin/uname -sr Linux 2.6.16 # file /bin/ls /compat/linux/bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for DragonFly 2.0.600, stripped /compat/linux/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped # /bin/ls -l /compat/linux/bin/ls -rwxr-xr-x 1 root wheel 82640 May 6 00:38 /compat/linux/bin/ls # /compat/linux/bin/ls -l /bin/ls -rwxr-xr-x 1 root wheel 82640 May 6 00:38 /bin/ls
This example shows the different binary formats, as well as the uname and path overrides provided by the emulation layer, as well as some some subtle ls formatting subtleties between the two systems.
To enable linux emulation at boot, set linux_enable=’YES’ in your rc.conf, and create an fstab entry for the proc filesystem.
Install nspluginwrapper and ns-flash
Now that the Linux emulation system has been configured and tested, it’s time to setup the actual flash portion:
# cd /usr/pkgsrc/www/ns-pluginwrapper # bmake package clean
This should be all that is needed — however, during my tests, I did come across some errors that were related to not having setup the emulation layer properly — these errors contained something like «Elf type ‘0’ binary unknown» — which means that nspluginwrapper is having trouble interfacing with the linux emulation subsystem.
You can check the installation with:
# nspluginwrapper --list /usr/pkg/lib/netscape/plugins/npwrapper.libflashplayer.so Original plugin: /usr/pkg/lib/netscape/plugins/libflashplayer.so Wrapper version string: 1.2.2 /usr/pkg/lib/netscape/plugins/npwrapper.libflashplayer.so Original plugin: /usr/pkg/lib/netscape/plugins/libflashplayer.so Wrapper version string: 1.2.2
No idea why it lists the plugin twice. From there — use it!
- Check about:plugins in your FireFox url bar — you should see: File: npwrapper.libflashplayer.so Version: Shockwave Flash 9.0 r283
- Try it out!
even when working, you might still recieve the following message when starting firefox:
LoadPlugin: failed to initialize shared library /usr/pkg/lib/netscape/plugin
s/libflashplayer.so [Shared object «libdl.so.2» not found, required by «libflash player.so»]
which, apparently, can be ignored — as it still worked.
Audio/Video sync issues with this method
Untested — the following was mentioned by ahornung@ on the docs@ list 9/30/2010:
About this: with the libflashsupport out of pkgsrc there's an audiovideo sync problem. Johannes Hofmann (jh33) has found and fixed the issue, but since libflashsupport is distributed as a binary, it didn't make its way into pkgsrc and might never do so. He is providing a fixed version (yes, it's a trustworthy source) here: http://flpsed.org/libflashsupport.so.gz and here, I think: http://leaf.dragonflybsd.org/~hofmann/libflashsupport.so
Further testing for nspluginwrapper, trying other versions, etc
If you want to try out another flash version, etc — or possibly for other linux-only plugins — the following steps apply and were previously tested using flash7 and the seamonkey browser.
- download the Flash 7 plugin from: http://fpdownload.macromedia.com/get/flashplayer/installers/archive/fp7_archive.zip and unzip it. r73/install_flash_player_7_linux_r73.tar.gz is reported to work.
- Extract it somewhere of your choice and run, as normal user : nspluginwrapper -i /path/to/your/flash7/libflashplayer.so seamonkey
Remember that you need to create ~/.mozilla/plugins first as nspluginwrapper won’t do this for you. It will just silent fail.
Now enjoy!
Firefox в локальной папке, установить в него libflashplayer.so
Доброго времени суток! Firefox лежит в локальной папке, бинарники вытащены из .tar.gz с оффициального сайта. Нужно поставить туда flashplayer от лукавого. Пытался создать диру plugins и кинуть туда libflashplayer.so, но он не подхватвыает, как быть?
В ~ /.mozilla/plugins положил? С помощью ldd проверь линковку библиотеки, ей может чего-то не хватать.
Система у меня 64-битная Ubuntu 13.04 amd64 multiarch, Firefox слит 32-битный, какой дали, такой и слит, libflashplayer.so как видно тоже 32-битный.
$ ldd libflashplayer.so linux-gate.so.1 => (0xf7716000) libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf6562000) libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf642c000) libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf6419000) libXt.so.6 => /usr/lib/i386-linux-gnu/libXt.so.6 (0xf63bd000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf63b4000) libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf63a9000) libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf639f000) libssl3.so => /usr/lib/i386-linux-gnu/libssl3.so (0xf635b000) libsmime3.so => /usr/lib/i386-linux-gnu/libsmime3.so (0xf6331000) libnss3.so => /usr/lib/i386-linux-gnu/libnss3.so (0xf61f0000) libnssutil3.so => /usr/lib/i386-linux-gnu/libnssutil3.so (0xf61cc000) libplds4.so => /usr/lib/i386-linux-gnu/libplds4.so (0xf61c7000) libplc4.so => /usr/lib/i386-linux-gnu/libplc4.so (0xf61c0000) libnspr4.so => /usr/lib/i386-linux-gnu/libnspr4.so (0xf6183000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf6168000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6163000) libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xf5cfa000) libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xf5c4b000) libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xf5c2a000) libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xf5c16000) libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf5bf3000) libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf5be6000) libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xf5ace000) libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xf5a83000) libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf59e8000) libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf59af000) libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf595f000) libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf5959000) libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf5858000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf5815000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf5662000) /lib/ld-linux.so.2 (0xf7717000) libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf5640000) libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xf5636000) libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xf561c000) libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf5615000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf55fc000) libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf5498000) libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf5493000) libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf5483000) libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf5478000) libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xf5474000) libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf5470000) libharfbuzz.so.0 => /usr/lib/i386-linux-gnu/libharfbuzz.so.0 (0xf53d4000) libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xf533a000) libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf5311000) libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xf530d000) libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xf5303000) libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf52da000) libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf52d3000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf5292000) libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf528e000) libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf5287000) libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf5280000) libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf5261000) libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf524a000) libicule.so.48 => /usr/lib/i386-linux-gnu/libicule.so.48 (0xf5214000) libicuuc.so.48 => /usr/lib/i386-linux-gnu/libicuuc.so.48 (0xf50af000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf4fc5000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf4fa8000) libicudata.so.48 => /usr/lib/i386-linux-gnu/libicudata.so.48 (0xf3e37000)