https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/first_use.html#docker-zhi-chi
RK 3506 调试日志(一)
更新: 10/23/2026 字数: 0 字 时长: 0 分钟
Dante 嵌入式平台 (DEP) 打包为 Open Containers Initiative (OCI) 容器,需要内核支持容器。
Firefly 发布的普通固件一般不满足 Docker 的运行要求,如果有需求,可以使用 SDK 打开内核的相关配置,重新编译烧录内核以支持 Docker。
内核配置
在SDK默认配置修改需要添加以下配置
控制组(Cgroups)
必须启用以下 Linux 内核配置选项才能支持 cgroups。可以根据需要启用其他 cgroup 配置选项。
- CONFIG_CGROUPS
- CONFIG_CGROUP_DEVICE
- CONFIG_CPUSETS
- CONFIG_CGROUP_SCHED
- CONFIG_MEMCG
此外,至少必须在 /sys/fs/cgroup/ 挂载以下 cgroup 子系统:
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,mode=755)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu type cgroup (rw,relatime,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,relatime,devices)可以在 buildroot 中添加 cgroupfs-mount 包实现
->Targetpackages
-> System tools
cgroupfs-mount命名空间(Namespaces)
必须启用以下 Linux 内核配置选项才能支持 Linux 命名空间。
- CONFIG_NAMESPACES
- CONFIG_UTS_NS
- CONFIG_IPC_NS
- CONFIG_USER_NS
- CONFIG_PID_NS
- CONFIG_NET_NS
启用 SquashFS 支持
必须启用以下 Linux 内核配置选项才能在 Linux 中支持 SquashFS。可以根据需要启用与 SquashFS 相关的其他配置选项。
- CONFIG_SQUASHFS
- CONFIG_SQUASHFS_ZLIB:支持 SquashFS 压缩文件系统的 ZLIB 压缩。
Enable Loop Device 支持
必须启用以下 Linux 内核配置选项才能支持挂载 SquashFS 文件。
- CONFIG_BLK_DEV_LOOP:支持 loop 设备(用于挂载 .img 文件)。
多播网络
CONFIG_IP_MULTICAST:支持 IP 多播网络通信
内核配置
dep_check.sh会检查内核配置在/proc/config.gz 需要启用以下内核配置
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y硬件支持
硬件时间戳(PHC)
某些网络接口卡 (NIC) 具有内置的硬件时间戳支持,采用 PTP 硬件时钟 (PHC) 的形式。NIC 可以使用此时钟在数据包打开或离开线路时对数据包进行时间戳,从而产生非常准确的时间戳。如果平台不支持硬件时间戳,则需要依赖 NIC 驱动程序来执行软件时间戳。硬件时间戳比软件时间戳准确得多。
ethtool -T eth0确认它是否支持:
hardware-transmithardware-receivesoftware-transmitsoftware-receivephc时钟设备(通常是/dev/ptp0)
ALSA 声卡
注册虚拟声卡
设备树
rockchip 的SDK中有 dummy-codec ,确保被编译进内核或模块
/{
...
dummy_codec:dummy_codec{
compatible = "rockchip,dummy-codec";
#sound-dai-cells = <0>;
status = "okay";
clocks = <&mclkout_sai0>; //主时钟由codec申请
clock-names = "mclk";
assigned-clocks = <&mclkout_sai0>;
// assigned-clock-rates = <24576000>;
pinctrl-names = "default";
pinctrl-0 = <&rm_io28_sai0_mclk>;
};
};/{
...
sound{
compatible = "simple-audio-card";
simple-audio-card,name = "audio-card";
status = "okay";
simple-audio-card,dai-link@0 {
format = "left_j"; //i2s
bitclock-master = <&cpu0_audio>;
frame-master = <&cpu0_audio>;
// convert-channels = <8>;
mclk-fs = <512>;
cpu0_audio:cpu {
sound-dai = <&sai0>;
// dai-tdm-slot-num = <8>; //由驱动决定通道数量
dai-tdm-slot-width = <32>;
};
codec0_audio:codec {
sound-dai = <&dummy_codec>;
};
};
};
};&sai0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&rm_io27_sai0_sclk
&rm_io30_sai0_lrck
&rm_io29_sai0_sdi0
&rm_io31_sai0_sdo>;
};