I'm using fedora arm 25 on raspberry pi 3, i want to install omxplayer, please help me.
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.
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
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:
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
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.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).
xrefresh, which are in
Once that's all done hopefully
omxplayer should work.