Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7a087ad
docs: Mention the necesssity of root permissions
yejseo01 Oct 7, 2025
433e6af
feat: Enable remoteproc-runtime to be runnable in user space
yejseo01 Oct 15, 2025
acacd72
docs: Add inst on enabling non-root usr to use Remoteproc Runtime
yejseo01 Oct 9, 2025
0c19349
docs: Fix misalignment
yejseo01 Oct 9, 2025
ff8941c
docs: Add documentation to enable Remoteproc Runtime in user space
yejseo01 Oct 15, 2025
7cbcf52
feat: Make fetching of the firmware more stable
yejseo01 Oct 15, 2025
93084df
feat: revert error message return fix so it would be merged as differ…
yejseo01 Oct 15, 2025
4121ddf
docs: Divide the permission settings into chunks of steps
yejseo01 Oct 15, 2025
4991294
docs: Reword the introduction to user permissions guidance
yejseo01 Oct 15, 2025
d6133b7
fix: Fix lint issue
yejseo01 Oct 15, 2025
e38ae7f
fix: Fix markdown lint
yejseo01 Oct 15, 2025
54650ed
docs: remove to much emphasis on systemd dependency in title wording
yejseo01 Oct 21, 2025
58e7de2
docs: specify code block's language
yejseo01 Oct 21, 2025
4ff03b3
lint: remove unused package
yejseo01 Nov 11, 2025
06be4f8
docs: Remove kernel specific instructions
yejseo01 Nov 11, 2025
880a533
Update docs/PERMISSION_SETTING.md
yejseo01 Nov 11, 2025
87298c7
Update docs/PERMISSION_SETTING.md
yejseo01 Nov 11, 2025
25c156e
Merge branch 'main' into userspace_enable
yejseo01 Nov 11, 2025
cb16b80
Update docs/PERMISSION_SETTING.md's wording
yejseo01 Nov 11, 2025
8e48c68
Update docs/PERMISSION_SETTING.md
yejseo01 Nov 11, 2025
12b31e5
Update docs/PERMISSION_SETTING.md
yejseo01 Nov 11, 2025
b1be820
docs: remove mention of userspace run in USAGE.md
yejseo01 Nov 11, 2025
84d41ba
lint: Remove lint error
yejseo01 Nov 11, 2025
289a342
docs: State the volatility of remote processor number
yejseo01 Nov 11, 2025
c8b9270
docs: indicate volatility of the remoteproc processor number
yejseo01 Nov 11, 2025
8035486
docs: reword
yejseo01 Nov 11, 2025
41194b4
docs: Simplify introduction
yejseo01 Nov 12, 2025
3ad69d8
Update wording of docs/PERMISSION_SETTING.md
yejseo01 Nov 12, 2025
d7c159a
Update docs/PERMISSION_SETTING.md
yejseo01 Nov 12, 2025
d4d1946
lint: Remove excess whitespace
yejseo01 Nov 12, 2025
0f6dacb
Merge branch 'main' into userspace_enable
yejseo01 Nov 12, 2025
17a1da0
docs: Fix incorrect wording
yejseo01 Nov 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions docs/PERMISSION_SETTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Permission setting for non-root users' usage of Remoteproc Runtime

For non-root users to use Remoteproc Runtime, the remoteproc driver and the container engine must be accessible for this user.

## How to set Remoteproc Runtime to be accessible by non-root users
Comment thread
yejseo01 marked this conversation as resolved.
Outdated

### 1. Make remoteproc driver accessible to the user

Usually, remoteproc driver can only be accessible to root. To change this setting, follow the below instructions:
Comment thread
yejseo01 marked this conversation as resolved.
Outdated
Comment thread
yejseo01 marked this conversation as resolved.
Outdated

1. Create a group and add your user:
Comment thread
yejseo01 marked this conversation as resolved.
Outdated

```sh
sudo groupadd remoteproc
sudo usermod -aG remoteproc "$USER"
```

Log out and log back in to refresh group membership

2. Use systemd-tmpfiles to set mode/owner on every boot (and re-apply easily):

Create /etc/tmpfiles.d/remoteproc.conf with following:

```
f /sys/class/remoteproc/remoteproc0/state 0664 root remoteproc - -
f /sys/class/remoteproc/remoteproc0/firmware 0664 root remoteproc - -
f /sys/class/remoteproc/remoteproc0/name 0664 root remoteproc - -
```

Add similar lines for each additional remoteproc device (e.g., remoteproc1, remoteproc2, etc.) as needed.
Comment thread
yejseo01 marked this conversation as resolved.
Outdated

3. Apply the change in remoteproc.conf using root permission. This needs to be done on each boot.:
Comment thread
yejseo01 marked this conversation as resolved.
Outdated
```sh
sudo systemd-tmpfiles --create /etc/tmpfiles.d/remoteproc.conf
```
4. Log in as a user in the remoteproc group and try the following commands to make sure that you can access the remoteproc driver as this user:
Comment thread
yejseo01 marked this conversation as resolved.
Outdated
```sh
# read state
cat /sys/class/remoteproc/remoteproc0/state
# start/stop
echo start | tee /sys/class/remoteproc/remoteproc0/state
echo stop | tee /sys/class/remoteproc/remoteproc0/state
```

### 2. Set the firmware path to somewhere accessible by the user

1. Ensure that the path of the folder that contains your firmware is written to `/sys/module/firmware_class/parameters/path`. You need root permission for this.
Comment thread
yejseo01 marked this conversation as resolved.
Outdated
```sh
sudo echo <your firmware folder path> > /sys/module/firmware_class/parameters/path
Comment thread
yejseo01 marked this conversation as resolved.
Outdated
```
4 changes: 4 additions & 0 deletions docs/USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ Remoteproc Runtime supports several container engines, but the specifics of inte
- **[Container Runtime (Podman)](#container-runtime-podman)** - For Podman deployments
- **[Container Runtime (standalone)](#container-runtime-standalone)** - For direct OCI runtime usage

Because the driver interfaces are located in the `/sys/class` directory, controlling remoteproc devices requires elevated permissions.

To ensure Remoteproc Runtime has the necessary privileges, either run your container engine (e.g., Docker daemon, K3S, or Podman) with root privileges, or follow the [permission setting instructions](./PERMISSION_SETTING.md).
Comment thread
yejseo01 marked this conversation as resolved.
Outdated

### Containerd Shim (Docker, K3s, etc)

1. **Install the shim and runtime**
Expand Down
Loading