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

Language:
English Edit question
Status:
Open
For:
HPLIP Edit question
Assignee:
No assignee Edit question
Last query:
2019-08-07
Last reply:

Can you help with this problem?

Provide an answer of your own, or ask kxjiang for more information if necessary.

To post a message you must log in.