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

  • ATTENTION! You'll notice a Prefix dropdown when you create a thread. If your post applies to one of the topics listed, please use that Prefix for your post. When browsing the thread list you can use the Prefix to filter the view.
  • ATTENTION! As of November 1, 2020, you are not able to reply to threads 6 months after the thread is opened if there are more than 500 posts in the thread.
    Threads will not be locked, so posts may still be edited by their authors.
    Just start a new thread on the topic to post if you get an error message when trying to reply to a thread.

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...

[email protected]:/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!
 

L&LD

Part of the Furniture
What firmware? What other scripts do you have running?

Have you tried uninstalling and re-installing Diversion?
 

thelonelycoder

Part of the Furniture
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:
[email protected]:/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

[email protected]:/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.
 

MWGlidden

Occasional Visitor
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:
[email protected]:/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

[email protected]:/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:
[email protected]:/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.
[email protected]:/tmp/home/root# opkg
-sh: opkg: not found

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

Code:
[email protected]:/tmp/home/root# cat /opt/etc/opkg.conf
[email protected]:/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
[email protected]:/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.
 

thelonelycoder

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

Code:
[email protected]:/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.
[email protected]:/tmp/home/root# opkg
-sh: opkg: not found

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

Code:
[email protected]:/tmp/home/root# cat /opt/etc/opkg.conf
[email protected]:/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
[email protected]:/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
 

thelonelycoder

Part of the Furniture
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.
 

MWGlidden

Occasional Visitor
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:
[email protected]:/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:
[email protected]:/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. :)
 

thelonelycoder

Part of the Furniture
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:

MWGlidden

Occasional Visitor
Thanks, confirmed I ran that and can use opkg again. Running opkg with the existing conf file gives me this.

Code:
[email protected]:/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:

Latest threads

Sign Up For SNBForums Daily Digest

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