Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate use of overlay filesystem to implement a driver for GPIO mirroring #27

Open
flongo82 opened this issue May 20, 2016 · 1 comment
Assignees

Comments

@flongo82
Copy link
Member

If we want to use drivers for mirroring GPIO filesystems from one node to another we probably will need to use overlay filesystems on both the master node (from which the GPIO is mirrored) and the slave node (to which the GPIO is mirrored).

@gmerlino
Copy link
Member

In terms of (overlay-/union-like) filesystems, either we could resort to in-kernel OverlayFS (or simply Overlay), but that requires kernel 3.18+, or to userspace ones, the only one I found is this: https://github.com/rpodgorny/unionfs-fuse

If we want to have a shared mount point but obtain different views of the filesystem, the answer may lie in overlays plus "mount namespaces" (CLONE_NEWNS, already available in kernel 3.3 it seems): each process would have its own namespace and see its own "layer" of the (possibly multiple) system overlays.

This would leave the question open to what the behaviour of such setup would be.

Another issue, maybe to be spun out as a separate one, is whether we can be as granular as possible with GPIO filesystems, given the nature of board.connect or similar primitives, which initialize the whole "board" (i.e., reset GPIO states wholly).

A possible solution could lie in initializing GPIO only at driver (fs) instantiation time, and fake/no-op any further requests for initialization, e.g., those coming from remote clients.

This is to be investigated by looking more deeply into the inner workings of example libraries (LininoLib) and the semantics of GPIO initialization.

@gmerlino gmerlino assigned npeditto and unassigned gmerlino May 24, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants