首先是安装Ubuntu,为了尽量保证upboard运行性能,我这里选择了ubuntu server版本,尽量精简系统体积。编译RT内核根据这个进行,虽然是upxtreme的介绍,但是也可以用于upboard。在完成系统配置后,为了尽量避免重做系统,又根据这个博客进行系统备份操作。经过初步rt-test测试,系统运行正常。

PS:

未安装RT内核时,进行测试结果如下:

robot@robot:~/rt-tests$ sudo ./cyclictest -a -t -n -p99
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 4.26 4.30 4.27 5/211 323309

T: 0 (322910) P:99 I:1000 C:  25994 Min:      9 Act:   41 Avg:   30 Max:    5393
T: 1 (322911) P:99 I:1500 C:  17346 Min:     10 Act:   30 Avg:   31 Max:    4826
T: 2 (322912) P:99 I:2000 C:  13020 Min:     13 Act:   23 Avg:   33 Max:    5351
T: 3 (322913) P:99 I:2500 C:  10412 Min:     13 Act:   30 Avg:   37 Max:    4984

安装RT内核后,测试结果如下:

# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.11 0.21 0.09 2/207 1221

T: 0 ( 1218) P:99 I:1000 C:  20390 Min:      9 Act:   11 Avg:   10 Max:      26
T: 1 ( 1219) P:99 I:1500 C:  13593 Min:      9 Act:   11 Avg:   10 Max:      26
T: 2 ( 1220) P:99 I:2000 C:  10195 Min:      9 Act:   11 Avg:   11 Max:      61
T: 3 ( 1221) P:99 I:2500 C:   8155 Min:      9 Act:   11 Avg:   11 Max:      32

PPS:

又发现有linux lowlatency的upboard的内核,可能可以直接作为RT内核使用。

内核版本:

Linux robot 5.4.0-1-lowlatency #0~upboard5-Ubuntu SMP PREEMPT Fri Jan 7 12:22:41 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

测试结果:

# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.11 0.21 0.09 2/207 1221

T: 0 ( 1218) P:99 I:1000 C:  20390 Min:      9 Act:   11 Avg:   10 Max:      26
T: 1 ( 1219) P:99 I:1500 C:  13593 Min:      9 Act:   11 Avg:   10 Max:      26
T: 2 ( 1220) P:99 I:2000 C:  10195 Min:      9 Act:   11 Avg:   11 Max:      61
T: 3 ( 1221) P:99 I:2500 C:   8155 Min:      9 Act:   11 Avg:   11 Max:      32