dlopen return NULL when trying to load lj-arm32.so

Asked by kxjiang on 2019-08-07

Hi, I have a problem when try to run HPLIP on ARM. hpcups and all utilities are cross compiled successfully, but when we start print jobs by calling lp. It failed when loading the plugin. Because we got "STATE: +hplip.plugin-error" from the error_log.

As we dived into the source code of lhplip, we found that the "dlopen" in "load_library" function returned NULL when hpcups tries to load the "lj-arm32.so" library. and the dlerror give us the "prnt/plugins/lj-arm32.so internal error".

in order to figure out what the architecture of lj-arm32.so is, I run "readelf -A" on it.

"readelf lj-arm32.so - A" shows:

Tag_CPU_name: "6"
Tag_CPU_arch: v6
Tag_THUMB_ISA_use: Thumb-1

"readelf hpcups -A" shows:

Tag_CPU_name: "7-A"
Tag_CPU_arch: v7
Tag_THUMB_ISA_use: Thumb-2

the arch of hpcups we got from cross compile is "armv7", while the lj-arm32.so that the hplip install package provide is "armv6". Is that the reason dlopen failed? But the release note of HPLIP says it support armv6, armv7 and aarch64. Is li-arm32.so armv7 compatible?

Question information

English Edit question
HPLIP Edit question
No assignee Edit question
Last query:
Last reply:
Launchpad Janitor (janitor) said : #1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.