I'm using fedora arm 25 on raspberry pi 3, i want to install omxplayer, please help me.

- 29
- 6
-
There is no rpm repository that contain omxplayer package – sam.k Jun 19 '17 at 12:20
-
First, you should have indicated that in your question? Since no prebuilt binary exists you will need to build from source. – Steve Robillard Jun 19 '17 at 12:21
-
These are older instructions and take a long time to compile, but they should give you a place to start. – Steve Robillard Jun 19 '17 at 13:30
-
Please take the tour and visit the helpcenter to see how things work here. Stackexchange addresses specific questions (as in "I tried to do that and got this error") and not broad questions (as in "Please write up a tutorial for me"), – Ghanima Jun 19 '17 at 16:59
1 Answers
You have two choices in this kind of situation. You can try and build from source, which is sometimes wonderfully easy and sometimes plagued with problems; I don't recall doing it with omxplayer so can't say which is the case.
The other choice is to see if a precompiled version can be made to work. There is almost always a way to get Debian/Raspbian packages working on Fedora, because the latter is almost always ahead of the former in terms of software versioning, making it easier to satisfy dependencies.
If an application depends on (e.g.) libxyz, it usually isn't on only one version of it, and latter versions of the library are usually intentionally backward compatible on a ABI level. So if libxyz 1.2+ is required and the system has libxyz 1.6, you are probably good to go.
A complication with the Pi, particularly for applications which exploit the GPU, are dependencies in /opt/vc
, which is not part of stock Fedora ARM. I believe there is an official spin for the Pi now and presumably it includes this, but if you are not using that, I have an explanation of what you need to do here.
Once that's taken care of, you need to find the precompiled version. With a lot of stuff you can download it manually from the Raspbian archives and unpack the .deb
-- but in this case I don't see it there.
Fortunately someone maintains builds here, in a .deb
package (as used on Raspbian). As per wikipedia, these are standard ar
/tar
files. To unpack on Fedora:
ar -x omxplayer_0.3.7-git20170130-62fb580_armhf.deb
This will leave behind:
control.tar.gz
data.tar.xz
debian-binary
We're interested in data.tar.xz
. To unpack that:
tar -xJf data.tar.xz
This will leave a usr
directory behind. This mirrors part of the root filesystem; when using the package on a Debian system apt
unpacks the stuff into the corresponding locations, in this case the bin
, lib
, and share
subdirectories.
You want to do the same thing. An easy way to do that is to use sudo tar ...
from the top of the root filesystem, but this runs the risk of overwriting things that may already be installed. In this case, it's okay; that omxplayer package only includes stuff unique to it.
Next you need to check linkages to library dependencies:
ldd /usr/bin/omxplayer.bin
On Raspbian produces:
/usr/lib/arm-linux-gnueabihf/libarmmem.so (0xb6f96000)
libWFC.so => /opt/vc/lib/libWFC.so (0xb6f6d000)
libGLESv2.so => /opt/vc/lib/libGLESv2.so (0xb6f48000)
libEGL.so => /opt/vc/lib/libEGL.so (0xb6f0f000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0xb6ee8000)
libopenmaxil.so => /opt/vc/lib/libopenmaxil.so (0xb6ed2000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0xb6e3a000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6e13000)
libasound.so.2 => /usr/lib/arm-linux-gnueabihf/libasound.so.2 (0xb6d39000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0xb6d23000)
libvcos.so => /opt/vc/lib/libvcos.so (0xb6d08000)
libdbus-1.so.3 => /lib/arm-linux-gnueabihf/libdbus-1.so.3 (0xb6cbc000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6ca5000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6c7d000)
libavutil.so.55 => not found
libavcodec.so.57 => not found
libavformat.so.57 => not found
libswscale.so.4 => not found
libswresample.so.2 => not found
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0xb6c09000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6b2c000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ab1000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6970000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6943000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6930000)
libbrcmGLESv2.so => /opt/vc/lib/libbrcmGLESv2.so (0xb690a000)
libbrcmEGL.so => /opt/vc/lib/libbrcmEGL.so (0xb68d1000)
libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0xb68a1000)
/lib/ld-linux-armhf.so.3 (0x7f562000)
On Fedora it will look a bit different. You need to deal with all the lines that read not found
, except, in this case, some things that were installed into /usr/lib/omxplayer
from data.tat.xz
; to weed those out instead use (if this seems a bit odd it is -- omxplayer
is actually a shell script which does something similar with linking):
export LD_LIBRARY_PATH=/usr/lib/omxplayer; ldd /usr/bin/omxplayer.bin
Applied to the above example everything would now be resolved, but lets say you had:
libpcre.so.3 => not found
You need to install the Fedora package which will satisfy this.
dnf provides "*lib/libpcre.so.*"
Hopefully the pattern is clear there -- note I used a wildcard instead of .3
. This will probably turn up pcre-8.39-6
and pcre-8.40-7
, in which case you would probably want the latest one.
There may be a few last things you need; omxplayer
is actually a simple shell script that launches omxplayer.bin
. There are a few utilities it requires:
fbset
, which is in the package of the same name (dnf install fbset
).xset
andxrefresh
, which are inxorg-x11-server-utils
.
Once that's all done hopefully omxplayer
should work.

- 58,859
- 17
- 112
- 227
-
Thank's, i followed your tutoriel, but when i test omxolayer he display this error: – sam.k Jun 22 '17 at 13:49
-
omxplayer -i /home/video1.mp4 which: no xset in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) which: no xrefresh in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
- failed to open vchiq instance
-
You need to
dnf install xorg-x11-server-utils
; I added a few paragraphs at the bottom about this. – goldilocks Jun 22 '17 at 14:15 -
The problem of xset and xrefresh is solved but "* failed to open vchiq instance" still persist, please help me. – sam.k Jun 22 '17 at 14:55
-