Firefly开源社区

标题: 工具分享:检测内核配置是否支持Docker等容器 [打印本页]

作者: Liuth    时间: 2021-12-2 20:30
标题: 工具分享:检测内核配置是否支持Docker等容器
本帖最后由 Liuth 于 2021-12-3 14:36 编辑

使用Docker等容器需要CGROUP、BRIDGE等功能,如果Kernel中相关配置没有打开,安装或运行Docker会出现各种错误。

Docker开源团队提供了一个脚本,可以检测Kernel配置是否符合Docker的运行要求

源地址:https://github.com/moby/moby/blob/master/contrib/check-config.sh

可以使用wget直接下载或者下载附件 check-config.zip (4.13 KB, 下载次数: 92)
  1. wget https://github.com/moby/moby/raw/master/contrib/check-config.sh
复制代码

拷贝到目标平台直接运行脚本:
  1. chmod +x check-config.sh
  2. ./check-config.sh
复制代码
也可以在其他位置指定config文件:
  1. ./check-config.sh config_file
复制代码


得到的输出结果如下:
  1. Generally Necessary:
  2. - cgroup hierarchy: properly mounted [/sys/fs/cgroup]
  3. - apparmor: enabled and tools installed
  4. - CONFIG_NAMESPACES: enabled
  5. - CONFIG_NET_NS: enabled
  6. - CONFIG_PID_NS: enabled
  7. - CONFIG_IPC_NS: enabled
  8. - CONFIG_UTS_NS: enabled
  9. - CONFIG_CGROUPS: enabled
  10. ......

  11. Optional Features:
  12. - CONFIG_USER_NS: enabled
  13. - CONFIG_SECCOMP: enabled
  14. - CONFIG_SECCOMP_FILTER: enabled
  15. - CONFIG_CGROUP_PIDS: enabled
  16. - CONFIG_MEMCG_SWAP: enabled
  17. ......
复制代码
结果主要是两部分,Generally Necessary: 表示必要的配置,如果有显示missing的地方,需要在内核配置中打开,重新编译烧录内核以支持Docker
Optional Features: 是可选配置,根据需要打开。


这里也提供一个RK356X的已经开启全部Docker必要/可选配置(build-in方式)的config文件: firefly_linux_docker_defconfig.zip (4.36 KB, 下载次数: 112)


作者: 时间的蝴蝶    时间: 2021-12-2 20:34

作者: Negro旋    时间: 2021-12-3 10:25

作者: 柠檬百香果茶    时间: 2021-12-10 21:30
下载重复扣积分,哭了
作者: fujunxu    时间: 2021-12-30 21:24
灯泡怎么搞
作者: superobk    时间: 2022-1-4 18:43
Thanks for sharing~~~
作者: wx_lee_M0A    时间: 2022-1-5 11:30

Thanks for sharing~~~
作者: a343188433    时间: 2022-1-5 13:53
firefly_linux_docker_defconfig.zip 这个文件下载不了
作者: Liuth    时间: 2022-1-6 08:51
a343188433 发表于 2022-1-5 13:53
firefly_linux_docker_defconfig.zip 这个文件下载不了

可以下载,没问题啊
作者: superobk    时间: 2022-1-6 14:04
感謝分享~~~~
作者: 笨小孩1017    时间: 2022-2-5 16:03
fujunxu 发表于 2021-12-30 21:24
灯泡怎么搞

签到
作者: zlctfghb    时间: 2022-2-24 08:56

作者: fatboyslimww    时间: 2022-3-7 16:04
4.4内核 始终少一个 CONFIG_CGROUP_BPF: missing
作者: Liuth    时间: 2022-3-8 11:18
fatboyslimww 发表于 2022-3-7 16:04
4.4内核 始终少一个 CONFIG_CGROUP_BPF: missing

CGROUP_BPF 依赖 BPF_SYSCALL,你是不是 BPF_SYSCALL 没开启?
作者: fatboyslimww    时间: 2022-3-9 09:45
Liuth 发表于 2022-3-8 11:18
CGROUP_BPF 依赖 BPF_SYSCALL,你是不是 BPF_SYSCALL 没开启?

嗯 这个确认已经开启了  ,menuconfig就是搜不到 CGROUP_BPF
作者: louwuxin    时间: 2022-3-9 19:15
附件内容如何查看?
作者: salesdmcf    时间: 2022-3-16 15:09
这个文档很有用
作者: karl-majors    时间: 2022-3-19 17:58
warning: /proc/config.gz does not exist, searching other paths for kernel config ...
error: cannot find kernel config
  try running this script again, specifying the kernel config:
    CONFIG=/path/to/kernel/.config ./check-config.sh or ./check-config.sh /path/to/kernel/.config
请问下这个报错怎么破
作者: Liuth    时间: 2022-3-21 09:05
karl-majors 发表于 2022-3-19 17:58
warning: /proc/config.gz does not exist, searching other paths for kernel config ...
error: cannot  ...

在SDK/kernel中 make ARCH=arm64 firefly_linux_defconfig (架构和默认配置文件根据你的板型修改)
然后将SDK/kernel/.config 文件放入板子,和check-config.sh放一起
再执行 ./check-config.sh .config
作者: karl-majors    时间: 2022-3-21 14:12
Liuth 发表于 2022-3-21 09:05
在SDK/kernel中 make ARCH=arm64 firefly_linux_defconfig (架构和默认配置文件根据你的板型修改)
然后 ...

官方有可以使用docker的img嘛 应用开发 被个内核整不明白了
作者: Liuth    时间: 2022-3-21 15:06
karl-majors 发表于 2022-3-21 14:12
官方有可以使用docker的img嘛 应用开发 被个内核整不明白了

哪块板子?
作者: karl-majors    时间: 2022-3-21 16:06
Liuth 发表于 2022-3-21 15:06
哪块板子?

firefly rk3399
作者: Liuth    时间: 2022-3-22 17:38
karl-majors 发表于 2022-3-21 16:06
firefly rk3399

这个目前还没有,只能手动开启内核配置了
作者: wx_Wang._sMs    时间: 2022-3-23 14:50
感謝分享~~~~
作者: karl-majors    时间: 2022-3-23 22:10
Liuth 发表于 2022-3-22 17:38
这个目前还没有,只能手动开启内核配置了

可是按照文档进行编译一直报错

processing option: kernel
============Start build kernel============
TARGET_ARCH          =arm64
TARGET_KERNEL_CONFIG =rockchip_linux_defconfig
TARGET_KERNEL_DTS    =rk3399-evb-ind-lpddr4-linux
TARGET_KERNEL_CONFIG_FRAGMENT =
==========================================
#
# configuration written to .config
#
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CC      scripts/mod/empty.o
  CC      scripts/mod/devicetable-offsets.s
./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -Wp,-MD,scripts/mod/.empty.o.d -nostdinc -isystem ./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -print-file-name=include[Errno 8] Exec format error: ./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -I./arch/arm64/include -Iarch/arm64/include/generated/uapi -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -mgeneral-regs-only -fno-pic -fno-asynchronous-unwind-tables -Os -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(empty) -DKBUILD_MODNAME=KBUILD_STR(empty) -c -o scripts/mod/empty.o scripts/mod/empty.c[Errno 8] Exec format error: './../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc'
make[2]: *** [scripts/Makefile.build:278: scripts/mod/empty.o] Error 8
make[2]: *** Waiting for unfinished jobs....
./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -Wp,-MD,scripts/mod/.devicetable-offsets.s.d -nostdinc -isystem ./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -print-file-name=include[Errno 8] Exec format error: ./../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -I./arch/arm64/include -Iarch/arm64/include/generated/uapi -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -mgeneral-regs-only -fno-pic -fno-asynchronous-unwind-tables -Os -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(devicetable_offsets) -DKBUILD_MODNAME=KBUILD_STR(devicetable_offsets) -fverbose-asm -S -o scripts/mod/devicetable-offsets.s scripts/mod/devicetable-offsets.c[Errno 8] Exec format error: './../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc'
make[2]: *** [scripts/Makefile.build:153: scripts/mod/devicetable-offsets.s] Error 8
make[1]: *** [scripts/Makefile.build:484: scripts/mod] Error 2
make: *** [Makefile:579: scripts] Error 2
make: *** Waiting for unfinished jobs....
====Build kernel failed!====

作者: Liuth    时间: 2022-3-24 09:17
karl-majors 发表于 2022-3-23 22:10
可是按照文档进行编译一直报错

processing option: kernel

编译问题请另开帖子,初步看 Exec format error 应该是你的电脑交叉编译环境没有准备好,按照3399维基重新搭建SDK编译环境。 编译前配置也错了,不应该使用 rk3399-evb-ind-lpddr4-linux 维基里写的正确 dts 是 rk3399-firefly。
作者: qhg    时间: 2022-4-7 23:39

作者: wx_Ivan_IeT    时间: 2022-5-29 15:08
厉害的不要不要的
作者: wx__LeNYh9    时间: 2022-7-15 10:19

作者: wx__LeNYh9    时间: 2022-7-18 10:27

作者: shixuegui    时间: 2022-7-19 22:48
先顶一个
作者: 半称心    时间: 2022-9-6 14:26
感谢分享。要积分下载
作者: 忘汐    时间: 2022-9-25 08:50
感谢分享,看配置里面,和当前固件内核差了相当多配置,请问是不是这里的配置里面只包换了Docker所必须的内核选项呢
作者: gyyak46    时间: 2022-11-1 21:34

作者: gyyak46    时间: 2022-11-1 21:52

作者: 半称心    时间: 2022-11-4 16:33
解锁docker
作者: tay87    时间: 2022-12-1 22:05
这么好的资源竟然没发现
作者: JustTry    时间: 2022-12-7 08:27
谢谢

作者: JustTry    时间: 2022-12-19 17:45
谢谢
作者: zzh1212    时间: 2023-2-13 15:46
谢谢
作者: zzh1212    时间: 2023-2-27 14:49
谢谢
作者: 闆鍨    时间: 2023-4-3 14:06

作者: yuxiao23    时间: 2023-4-7 13:56

作者: lumanyu    时间: 2023-6-6 11:48
怎么才能下载啊
作者: zzsqwq    时间: 2023-9-6 19:36
感谢共享,下载看看。
作者: zdzuser    时间: 2023-9-14 10:20
强烈建议官方出一个3399的5.X内核固件
作者: Onlooker    时间: 2023-12-4 14:42
很好
作者: Onlooker    时间: 2023-12-4 14:46
warning: /proc/config.gz does not exist, searching other paths for kernel config ...  这是怎么回事呢
作者: zhanhui    时间: 2023-12-21 11:44
真心牛逼的同步哈哈
作者: 木杉    时间: 2024-1-7 08:59
好东西!!!!!!!!!!!!!!!
作者: 王坚    时间: 2024-1-9 16:08
好东西,我得试一下怎么配置内核
作者: slinow    时间: 2024-3-26 13:28
感谢
作者: zhaoergou    时间: 2024-4-14 21:05
感谢
作者: yulingkq    时间: 2024-5-5 10:29
灯泡怎么弄
作者: nsby494    时间: 2024-5-6 18:16
感谢分享,来学习 一下

作者: ericxuyihao    时间: 2024-7-1 16:06
请问附件zip 文件应该如何配置 有具体教程么 ?  或者要重新烧录带docker功能的镜像 有操作教程么  ?

OS:      Ubuntu 22.04.4 LTS
MODEL:   Firefly ROC-RK3576-PC Linux HDMI
FIREFLY: v3.11-32-g33acbd9
DATE:    20240606
KERNEL:  Linux version 6.1.57 (daijh@tchipserver19) (kernel commit id: 1b6d44502852) (sdk version: rk3576_linux_release_20240606_v0.1.0a) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #39 SMP Fri Jun  7 09:33:32 CST 2024
作者: wx__SuAyZA    时间: 2024-7-20 13:46
Optional Features: 是可选配置,根据需要打开。
作者: 千岳    时间: 2024-8-21 19:25
Thanks.
作者: zhouhua    时间: 2024-11-10 20:56

作者: wx__tVVHh8    时间: 2024-12-19 16:00
感谢分享
作者: nbxx    时间: 2025-2-22 17:39
本帖最后由 nbxx 于 2025-2-23 21:52 编辑

请问始终显示下面的问题应该怎么处理?

  1. Generally Necessary:
  2. - cgroup hierarchy: cgroupv2
  3.   Controllers:
  4.   - cpu: missing
  5.   - cpuset: missing
复制代码


其他必须项,都在 kernel 的配置里面添加了,也成功消除了missing。
这个CPU也在 kernel 配置里面加了下面的内容,但始终还有这个问题:

  1. CONFIG_CGROUPS=y
  2. CONFIG_CGROUP_CPU=y
  3. CONFIG_CGROUP_CPUACCT=y
  4. CONFIG_CGROUP_FREEZER=y
  5. CONFIG_CGROUP_PIDS=y
  6. CONFIG_CGROUP_DEVICE=y
  7. CONFIG_CPUSETS=y
复制代码

dockerd 运行提示如下:
  1. INFO[2025-02-22T21:41:15.135113480+08:00] Starting up                                 
  2. DEBU[2025-02-22T21:41:15.136670948+08:00] Listener created for HTTP on unix (/var/run/docker.sock)
  3. INFO[2025-02-22T21:41:15.137520847+08:00] OTEL tracing is not configured, using no-op tracer provider
  4. INFO[2025-02-22T21:41:15.138096294+08:00] detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf
  5. DEBU[2025-02-22T21:41:15.166930459+08:00] Golang's threads limit set to 13950         
  6. DEBU[2025-02-22T21:41:15.168140268+08:00] metrics API listening on /var/run/docker/metrics.sock
  7. DEBU[2025-02-22T21:41:15.182725638+08:00] Using default logging driver json-file      
  8. DEBU[2025-02-22T21:41:15.183866324+08:00] No quota support for local volumes in /userdata/docker/volumes: Filesystem does not support, or has not enabled quotas
  9. DEBU[2025-02-22T21:41:15.184648558+08:00] processing event stream                       module=libcontainerd namespace=plugins.moby
  10. DEBU[2025-02-22T21:41:15.205866294+08:00] [graphdriver] priority list: [overlay2 fuse-overlayfs btrfs zfs vfs]
  11. DEBU[2025-02-22T21:41:15.215444724+08:00] successfully detected metacopy status         storage-driver=overlay2 usingMetacopy=false
  12. DEBU[2025-02-22T21:41:15.226876659+08:00] backingFs=extfs, projectQuotaSupported=false, usingMetacopy=false, indexOff="", userxattr=""  storage-driver=overlay2
  13. INFO[2025-02-22T21:41:15.226989240+08:00] [graphdriver] using prior storage driver: overlay2
  14. DEBU[2025-02-22T21:41:15.227062447+08:00] Initialized graph driver overlay2            
  15. DEBU[2025-02-22T21:41:15.230038262+08:00] Max Concurrent Downloads: 3                  
  16. DEBU[2025-02-22T21:41:15.230136551+08:00] Max Concurrent Uploads: 5                    
  17. DEBU[2025-02-22T21:41:15.230184092+08:00] Max Download Attempts: 5                     
  18. INFO[2025-02-22T21:41:15.230351213+08:00] Loading containers: start.                  
  19. DEBU[2025-02-22T21:41:15.230919660+08:00] Option DefaultDriver: bridge                 
  20. DEBU[2025-02-22T21:41:15.231024950+08:00] Option DefaultNetwork: bridge               
  21. DEBU[2025-02-22T21:41:15.231083865+08:00] Network Control Plane MTU: 1500              
  22. DEBU[2025-02-22T21:41:15.230959909+08:00] processing event stream                       module=libcontainerd namespace=moby
  23. DEBU[2025-02-22T21:41:15.233371652+08:00] Modules already loaded                        modules="[nf_conntrack nf_conntrack_netlink]"
  24. DEBU[2025-02-22T21:41:15.240788293+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION]
  25. DEBU[2025-02-22T21:41:15.244016686+08:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER]
  26. DEBU[2025-02-22T21:41:15.247527115+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER]
  27. DEBU[2025-02-22T21:41:15.250960837+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER]
  28. DEBU[2025-02-22T21:41:15.255690408+08:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING]
  29. DEBU[2025-02-22T21:41:15.260167983+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT]
  30. DEBU[2025-02-22T21:41:15.263925157+08:00] /usr/sbin/iptables, [--wait -t nat -F DOCKER]
  31. DEBU[2025-02-22T21:41:15.267159675+08:00] /usr/sbin/iptables, [--wait -t nat -X DOCKER]
  32. DEBU[2025-02-22T21:41:15.270652021+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER]
  33. DEBU[2025-02-22T21:41:15.273496880+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER]
  34. DEBU[2025-02-22T21:41:15.276450820+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-1]
  35. DEBU[2025-02-22T21:41:15.279392802+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-1]
  36. DEBU[2025-02-22T21:41:15.282185162+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-2]
  37. DEBU[2025-02-22T21:41:15.284994438+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-2]
  38. DEBU[2025-02-22T21:41:15.287881588+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION]
  39. DEBU[2025-02-22T21:41:15.290743071+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION]
  40. DEBU[2025-02-22T21:41:15.294174168+08:00] daemon configured with a 15 seconds minimum shutdown timeout
  41. DEBU[2025-02-22T21:41:15.294260208+08:00] start clean shutdown of all containers with a 15 seconds timeout...
  42. INFO[2025-02-22T21:41:15.296733491+08:00] stopping event stream following graceful shutdown  error="<nil>" module=libcontainerd namespace=moby
  43. DEBU[2025-02-22T21:41:15.297054318+08:00] Cleaning up old mountid : start.            
  44. DEBU[2025-02-22T21:41:15.297756929+08:00] Cleaning up old mountid : done.              
  45. failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: invalid type
复制代码









欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1