我试图从源文件(即 3.19.3 内核版本)编译 Linux 内核,我运行了以下命令进行编译
首先我提取
tar -xvf linux-3.19.3.tar.xz
更改到其目录
cd linux-3.19.9
sudo make menuconfig
没有改变任何东西
sudo make -j4
sudo make install-modules install
我按照给出的指示进行操作这里
重新启动后,它会给出以下消息并丢弃到 initrafms
放弃等待 root 设备。常见问题:
- 启动参数 (cat /proc/cmdline)
- 检查rootdelay=(系统等待的时间是否足够长?)
- 检查root=(系统是否等待正确的设备?)
- 缺少模块(cat /proc/modules;ls /dev)警告! /dev/disk/by-uuid/50ec5956-06a0-41b1-9315-0a68fd15270a 不存在。
掉壳了!
忙碌盒...
我得到这个屏幕。我应该怎么办?我应该如何编译内核以避免这种错误
答案1
内核编译完成后,必须执行命令depmod -a
刷新目录中的模块顺序/lib/modules/<kernel_version>
答案2
我认为您在运行 make 命令之前已更改为 linux-3.19.3 目录。而且看起来这个版本的内核在你编译和安装之前就已经运行了。
尝试使用 grub 启动到较旧的内核(使用救援的相同内核可能无法工作)。
在 Ubuntu 系统上使用普通源代码对我来说从来都不起作用。它可能有效,但我建议您从 Ubuntu 内核的源代码开始:
sudo apt-get source linux-image-3.19.3
sudo apt-get build-dep linux-image-3.19.3
并将其重建并安装为软件包,以使内核与安装的其余部分更加兼容。
更改为已安装源代码树的根目录并执行以下操作:
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic
这将为您提供一个可以安装的 debian 软件包dpkg
。
详情可查这里