What's new

Diversion pixelserv-tls error while loading shared libraries (invalid ELF header)

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

MWGlidden

Occasional Visitor
I've used Diversion as normal for some time on RT-AC1900 running wrtmerlin 384.19. Tonight I connected via shell and see this as the top line when loading Diversion.

pixelserv-tls: error while loading shared libraries: /opt/lib/libpthread.so.0: invalid ELF header

That also means pixelserv-tls isn't running. Here's what I've tried so far without success resolve that error.

- Rebooted the router
- Forced Diversion update (a few times)
- Update/upgrade opkg
- Reinstalling libpthread opkg gives me...

admin@RT-AC1900-D070:/tmp/home/root# opkg install libpthread --force-reinstall
Removing package libpthread from root...
Installing libpthread (2.23-10) to root...
Collected errors:
* opkg_download_pkg: Package libpthread is not available from any configured src.
* opkg_install_pkg: Failed to download libpthread. Perhaps you need to run 'opkg update'?
* opkg_install_cmd: Cannot install package libpthread.


It feels like reinstalling libpthread should help get pixelsrv-tls running, so I feel stuck. Any ideas what to do next? Thanks!
 
What firmware? What other scripts do you have running?

Have you tried uninstalling and re-installing Diversion?
 
Looks like something is corrupted. Did you run amtm's disk check to see if there are any errors? It could also mean that it tries to download files from the 64/32 bit repo for some reason.
Post the output of the following commands to see what Entware version you are running:
Code:
cat /opt/etc/opkg.conf
cat /opt/etc/entware_release

On my RT-AC1900P router with the same firmware as yours (Yes Mr. L&LD that info is contained in the post ;) ) I get this for the 64 bit Entware version:
Code:
tlc@RT-AC1900P-CA08:/tmp/home/root# cat /opt/etc/opkg.conf
src/gz entware http://bin.entware.net/armv7sf-k2.6
dest root /
dest ram /opt/tmp
lists_dir ext /opt/var/opkg-lists
option tmp_dir /opt/tmp
arch all 100
arch armv7-2.6 160

tlc@RT-AC1900P-CA08:/tmp/home/root# cat /opt/etc/entware_release
release=entware
arch=arm
cpu=cortex-a9
cpu_subtype=unknown
float=soft
gcc=8.4.0
gcc_flags=-O2 -pipe -mtune=cortex-a9 -fno-caller-saves -mfloat-abi=soft
libc=glibc
libc_version=2.23

You could also try to force update opkg itself with
Code:
opkg install opkg --force-reinstall
Followed by an opkg update and opkg upgrade.
 
Looks like something is corrupted. Did you run amtm's disk check to see if there are any errors? It could also mean that it tries to download files from the 64/32 bit repo for some reason.
Post the output of the following commands to see what Entware version you are running:
Code:
cat /opt/etc/opkg.conf
cat /opt/etc/entware_release

On my RT-AC1900P router with the same firmware as yours (Yes Mr. L&LD that info is contained in the post ;) ) I get this for the 64 bit Entware version:
Code:
tlc@RT-AC1900P-CA08:/tmp/home/root# cat /opt/etc/opkg.conf
src/gz entware http://bin.entware.net/armv7sf-k2.6
dest root /
dest ram /opt/tmp
lists_dir ext /opt/var/opkg-lists
option tmp_dir /opt/tmp
arch all 100
arch armv7-2.6 160

tlc@RT-AC1900P-CA08:/tmp/home/root# cat /opt/etc/entware_release
release=entware
arch=arm
cpu=cortex-a9
cpu_subtype=unknown
float=soft
gcc=8.4.0
gcc_flags=-O2 -pipe -mtune=cortex-a9 -fno-caller-saves -mfloat-abi=soft
libc=glibc
libc_version=2.23

You could also try to force update opkg itself with
Code:
opkg install opkg --force-reinstall
Followed by an opkg update and opkg upgrade.

Output from the opkg reinstall points to something wonky, as it wasn't able to install after uninstalling.

Code:
admin@RT-AC1900-D070:/tmp/home/root# opkg install opkg --force-reinstall
Removing package opkg from root...
Installing opkg (2020-05-07-f2166a89-1) to root...
Collected errors:
* opkg_download_pkg: Package opkg is not available from any configured src.
* opkg_install_pkg: Failed to download opkg. Perhaps you need to run 'opkg update'?
* opkg_install_cmd: Cannot install package opkg.
admin@RT-AC1900-D070:/tmp/home/root# opkg
-sh: opkg: not found

This made the opkg cat empty. My entware entry looks the same as yours.

Code:
admin@RT-AC1900-D070:/tmp/home/root# cat /opt/etc/opkg.conf
admin@RT-AC1900-D070:/tmp/home/root# cat /opt/etc/entware_release
release=entware
arch=arm
cpu=cortex-a9
cpu_subtype=unknown
float=soft
gcc=8.3.0
gcc_flags=-O2 -pipe -mtune=cortex-a9 -fno-caller-saves -mfloat-abi=soft
libc=glibc
libc_version=2.23
admin@RT-AC1900-D070:/tmp/home/root#

While I'd used wrtmerlin's web USB disk scanner, I had not tried amtm's script before. When I run the web version, it appears to run without printing anything in the scan results window.

1605618996436.png


Am I able to run amtm's disk check on demand? Does it just run on router reboot? I installed it today and see you can manage its installation from amtm's menu and don't see a way to start the disk check itself. (Sorry, feels like a dumb question to ask.) Thanks for your help.
 
Output from the opkg reinstall points to something wonky, as it wasn't able to install after uninstalling.

Code:
admin@RT-AC1900-D070:/tmp/home/root# opkg install opkg --force-reinstall
Removing package opkg from root...
Installing opkg (2020-05-07-f2166a89-1) to root...
Collected errors:
* opkg_download_pkg: Package opkg is not available from any configured src.
* opkg_install_pkg: Failed to download opkg. Perhaps you need to run 'opkg update'?
* opkg_install_cmd: Cannot install package opkg.
admin@RT-AC1900-D070:/tmp/home/root# opkg
-sh: opkg: not found

This made the opkg cat empty. My entware entry looks the same as yours.

Code:
admin@RT-AC1900-D070:/tmp/home/root# cat /opt/etc/opkg.conf
admin@RT-AC1900-D070:/tmp/home/root# cat /opt/etc/entware_release
release=entware
arch=arm
cpu=cortex-a9
cpu_subtype=unknown
float=soft
gcc=8.3.0
gcc_flags=-O2 -pipe -mtune=cortex-a9 -fno-caller-saves -mfloat-abi=soft
libc=glibc
libc_version=2.23
admin@RT-AC1900-D070:/tmp/home/root#
Paste this into /opt/etc/opkg.conf, then try again running yours or the mentioned commands.
Code:
src/gz entware http://bin.entware.net/armv7sf-k2.6
dest root /
dest ram /opt/tmp
lists_dir ext /opt/var/opkg-lists
option tmp_dir /opt/tmp
arch all 100
arch armv7-2.6 160
 
While I'd used wrtmerlin's web USB disk scanner, I had not tried amtm's script before. When I run the web version, it appears to run without printing anything in the scan results window.

1605618996436.png


Am I able to run amtm's disk check on demand? Does it just run on router reboot? I installed it today and see you can manage its installation from amtm's menu and don't see a way to start the disk check itself. (Sorry, feels like a dumb question to ask.) Thanks for your help.
The amtm disk-check only runs while the router reboots or the device is (re-)plugged into the router, just before the device is mounted. It does a better check than the built in Health Scanner I believe.
You can use the "Safely Remove disk" in the Information tab of your screenshot. Then plug it back in and amtm will run the check.
The check results can be viewed with the dcl command in amtm.
 
Paste this into /opt/etc/opkg.conf, then try again running yours or the mentioned commands.
Code:
src/gz entware http://bin.entware.net/armv7sf-k2.6
dest root /
dest ram /opt/tmp
lists_dir ext /opt/var/opkg-lists
option tmp_dir /opt/tmp
arch all 100
arch armv7-2.6 160

No problem adding that to the config file and I can cat its new contents.
Code:
admin@RT-AC1900-D070:/tmp/home/root# cat /opt/etc/opkg.conf
rc/gz entware http://bin.entware.net/armv7sf-k2.6
dest root /
dest ram /opt/tmp
lists_dir ext /opt/var/opkg-lists
option tmp_dir /opt/tmp
arch all 100
arch armv7-2.6 160

When my previous attempt to force an opkg update failed after uninstall, that left me in a state without opkg, so trying to update/upgrade it also fails.

Code:
admin@RT-AC1900-D070:/tmp/home/root# opkg
-sh: opkg: not found

Looking around the web, I can't tell if it's possible to reinstall opkg on its own or if I need to wipe the disk and start over to get it back. (Would rather not start over if I don't have to. :)
 
Looking around the web, I can't tell if it's possible to reinstall opkg on its own or if I need to wipe the disk and start over to get it back. (Would rather not start over if I don't have to.
Try this, I placed my opkg binary on my server.
Let me know when you're done so I can remove it.
Since there's nothing to lose, remove the existing file if present first with rm /opt/bin/opkg.
Then run this, you should be able to use opkg after this:
(code removed)
 
Last edited:
Thanks, confirmed I ran that and can use opkg again. Running opkg with the existing conf file gives me this.

Code:
admin@RT-AC1900-D070:/tmp/home/root# opkg update
Collected errors:
* opkg_conf_parse_file: /opt/etc/opkg.conf:1: Ignoring invalid line: `rc/gz entware http://bin.entware.net/arm

Figured out that I chopped a letter and fixed that. opkg was then able to install the library that Diversion threw a pixelsrv error for.
 
Last edited:

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top