Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

[Linux] pthread_setschedparam : Operation not permitted

20

积分

0

威望

0

贡献

技术小白

积分
20

pthread_setschedparam : Operation not permitted

发表于 2022-3-24 17:25:05      浏览:5511 | 回复:12        打印      只看该作者   [复制链接] 楼主
  • 固件类型: 官方提供的固件
  • 固件文件名称: v2.10-42-g50c7f0ac
  • 固件下载地址: 不知道
  • Log日志: test.txt
问题描述及复现步骤:
需求:设置线程的运行优先级。

ffgo获得信息:

OS:         Ubuntu 18.04.5 LTS
MODEL:         Firefly RK3568-ROC-PC HDMI (Linux)
FIREFLY: v2.10-42-g50c7f0ac
DATE:         20210827-1534
KERNEL:         Linux version 4.19.193 (llq@tchip14) (latest: 2cff32a4f0f631284463e56b1b9ccebd6be88eb3) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #72 SMP Fri Oct 15 09:43:42 CST 2021

现象:
c++11设置不了线程的运行优先级。
相同代码在NX,虚拟机中可以以root权限运行。但是在我们提供的板子“Firefly RK3568-ROC-PC HDMI (Linux)”中没办法以root权限运行。
尝试过的方式为:sudo 可执行程序 ; sudo之后,执行可执行程序

虚拟机中的系统信息:Linux nx 4.15.0-171-generic #180-Ubuntu SMP Wed Mar 2 17:25:05 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NX中的系统信息:Linux nx-desktop 4.9.201-tegra #15 SMP PREEMPT Wed Jun 16 19:21:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

代码见附件。

编译命令:
g++ set_thread_param.cpp -o set_thread_param -lpthread

希望能帮忙解决。谢谢。


test.txt

971 Bytes, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

20

积分

0

威望

0

贡献

技术小白

积分
20
发表于 2022-3-24 17:28:16        只看该作者  沙发
不知道下载附件要积分,
附上代码:

#include <iostream>
#include <unistd.h>
#include <thread>
#include <pthread.h>

int thread_run()
{
    printf("start thread_run\n");
    sleep(5);
    printf("end thread_run\n");
    return 0;
}

int main()
{

    std::thread t1(thread_run);
    sched_param sched;
    int res_policy;
    sched_param res_sched;

    pthread_getschedparam(t1.native_handle(),&res_policy,&res_sched);
    printf("orignal :\n res_policy %d\n res_sched %d\n",res_policy,res_sched.sched_priority);

    sched.sched_priority = sched_get_priority_max(SCHED_FIFO);
    int res;
    if(res = pthread_setschedparam(t1.native_handle(), SCHED_FIFO, &sched))
    {
        printf("error %d\n",res);
        perror("pthread_setschedparam error\n");   
    }

   

    pthread_getschedparam(t1.native_handle(),&res_policy,&res_sched);
    printf("after :\n res_policy %d\n res_sched %d\n",res_policy,res_sched.sched_priority);

    t1.join();

    return 0;
}
回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-3-24 19:54:58        只看该作者  板凳
所使用的固件名称提供一下
我用最新的 ubuntu20 固件测试没有问题
sudo ./set_thread_param
回复

使用道具 举报

20

积分

0

威望

0

贡献

技术小白

积分
20
发表于 2022-3-25 10:54:15        只看该作者  地板
Liuth 发表于 2022-3-24 19:54
所使用的固件名称提供一下
我用最新的 ubuntu20 固件测试没有问题
sudo ./set_thread_param

你好,我不是很清楚你说的固件名称指的什么。

我们使用的是Station P2产品8G+64G,Ubuntu 18.04(TF卡)版本。

然后参照发帖前的建议,使用ffgo看的信息是:
OS:         Ubuntu 18.04.5 LTS
MODEL:         Firefly RK3568-ROC-PC HDMI (Linux)
FIREFLY: v2.10-42-g50c7f0ac
DATE:         20210827-1534
KERNEL:         Linux version 4.19.193 (llq@tchip14) (latest: 2cff32a4f0f631284463e56b1b9ccebd6be88eb3) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #72 SMP Fri Oct 15 09:43:42 CST 2021

如果提供的信息不对,麻烦你举例说一下。
谢谢
回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-3-25 11:09:15        只看该作者  5#
就是你这个ubuntu18固件是哪里下载的,下载下来的文件名是什么
Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip
是这个吗?
回复

使用道具 举报

20

积分

0

威望

0

贡献

技术小白

积分
20
发表于 2022-3-25 11:20:17        只看该作者  6#
Liuth 发表于 2022-3-25 11:09
就是你这个ubuntu18固件是哪里下载的,下载下来的文件名是什么
Station_P2_Ubuntu_18.04_GPT_RAW_20211015 ...

嗯嗯,
我们是在https://www.stationpc.cn/download这个链接下载的文件。
文件名是:Station_P2_Ubuntu_18.04_GPT_20211015_1604.zip
回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-3-25 11:58:03        只看该作者  7#
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常
回复

使用道具 举报

20

积分

0

威望

0

贡献

技术小白

积分
20
发表于 2022-3-25 14:08:13        只看该作者  8#
Liuth 发表于 2022-3-25 11:58
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常

哦哦,好的,谢谢。

请问Ubuntu18.04这个版本之后会修复这个问题么?
如果暂时没有修复的计划,能说明下造成这个问题可能的原因么?

另外我们提供的这个Ubuntu20固件支持打实时补丁么?
回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-3-25 14:54:34        只看该作者  9#
不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了

我们有提供 rtlinux 的固件,目前只有无桌面版
需要桌面版可以下载SDK自行打实时补丁实现,或者联系商务
回复

使用道具 举报

20

积分

0

威望

0

贡献

技术小白

积分
20
发表于 2022-3-25 15:00:32        只看该作者  10#
Liuth 发表于 2022-3-25 14:54
不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了

意思是Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip这个固件是没有我现在遇到的问题是么?
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表