fsfw-example-linux-mcu/doc/README-linux.md

52 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2021-08-02 20:34:43 +02:00
# Raising Message Queue Size Limit
The FSFW requires a higher message queue maximum lenght than the regular
value configured for Linux. Failure to adjust this limit will cause
errors when running FSFW applications.
The following steps raise the maximum allowed message queue length to a higher
number permanently, which is required for some framework components. The recommended
values for the new message length is 130.
2. Edit the /etc/sysctl.conf file
```sh
sudo nano /etc/sysctl.conf
```
Append at end:
```sh
fs/mqueue/msg_max = <newMsgMaxLen>
```
Apply changes with:
```sh
sudo sysctl -p
```
A possible solution which only persists for the current session is
```sh
echo <newMsgMax> | sudo tee /proc/sys/fs/mqueue/msg_max
```
# Setting up UNIX environment for real-time functionalities
Please note that on most UNIX environments (e.g. Ubuntu), the real time functionalities
used by the UNIX pthread module are restricted, which will lead to permission errors when creating these tasks
and configuring real-time properites like scheduling priorities.
If you use the real time scheduler in Linux, perform the following steps:
Edit the /etc/security/limits.conf file and add following lines at the end:
```sh
<username> hard rtprio 99
<username> soft rtprio 99
```
The soft limit can also be set in the console with `ulimit -Sr` if the hard
limit has been increased, but it is recommended to add it to the file as well
for convenience. If adding the second line is not desired for security reasons,
the soft limit needs to be set for each session. If using an IDE like eclipse
in that case, the IDE needs to be started from the console after setting
the soft limit higher there. After adding the two lines to the file,
the computer needs to be restarted.
It is also recommended to perform the following change so that the unlockRealtime
script does not need to be run anymore each time.