免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 789 | 回复: 0
打印 上一主题 下一主题

解决找不到光驱的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-26 15:16 |只看该作者 |倒序浏览
由于不常用光驱,因此不能肯定到底是做了什么之后才使得光驱不能用的。
之前用2.6.24内核时有用过光驱。
现在用2.6.25-r3版,不知道安装了openrc后是不是会导致udev不能认出光驱?
用lspci命令可以看到
03:00.0 IDE interface: Marvell Technology Group Ltd. Device 6121 (rev b1)
我的主板上用Marvell程序来接一个ide接口的dvd。
dmesg | grep cd命令看不到任何关于光驱的信息。
/dev下没有sr0设备。
而在同一个机器上的另一个发行版fedora 8可以使用光驱。
=============================================================================
linuxsir上的
yyccrasher
兄弟帮助我解决了这个问题:
折腾了一下,算是解决了。
找到内核中 drivers/ata/ahci.c 这个文件,大概在 700 行左右,会有一段:
        PHP 代码:
       
               
               
                       
    /*
     * Temporary Marvell 6145 hack: PATA port presence
     * is asserted through the standard AHCI port
     * presence register, as bit 4 (counting from 0)
     */
    if (hpriv->flags & AHCI_HFLAG_MV_PATA) {
        if (pdev->device == 0x6121)
            mv = 0x3;
        else
            mv = 0xf;
        dev_printk(KERN_ERR, &pdev->dev,
               "MV_AHCI HACK: port_map %x -> %x\n",
               port_map,
               port_map & mv);
        port_map &= mv;
    }
               
               
       
这段貌似就是相对 2.6.24 新加入的 Marvell 相关的代码,貌似就是多了个 if (pdev->device == 0x6121) 的判断,尝试着去掉,变成:
        PHP 代码:
       
               
               
                       
    if (hpriv->flags & AHCI_HFLAG_MV_PATA) {
        mv = 0xf;
        dev_printk(KERN_ERR, &pdev->dev,
               "MV_AHCI HACK: port_map %x -> %x\n",
               port_map,
               port_map & mv);
        port_map &= mv;
    }
               
               
       
然后重编译内核,发现可行,虽然不知道原理,但是效果达到了,不妨试试看~

===================================================================
非常感谢yyccrasher,你的方法我试了,发现单是删除if (pdev->device == 0x6121) mv = 0x3;else还不够,还要屏蔽掉下面这行
{ PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv }
这样,重新编译后就可以使用光驱了,否则还是不行。不过我lspci的结果,检验Marvell还是6121,但是,这并不影响使用。
03:00.0 IDE interface: Marvell Technology Group Ltd. Device 6121 (rev b1)
最后再次感谢yyccrasher的帮助。
我想了想,是不是lspci把我的marvell设备给识别错了,本来应该是6145的,但是它给识别成6121了,所以就不能正确使用了。不知道到底是哪个部分来识别marvell的版本的?
=====================================================================

lingyunxs
使用下面的命令看看能否找到设备
wodim --devices  
cdrecord --scanbus
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/33031/showart_706895.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP