首先是安装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