Skip to content

Linux setup: usbfs_memory_mb default (16MB) is far below Sony's required 150MB and is undocumented #45

Description

@takusaito-ctrl

Environment: ILCE-7M5 · USB · Camera Remote SDK V2.02.00 · linux-arm64 (Raspberry Pi, kernel 6.8.0-1051-raspi)

Summary

Sony's Camera Remote SDK Linux documentation requires the usbfs buffer limit to be raised to 150 MB. Nothing in this repo mentions it, and the kernel default on this host was 16 MB.

$ cat /sys/module/usbcore/parameters/usbfs_memory_mb
16

Raise it with:

echo 150 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb

This takes effect immediately for an already-connected camera — the limit is a global budget checked by the kernel at URB submission time, so no reconnect or replug is needed. It does not survive a reboot; making it permanent needs usbcore.usbfs_memory_mb=150 on the kernel command line or a modprobe conf entry.

Honest scope note

I raised this while investigating the stuck large-file download in #40, on the theory that a 16 MB usbfs budget could not accommodate the SDK's Linux chunk size. That theory was wrong — with 150 MB applied, the download still hung at 0 bytes, identically. So this is not the fix for #40 and should not be closed as such.

It is still worth doing on its own merits: it is a documented vendor requirement, the default is nearly 10x below it, and it is exactly the kind of environment gap that produces confusing intermittent USB behaviour later.

Relevant SDK detail

CameraDeviceRest.cpp:526-528 already carries Sony's Linux-specific chunk size, matching their sample_RemoteTransferMode verbatim:

CrInt32u divisionSize = 0x5000000;  // 80MB
#if defined(__linux__)
    if (m_connType == cli::ConnectionType::USB) divisionSize = 0x1000000;  // 16MB
#endif

That 16 MB Linux chunk sitting exactly at the stock 16 MB usbfs ceiling is at minimum an uncomfortable coincidence worth documenting, even though raising the ceiling did not change the observed behaviour.

Suggested

Add a Linux prerequisites section to the setup docs covering usbfs_memory_mb=150 (both the runtime and persistent forms), and ideally have the server log a warning at startup if it reads below 150 on Linux.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationlinux

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions