嗯,之前提到过本本上的linux有点古怪,明明本本里面的硬盘是并口的,装好发行版之后识别出来却是sda,而且一直碰到什么libata的东东。后来编译内核的时候就把ide驱动编进内核了,在配置文件中貌似是CONFIG_IDE项目。再后来升级内核到23以后,发现启动的时候总是有错误信息:
ata_piix0000:00:14.1:no available native port |
然后在系统运行的过程中总感觉硬盘的速度好慢,而且一拷贝东西就cpu的占用率超级高,今天终于忍不住测试了一下,过程如下:
用dd命令产生空文件,第一次的速度正常,大概是40Mb/s,同样的命令再次运行,速度降低明显,连续运行几次之后,写入速度居然稳定在2Mb/s,郁闷。
网上查到的方法有:
1.加启动参数:ide0=noprobe ide1=noprobe
2.重编内核,把CONFIG_IDE设置为N
试验的结果,这两种方式都可以。硬盘的速度恢复正常。
看看资料,大致看出来原来linux为了支持新出现的sata,出现的libata主要是支持sata,为了“backward compatibility”,也就带了pata的驱动,在22以后的内核里面,ide驱动和libata不合了,不能再像之前那样和平共处了,如果都编译了,会打架,造成硬盘性能低下了。
看看
提到的解决方式有:
- Recommended (where BIOS permits): Change BIOS IDE mode from
"legacy" or "combined" mode to "AHCI" (recommended), "RAID" or "native".
- Boot with the kernel commandline parameter "combined_mode=libata" or
"combined_mode=ide" to allow the specified driver to claim all IDE
ports.
- Disable libata (CONFIG_ATA) entirely, and enable
CONFIG_BLK_DEV_IDE_SATA.
- (newer choice, with less field testing) Disable CONFIG_IDE, and
permit libata to run all your IDE and SATA ports.
可以看出,可能的解决方案还有两种。
关于libata的链接如下列几个有价值的:
1.~tjuerges/ALMA/Kernel/libata/
2.
3.
相信其他的还有很多了。暂时就这些吧。
阅读(2078) | 评论(0) | 转发(0) |