Skip to content
Merged
Changes from all 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
49 changes: 49 additions & 0 deletions docs/PERMISSION_SETTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Permission setting for non-root usage of Remoteproc Runtime

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

By default, the remoteproc device can only be accessible by root.

1. Create a group and add the user:

```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:

Create /etc/tmpfiles.d/remoteproc.conf and add relevant remoteproc driver filesystem.
Check the remoteproc name and make sure the correct remote processor is revealed to the group:

```
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. On each new boot, the remoteproc processor number may be different depending on the driver probe order. It is recommended that this file is checked on each boot to reveal correct processor to correct group of users before applying the configuration.

3. Apply the change in remoteproc.conf. This needs to be done on each boot:
```sh
sudo systemd-tmpfiles --create /etc/tmpfiles.d/remoteproc.conf
```
4. Log in as a user in the remoteproc group and test access to the remoteproc driver:
```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 user accessible

Remoteproc loads firmware by name from the [Linux Firmware Search Path](https://docs.kernel.org/driver-api/firmware/fw_search_path.html). By default, this will not be user accessible.

1. Override the firmware search path to somewhere user accessible by writing to `/sys/module/firmware_class/parameters/path`. You need root permission for this.
```sh
echo <your firmware folder path> | sudo tee /sys/module/firmware_class/parameters/path
```