由于 COVID-19 限制了我的团队对硬件的访问,我正在 PC 上模拟嵌入式软件。我们使用的是Micrium的uCOS-III RTOS,Linux POSIX端口要求将rtprio限制设置为无限制。他们的启动指南说要将<username> - rtprio unlimited
添加到我在/etc/security/
中找到的limits.conf
文件中。当我尝试然后运行ulimit -a
时,rtprio
的限制仍然是 0。
我也尝试过运行ulimit -r unlimited
,但除非我在sudobash 会话中,否则我没有正确的权限。我发现正确运行RTOS代码的唯一方法是运行sudo bash
并在~/.bashrc
中ulimit -r unlimited
。这要求我在任何时候想运行可执行文件时都要sudo,这有点烦人,并且还限制了一些调试选项。
我目前正在通过Linux的Windows子系统运行它,这就是我假设阻碍这一点的原因。我在 WSL2 和 Ubuntu 20.04 LTS 上。我只是想知道是否有办法在不处于超级用户模式下更改 rtprio 限制。谢谢!
添加/etc/security/limits.conf
以下内容后:
#<domain> <type> <item> <value>
<your_user_name> hard rtprio 20
<your_user_name> soft rtprio 0
不知何故,当您登录时它不会直接工作,因此您需要在使用新限制之前通过su
更改用户。在设置ulimit
之前尝试su <your_user_name>
$ ulimit -r
0
$ ulimit -Sr 1
1
$ ulimit -r
1
请注意,您可以将软限制设置为 0 蚂蚁到硬限制(在本例中为 0 - 20(之间,并且可以不可逆地减少硬限制。