Closed iam-TJ closed 8 months ago
Answering my own question. I used ldd
to progressive identify each missing library then downloaded (but not installed) the package containing each library, extracted the .deb
file manually and then copied only the identified libraries into the system location. In summary (on Debian/Raspbian 12 Bookworm):
apt download libgstrtspserver-1.0-0
dpkg-deb -X libgstrtspserver-1.0-0_1.22.0-2_armhf.deb .
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstrtspserver-1.0.so.0
apt download libgstreamer1.0-0
dpkg-deb -X libgstreamer1.0-0_1.22.0-2_armhf.deb .
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstreamer-1.0.so.0
apt download libgstreamer-plugins-base1.0-0
dpkg-deb -X libgstreamer-plugins-base1.0-0_1.22.0-3+deb12u1_armhf.deb .
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstapp-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstbase-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstrtsp-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstsdp-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstrtp-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstnet-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstpbutils-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstvideo-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgstaudio-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/libgsttag-1.0.so.0
sudo cp {.,}/usr/lib/arm-linux-gnueabihf/liborc-0.4.so.0
apt install liborc-0.4-0 libunwind8
Note that the package versions may change so the dpkg-deb -X ...
commands will need to be amended if so - usually tab-completion will pick the file. Also don't miss the second option to the command is a dot (meaning 'current directory').
tj@noc:~/neolink_linux_armhf$ ldd neolink
linux-vdso.so.1 (0x7efd8000)
/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0x75fe0000)
libgstrtspserver-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstrtspserver-1.0.so.0 (0x75f60000)
libgstreamer-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstreamer-1.0.so.0 (0x75e10000)
libgobject-2.0.so.0 => /lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x75dbe000)
libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75ca2000)
libgio-2.0.so.0 => /lib/arm-linux-gnueabihf/libgio-2.0.so.0 (0x75b0e000)
libgstapp-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstapp-1.0.so.0 (0x75afb000)
libgstbase-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstbase-1.0.so.0 (0x75a60000)
libssl.so.3 => /lib/arm-linux-gnueabihf/libssl.so.3 (0x759d5000)
libcrypto.so.3 => /lib/arm-linux-gnueabihf/libcrypto.so.3 (0x756a6000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75670000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75629000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x754b0000)
/lib/ld-linux-armhf.so.3 (0x76f5c000)
libgstrtsp-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstrtsp-1.0.so.0 (0x75490000)
libgstsdp-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstsdp-1.0.so.0 (0x75479000)
libgstrtp-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstrtp-1.0.so.0 (0x75452000)
libgstnet-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstnet-1.0.so.0 (0x75420000)
libgmodule-2.0.so.0 => /lib/arm-linux-gnueabihf/libgmodule-2.0.so.0 (0x75ff9000)
libunwind.so.8 => /lib/arm-linux-gnueabihf/libunwind.so.8 (0x753e0000)
libdw.so.1 => /lib/arm-linux-gnueabihf/libdw.so.1 (0x75350000)
libffi.so.8 => /lib/arm-linux-gnueabihf/libffi.so.8 (0x75320000)
libpcre2-8.so.0 => /lib/arm-linux-gnueabihf/libpcre2-8.so.0 (0x75270000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75230000)
libmount.so.1 => /lib/arm-linux-gnueabihf/libmount.so.1 (0x751d7000)
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x75190000)
libatomic.so.1 => /lib/arm-linux-gnueabihf/libatomic.so.1 (0x75160000)
libgstpbutils-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstpbutils-1.0.so.0 (0x75127000)
liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0x750ff000)
libelf.so.1 => /lib/arm-linux-gnueabihf/libelf.so.1 (0x750e5000)
libbz2.so.1.0 => /lib/arm-linux-gnueabihf/libbz2.so.1.0 (0x750c0000)
libblkid.so.1 => /lib/arm-linux-gnueabihf/libblkid.so.1 (0x75073000)
libgstvideo-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstvideo-1.0.so.0 (0x74fc5000)
libgstaudio-1.0.so.0 => /lib/arm-linux-gnueabihf/libgstaudio-1.0.so.0 (0x74f52000)
libgsttag-1.0.so.0 => /lib/arm-linux-gnueabihf/libgsttag-1.0.so.0 (0x74f18000)
liborc-0.4.so.0 => /lib/arm-linux-gnueabihf/liborc-0.4.so.0 (0x74e80000)
This is not really an issue with the project persay. It's all to do with how the gstreamer plugins are packaged together in Debian. We mostly just need the rtsp related plugins, h264/5 parsers and time stampers, aac deoders, and the app sinks. But that involves pulling in lots of other things because of how they are packaged.
Following the README instructions for installation on Debian (or derivatives) the suggested installation of the various gstreamer packages tries to install GUI libraries for Wayland and X.
Is there a list of the absolutely required libraries that might avoid the Debian package dependencies trying to force installation of this lot (note this is with
--no-install-recommends
) ?Notice I leave off
libsll
since in Debian Bookworm on later it is eitherlibsll1.1
orlibsll3