Skip to content

[Bug] Segmentation fault (Status 139) on Raspberry Pi 5 due to 16KB Kernel Page Size #288

Description

@chenyjs

Environment

  • Hardware: Raspberry Pi 5 (8GB)
  • OS / Kernel: LibreELEC 12.0 / Linux Kernel with 16KB Page Size (Default on RPi 5)
  • Image: johngong/baidunetdisk:latest (ARM64 / AArch64)

Describe the Bug

When running the container on a Raspberry Pi 5 running LibreELEC 12 (or standard Pi OS with the default 16KB page size kernel), the container initializes services (TigerVNC, Nginx, Openbox) successfully, but immediately crashes when launching the core application (/opt/baidunetdisk/baidunetdisk).

The supervisor logs show a Segmentation fault with exit status 139:

[supervisor ] starting service 'app'...
[app        ] Segmentation fault
[supervisor ] service 'app' exited (with status 139).
[supervisor ] service 'app' exited, shutting down...

====================================================
Root Cause Analysis
Entering the container via /bin/sh and manually executing /opt/baidunetdisk/baidunetdisk triggers a instant Segmentation fault.

The issue stems from the official Baidu Netdisk Linux ARM64 binary (/opt/baidunetdisk/baidunetdisk), which is built/linked against traditional 4KB memory page size.

Raspberry Pi 5 uses a 16KB memory page size kernel by default, causing memory alignment failures in Chromium/Electron-based binaries compiled without 16KB page support.

Suggested Fix / Documentation Update
Since the root cause lies in the closed-source Baidu Netdisk ARM64 binary provided by Baidu, fixing the binary directly may not be possible on the container side. However, the following solutions/workarounds could be considered:

Update Documentation / README:
Add a note for Raspberry Pi 5 users specifying that the current ARM64 image requires a 4KB page size kernel.

Workaround for LibreELEC/Raspberry Pi OS users: Force loading the 4KB kernel by adding kernel=kernel8.img to /flash/config.txt (or /boot/config.txt).

Upstream Request:
If possible, request an updated Linux ARM64 build from Baidu that supports 16KB page alignment (e.g., compiled with newer Electron/Chromium toolchains supporting 16KB pages).


Note: This technical analysis and bug report description were drafted with assistance from Gemini AI based on real terminal output and container diagnostics.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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