linux - 更新 initramfs 时出现“致命:无法确定内核版本”
问题描述
我下载了 linux kernel-5.0.0 并尝试在我的 Ubuntu-18.04.3 上编译和安装它
我在 /usr/src/linux-5.0 中使用的命令:
sudo make mrproper
sudo make menuconfig
sudo make -j4
sudo make modules_install
sudo make install
在最后一条命令的结果中,有一个错误:
* dkms: running auto installation service for kernel 5.0.02173611831
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 5.0.02173611831 /boot/vmlinuz-5.0.02173611831
update-initramfs: Generating /boot/initrd.img-5.0.02173611831
FATAL: cannot determine kernel version
我不知道为什么这是“致命:无法确定内核版本”以及如何修复它。
一开始,我跳过它,但后来我发现一旦我像这样打开 vim,总是出现“无法确定内核版本”。 当我打开 vim
顺便说一句,奇怪的数字 5.0.02173611831 是(内核版本)+(我在大学的数字),我在“sudo make menuconfig”时按照老师的要求进行了配置。
解决方案
我有这个错误“致命:无法确定内核版本”,结果证明是在 ./configure 脚本中滥用了“cpp”。
其他用途就像
# Double quotes because CPP needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
但是这个错误来自一行
kernsrcver=`(echo "#include <$utsrelease>";
echo "kernsrcver=UTS_RELEASE") |
cpp -I $kernelbuild/include |
grep "^kernsrcver=" | cut -d \" -f 2`
我将 cpp 行更改为(并且有效):
cpp -I $kernelbuild/include -E - |
推荐阅读
- python - 如何使用python将变量插入mysql数据库?“您的 SQL 语法有错误”
- windows - 如何删除链接两个目录的空目录?
- c# - 如何修复异常无法加载 DLL 'gdiplus.dll':找不到指定的模块
- javascript - 向下滚动时修改元素的 CSS 设置
- git - 如何从洞 git 树中删除已从磁盘中删除的文件
- r - 我想用以前的非 NA 值和“Unclassified_”替换表中的 NA
- angular - Spring Angular 身份验证失败
- android - Facebook 使用 Firebase 登录后如何显示带有 displayName 的 toast 消息?
- asp.net - 在 Select 块中处理 Linq 中的空值
- android - Google play Android 应用更新延迟 - 已关闭曲目频道