Linux kernel 如何解决;英特尔“未找到agp模块”;尝试安装自定义内核时出错?

Linux kernel 如何解决;英特尔“未找到agp模块”;尝试安装自定义内核时出错?,linux-kernel,Linux Kernel,我正在虚拟盒中运行Fedora 17。我正在尝试做一些内核开发。因此,我从kernel.org获取了源代码,然后执行了以下步骤: make oldconfig make sudo make modules_install 这就得到了我复制到/boot的bzImage文件。然后我运行了grub2 mkconfig,它更新了我的grub条目 现在我可以在grub菜单上看到我的自定义内核。但是,当我尝试运行它时,会出现以下屏幕: 我搜索了intel\u agp错误,发现人们在系统上同时安装GPU和

我正在虚拟盒中运行Fedora 17。我正在尝试做一些内核开发。因此,我从kernel.org获取了源代码,然后执行了以下步骤:

make oldconfig
make
sudo make modules_install
这就得到了我复制到
/boot
bzImage
文件。然后我运行了
grub2 mkconfig
,它更新了我的grub条目

现在我可以在grub菜单上看到我的自定义内核。但是,当我尝试运行它时,会出现以下屏幕:

我搜索了
intel\u agp
错误,发现人们在系统上同时安装
GPU
intel graphics
时出现此错误。但是,我的机器上没有
GPU
。另外,我不确定模块是否已安装


我做错什么了吗?如何解决此错误?

您的问题不是缺少英特尔agp模块。你的问题是下一行,它说你不能挂载你的根文件系统。最可能的原因是缺少initramfs,它包含根块设备或文件系统的驱动程序

我不是真正的Fedora专家,但您可能需要类似于
mkinitrd
的东西来生成initramfs,它还需要进入/引导并包含在您正在构建的新模块的grub配置中


或者,您可以将内核配置更新为内置(即将配置选项设置为“y”而不是“m”)所有需要构建的内容。但这需要对您的系统和Linux驱动程序有相当多的了解。

您的发行版看起来像Ubuntu,对吗?如果是,则生成initrd的命令为:

(假设当前目录与包含内核源代码的目录相同)

然后是:

update-grub 
initrd和rootfs的逻辑大致如下:

首先做一个blkid和df:

blkid
/dev/sda5: UUID="251ce906-e4db-4eac-a2c7-58d5e1ed86a3" TYPE="reiserfs" 

df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5             24412432  22360832   2051600  92% /
none                   2959228      2352   2956876   1% /dev
您将看到rootfs位于reiserfs上,其中/boot位于其中。所以这意味着当内核加载时reiserfs内核模块必须在那里,否则它无法读取/引导vmlinuz内核映像喜欢的位置。所以initrd就是为了这个目的

使用initrd(您总是可以使用gunzip-c现有的| cpio-idmv | initrd|文件)来解压缩内容并查看所有fs.*ko文件。我的建议是:

./lib/modules/2.6.32-33-generic/kernel/fs/reiserfs/reiserfs.ko
./lib/modules/2.6.32-33-generic/kernel/fs/nfs_common/nfs_acl.ko
然后尝试将其与配置文件匹配:

CONFIG_REISERFS_FS=m
但是如果您已经完成了CONFIG_REISERFS_FS=y,那么您就不需要initrd中的REISERFS.ko

总之,您现在的问题可能是缺少initrd文件,或者如果在命令行中指定了initrd文件,则initrd中缺少必要的fs内核模块,这将使您能够读取/boot目录


是的,这也不完全正确,当涉及grub2时-/boot/grub将包含自己的fs内核模块以加载/boot目录,并且grub.cfg将具有必要的insert-reiserfs语句以加载模块。对不起,太多细节无法描述

首先要做的可能是确定您是否有intel_agp驱动程序,以及它是内置的还是模块包含在initrd中。
intel_agp
错误基本上是无害的,尤其是在虚拟系统上。真正的问题是你的内核没有检测到你的虚拟硬盘,这就是导致故障的原因。不,虚拟机正在运行Fedora。我不知道我为什么这么做:P。我想我会改用Ubuntu。在Fedora上,
update-grub2
脚本不可用。因此,我使用
grub2 mkconfig
更新了grub条目。这似乎有效,但我还没有比较这两种方法的来源。我将使用
更新initrafms
并发布结果。
CONFIG_REISERFS_FS=m