Skip to content

Using the wrong .so on a Raspberry Pi under Docker #147

@mmastrac

Description

@mmastrac

I ran into this bug trying to get UniFi's controller working under Docker on a Raspberry Pi 1 B. It is attempting to load the wrong .so file (arm instead of armhf).

I confirmed this by running ldd on the .so that the jar tries to extract (it fails).

I worked around it by extracting org/xerial/snappy/native/Linux/armhf/libsnappyjava.so, renaming it to org/xerial/snappy/native/Linux/arm/libsnappyjava.so and adding it back to the zip. This fixes it.

Some diagnostic info from the Docker container:

# uname -a
Linux black-pearl 4.4.10-hypriotos+ #2 PREEMPT Fri May 20 15:31:36 UTC 2016 armv6l GNU/Linux
# java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode)
# cat /proc/cpuinfo
processor   : 0
model name  : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 697.95
Features    : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7
Hardware    : BCM2708
Revision    : 000e
Serial      : 00000000a8dc776b

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions