linux 内核支持sata,怎么在2.4内核下获取sata硬盘的ID

rt,用hdparm 的时候,情况如下

/dev/sda:

HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device

-bash-2.05b# ./hdparm -I /dev/sda1

/dev/sda1:

HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device

-bash-2.05b# ./hdparm -I /dev/sda2

/dev/sda2:

HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device

-bash-2.05b# ./hdparm -i /dev/sda2

/dev/sda2:

HDIO_GET_IDENTITY failed: Inappropriate ioctl for device

google一下后,说是2.4对这个不支持。上头要求参考2.6的代码,修改驱动。

不知道该怎么做?工作量多少?

那位大侠能够解答。分数还以加。

|

楼主用的是2.4的什么版本的,网上说2.4.22及其以后就支持,如果小于这版本的,建议到www.kernel.org上

找两个标准的内核版本2.4.22和你的版本,再通过diff命令比较得到的patch,找到跟sata相关的驱动移植应该容易些

如果参考2.6的内核,那你必须把sata模块及其相关的源码都熟悉了,再移植才能保证成功

http://bbs.linuxpk.com/thread-918-1-1.html

|

2.4的内核和2.6的内核差别还是有点大的。

数据结构,成员函数都很不一样。

要想参考2.6的源码,写出2.4内核的sata驱动,

有点麻烦,block设备驱动编写是要花不少时间的。

而且2.4和2.6内核驱动程序都需要了解。

建议用2.4.22以后的内核源码,自带sata驱动。

|

一个玩sata的成功例子:

使用sarge 2.4.27已经一段日子了,中途升级过N次kernel,不论是已经编译好的DEB还是源码SRC,我都没成功过.昨天一怒之下,把硬盘上重要的数据弄到另一个硬盘上,然后把硬盘的分区都给删除了,准备重新装debian.

可是,不论是hiweed debian,或是官方的debian,linux26的时候,安装程序总提示找不到光驱,WK.....我可是用光盘引导的啊.

装2.4就没有任何问题啊.难道是我的BENQ 5232X和2.6的内核不兼容?我刷新了光驱的firmware,再安装,还是失败......找朋友借了一个光驱来,竟然还是不行......我当时抓狂了.

冷静下来,想想,我的硬盘是SATA的,会不会问题就出在这个上面?进入BIOS,将SATA的硬盘选项一个个的试验,NONE,可以,但没硬盘让我装.....;AUTO,不行;Combined Mode,不行;Enhance Mode,搞定!

现在我知道了,以前我使用AUTO的时候,BIOS将SATA的硬盘当做IDE的硬盘识别.2.4kernel不管这么多,就按照BIOS里的来,而2.6就判断出硬盘的实际接口和BIOS的不一样.

终于安装成功了,我也终于明白了为什么我先前升级内核总是失败.这次,把APT源改成testing,成功升级到kernel-image-2.6.13

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值