搜索引擎找到几篇文章,linux kernel 报错:FATAL: kernel too old -CSDN
FATAL: kernel too old -CSDN
按上述文章指导,file指令查看交叉编译时生成的libc,可以看到确实目标kernel版本号确实要高。"nterpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 5.15.0"
晕哥 说:https://whycan.cn/files/members/3/2019-04-17_080606.png
如果跑 Linux 4.10 系统, 建议用 buildroot 配置时候选 Linux 4.9.x kernel headers
如果选 Linux 4.10.x kernel headers 仍然可能出现一样的 kernel too old 错误然后宕机.
下面还有一个手动指定版本的选项(Manually specified Linux version)可以设置具体的小版本号。
刚刚看了一下, 确实有, 多谢指教 ^_^
]]>https://whycan.cn/files/members/3/2019-04-17_080606.png
如果跑 Linux 4.10 系统, 建议用 buildroot 配置时候选 Linux 4.9.x kernel headers
如果选 Linux 4.10.x kernel headers 仍然可能出现一样的 kernel too old 错误然后宕机.
下面还有一个手动指定版本的选项(Manually specified Linux version)可以设置具体的小版本号。
]]>晕哥 说:https://whycan.cn/files/members/3/2019-04-17_080606.png
如果跑 Linux 4.10 系统, 建议用 buildroot 配置时候选 Linux 4.9.x kernel headers
如果选 Linux 4.10.x kernel headers 仍然可能出现一样的 kernel too old 错误然后宕机.
kernel 4.10, 头文件却要选 4.9.x 这有点说不通诶.
应该是最低要求的意思
]]>https://whycan.cn/files/members/3/2019-04-17_080606.png
如果跑 Linux 4.10 系统, 建议用 buildroot 配置时候选 Linux 4.9.x kernel headers
如果选 Linux 4.10.x kernel headers 仍然可能出现一样的 kernel too old 错误然后宕机.
kernel 4.10, 头文件却要选 4.9.x 这有点说不通诶.
]]>如果跑 Linux 4.10 系统, 建议用 buildroot 配置时候选 Linux 4.9.x kernel headers
如果选 Linux 4.10.x kernel headers 仍然可能出现一样的 kernel too old 错误然后宕机.
]]>kernel忙活了半天, 满身大汉, 居然被人嘲笑"你不行了"
盘他
是这么个道理, 还能解释得更形象一点吗?
]]>会是这里引起吗?
改改看吧
]]>/* Linux specific: minimum supported kernel version. */
#define __LINUX_KERNEL_VERSION (4 * 65536 + 13 * 256 + 0)
/* Override abi-tags ABI version if necessary. */
#define __ABI_TAG_VERSION 4,13,0
这下终于知道为什么了,
]]>#define DL_SYSDEP_OSCHECK(FATAL) \
do { \
/* Test whether the kernel is new enough. This test is only performed \
if the library is not compiled to run on all kernels. */ \
\
int version = _dl_discover_osversion (); \
if (__glibc_likely (version >= 0)) \
{ \
if (__builtin_expect (GLRO(dl_osversion) == 0, 1) \
|| GLRO(dl_osversion) > version) \
GLRO(dl_osversion) = version; \
\
/* Now we can test with the required version. */ \
if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION) \
/* Not sufficent. */ \
FATAL ("FATAL: kernel too old\n"); \
} \
else if (__LINUX_KERNEL_VERSION > 0) \
FATAL ("FATAL: cannot determine kernel version\n"); \
} while (0)
错误就是这里报出来的:
/* Now we can test with the required version. */ \
if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION) \
/* Not sufficent. */ \
FATAL ("FATAL: kernel too old\n"); \
}