LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 919|回复: 9

编译内核出问题

[复制链接]
发表于 2008-1-2 19:52:40 | 显示全部楼层 |阅读模式
以下是编译的步骤

1.下载内核文件解压到/usr/src,
linux  linux-2.6.23.12  linux-2.6.23-ARCH
2.把/boot目录下的kconfig26拷贝到/usr/src/linux/.config
3.make oldconfig (全按回车键)
4.make menuconfig(这里我只修改了native language support和删除了windows文件系统fat vfat的支持)
5.make bzImage && make modules && make modules_install
6.完成后,备份/boot分区,把编译产生的bzImage和System.map拷贝到/boot下

重启后不能挂载根分区,错误信息如下:

attempting to create root device '/dev/sda9'
error:failed to parse block device name for '/dev/sda9'
Unknow
error:root fs cannot be detected,Try using the rootfstype=kernel parameter
waiting for devices to settle...done
error:failed to parse block device name for '/dev/sda9'
error:unable to create/detect root device '/dev/sda9'

附上.config文件,请各位大侠指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-1-2 20:06:45 | 显示全部楼层
看起来像是Scsi驱动的问题。
它被编译成模块了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-2 20:42:14 | 显示全部楼层
我把系统的kconfig26拷到了/usr/src/linux/.config,再make oldconfig,之后没再改过scsi的东西,应该编进去了把
回复 支持 反对

使用道具 举报

发表于 2008-1-2 20:48:42 | 显示全部楼层
可能把它编译成模块了,而不是编译到内核中了。
可以用make menuconfig,看看是不是这样的。

PS:你的启动菜单是怎样写的?
回复 支持 反对

使用道具 举报

发表于 2008-1-2 20:50:06 | 显示全部楼层
fallback模式能用不?如果能用,很可能是mkinitcpio的问题。
另外,我编译内核时,make oldconfig用的是/proc/config.gz的配置。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-2 21:45:30 | 显示全部楼层
Post by sofire;1802446
可能把它编译成模块了,而不是编译到内核中了。
可以用make menuconfig,看看是不是这样的。

PS:你的启动菜单是怎样写的?

有很多个关于scsi的选项,有些编成模块,有些编译到内核中,不知道具体要把哪个scsi的编进去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-2 21:47:22 | 显示全部楼层
Post by dkeehl;1802447
fallback模式能用不?如果能用,很可能是mkinitcpio的问题。
另外,我编译内核时,make oldconfig用的是/proc/config.gz的配置。

你还改了scsi的选项吗,不知道/proc/config.gz的默认配置会不会把scsi编进去
回复 支持 反对

使用道具 举报

发表于 2008-1-2 23:06:54 | 显示全部楼层
Post by linuxyeshiquan;1802423
以下是编译的步骤

1.下载内核文件解压到/usr/src,
linux  linux-2.6.23.12  linux-2.6.23-ARCH
2.把/boot目录下的kconfig26拷贝到/usr/src/linux/.config
3.make oldconfig (全按回车键)
4.make menuconfig(这里我只修改了native language support和删除了windows文件系统fat vfat的支持)
5.make bzImage && make modules && make modules_install
6.完成后,备份/boot分区,把编译产生的bzImage和System.map拷贝到/boot下

重启后不能挂载根分区,错误信息如下:

attempting to create root device '/dev/sda9'
error:failed to parse block device name for '/dev/sda9'
Unknow
error:root fs cannot be detected,Try using the rootfstype=kernel parameter
waiting for devices to settle...done
error:failed to parse block device name for '/dev/sda9'
error:unable to create/detect root device '/dev/sda9'

附上.config文件,请各位大侠指点



做initrd了吗?
回复 支持 反对

使用道具 举报

发表于 2008-1-2 23:51:27 | 显示全部楼层
Post by linuxyeshiquan;1802476
你还改了scsi的选项吗,不知道/proc/config.gz的默认配置会不会把scsi编进去


在Arch上,即使把scsi驱动编成模块也没有关系,装进initrd就是了,默认也是这样做的。试一试 mkinitcpio -p kernel26
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-2 23:53:26 | 显示全部楼层
参考了这两篇文章,搞定了,马上熄灯,明天再写个总结,多谢各位
http://wiki.archlinux.org/index. ... ilation_From_Source
http://wiki.archlinux.org/index. ... _with_custom_kernel
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表