RK3588 平台关联与使用场景详解
源码路径:rk3588/kernel-6.1/ipc/(通用实现)
文档目录:linuxDoc/ipc/
目录
一、平台结论
| 项 |
说明 |
| Rockchip 补丁 |
无 |
| 架构 |
ARM64 使用标准 syscall 表,不依赖 旧 ipc() |
| 默认 Kconfig |
SYSVIPC、IPC_NS、POSIX_MQUEUE 在通用 defconfig 中多为 y |
RK3588 行为与上游 Linux 6.1 一致。
二、内核配置建议
| 场景 |
建议 |
| 最小嵌入式固件 |
可 =n SYSVIPC、POSIX_MQUEUE 减体积(需确认无依赖软件) |
| Docker / LXC |
保留 IPC_NS + SYSVIPC |
| 实时音频/控制 |
更常用 pthread + futex、eventfd、memfd,非 SysV |
| 数据库/遗留中间件 |
保留 shm + sem |
POSIX_MQUEUE 依赖 NET:裁网络时要连带注意。
三、与 SeagullYpcEncode / 嵌入式
| 机制 |
编解码场景相关性 |
| SysV shm |
低:现代方案用 DMA-BUF、ION、drm prime |
| SysV msg/sem |
低–中:老进程间控制;新服务多用 socket/dbus |
| POSIX mqueue |
低:部分 RTOS 移植代码可能使用 |
| IPC NS |
中:多实例容器化部署时需要隔离 |
VPU/RGA 零拷贝 不走 ipc/shm.c;详见驱动与 linuxDoc/mm。
四、容器与调试
1 2 3 4 5 6 7
| ipcs -a ls /proc/sysvipc/ readlink /proc/self/ns/ipc
docker run --ipc private ...
|
| 问题 |
方向 |
Cannot allocate memory msg |
增大 msgmnb/msgmni |
| shm 残留 |
ipcrm 或 shm_rmid_forced |
| mqueue 打不开 |
检查挂载与 fs.mqueue.* 限额 |
关联文档
正在加载留言…