LinuxSir.cn,穿越时空的Linuxsir!

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

自己编译内核的兄弟请帮我看看[已解决]

[复制链接]
发表于 2007-8-1 18:33:59 | 显示全部楼层 |阅读模式
解决方法: IDE硬盘用SATE驱动时,必须勾选 CONFIG_ATA_GENERI  

今天用abs的方式编了一遍内核,但是用编译的内核启动系统却碰到下面的error
   
  1. ERROR: Failed to parse block device name for '/dev/sda8'
  2. ERROR: Unable to create/detect root device '/dev/sda8'         
复制代码

   
   我按提示在 menu.lst 中加了 rootfstype=reiserfs rootdelay=8 ,还是没用(已经把reiserfs编译在内核中了)
      
  1.   title  Arch Linux ck
  2.   root   (hd0,1)
  3.   kernel /vmlinuz26ck root=/dev/sda8 ro rootfstype=reiserfs rootdelay=8
  4.   initrd /kernel26ck.img  
复制代码


   上次手工编译的内核也是这样的结果,可相同的config在ubuntu却好好的,为啥在Archlinux下就这样呢?
     附件中是我修改的PKGBUILD,

本帖子中包含更多资源

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

x
 楼主| 发表于 2007-8-2 15:01:15 | 显示全部楼层
没人知道吗? google,baidu搜到的都不管用,难道我和arch合不来??
回复 支持 反对

使用道具 举报

发表于 2007-8-3 13:45:06 | 显示全部楼层
是硬盘没找到,/dev下面没有sda设备,所以sda8无法识别。

最近的内核2.6.22在IDE硬盘上使用SATA驱动有一个BUG,找不到硬盘:
http://bugzilla.kernel.org/show_bug.cgi?id=8611

你的如果是这样就倒退一个内核版本看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-4 10:07:59 | 显示全部楼层
又重新编了2次,按Tejun Heo  说的把CONFIG_IDE_GENERIC 屏蔽掉,还是没用(照样不认我的IDE硬盘);
   十分感谢2楼的crquan,不过那个bug好像是sate硬盘被识别成ide的了;
    现在我只好把sata驱动全砍了,用会老ide驱动,不过硬盘重新被识别成hdc了;

   arch默认的config是把ide,sate全编成模块……………… 算了,能用reiser4就行,

`
回复 支持 反对

使用道具 举报

发表于 2007-8-4 11:00:21 | 显示全部楼层
问题不在于PKGBUILD上面,在于你得config文件上面,你应该上传config文件才对!
config并不一定相互兼容的,所以没有理由适合你得UB就一定得适合ARCH。

用PKG方式安装的确利于管理,不过我想你也不会很频繁更新内核了,至少内核还没有支持RF4。所以你只能再次编辑PKGBUILD,再次编译,有这个时间打可以手动编译,打好补丁后自己去内核设置里面看看arch默认的勾选,这样会帮组你找到你之前的config的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-4 15:05:51 | 显示全部楼层
今天配合lsmod和kernel26的config文件,发现我在编译sate驱动时漏选了CONFIG_ATA_GENERIC,在学校的新机子上是sate所以不用勾选,而ide硬盘用sate驱动是需要的;  
  这次用的config是过年时在家里用的,那是ide只能用老驱动,前几次编译时只是加了CONFIG_ATA_PIIX ,没注意其他的选项(PS:CONFIG_ATA_GENERIC的位置太不起眼了)

blance真是一针见血啊,不过PKG确实方便 , 似乎把pkgname和相关变量改一下就可以避免升级覆盖的问题了;

问题解决,谢谢大家帮忙!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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