如何使用DMA66的硬盘

From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community

Jump to: navigation, search

如何使用DMA66的硬盘.(v0.0.1)

可能好多人都开始使用DMA66的硬盘了,可是2.2的内核好象还不支持. 刚才在论坛里找了一圈,好象还没有很完整的文章. 怎么办呢?难道就用不了了吗?不是,我们要做几个小修改和一些配制的工作, 就能让您的DMA66正常运转起来. 这里我介绍一下我自己的方法.(在去年11月我在freesoft的新闻组上贴过.) 这是我认为最简单的方法:

我的环境: ABIT BP6 + DUAL Celeron 366 OC 550 + IBM Diskstar 13.6G + 128M RAM Slackware 7.0 + Kernel 2.2.13 upgraded to 2.2.16 lilo安装在Linux根分区

准备: 主板或DMA66驱动卡说明书. 启动光盘和/或软盘.装好DMA66的硬盘线. 从自己主板说明书里找出您的主板所用的DMA66芯片的牌号.我的是HPT 366. 记下您DMA66信号线安装的槽位和您硬盘的主从跳线. 到下面联接先下载DMA66的补丁.(下面联接是最新的2.2.16的补丁) http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.2.16/ide.2.2.16.patch.bz2 请注意下载的补丁应该和您用的内核版本一致.如果版本不一致打补丁,编译出错可不要怪我. (当然必须先要装上内核源码,发现好多其他版本缺省没有内核源码.Slackware没这事, 到时候编译说没有源码可别又找我.) 以及一张好的干净的软盘.

步骤: 1,把硬盘挂在普通DMA33口上安装系统,注意要装上内核源码.

   如果已经在DMA33口上将就的兄弟可以跳过. 

2,安装,配置完成后以root登陆,按照下面命令操作:

  1. cd /usr/src/
  2. bunzip2 "/the/location/you/put/your/patch/downloaded/"ide.2.2.xx.patch.bz2
  3. patch -p0 < ide.2.2.xx.patch
  4. cd linux
  5. make distclean
  6. make config (或者xconfig 或者menuconfig,看爱好定,我用xconfig)
  7. make dep
  8. make bzImage
  9. make modules
  10. make modules_install

这里的make config 一步要到 Block Device里把你的DMA66驱动芯片的条目选上. make modules 和 make modules_install 两步可做可不做,其他的编译选项按照 您以前用的就可以了.如果不会编译内核,请阅读Kernel-Howto. 3,安装新内核 编译完内核,我的做法是制作两个可引导镜像以防万一.步骤如下: (这时候您在/usr/src/linux目录下)

  1. cd arch/i386/boot
  2. cp /bzImage /vmlinux2216-dma66
  3. echo "image=/vmlinux2216-dma66" >> /etc/lilo.conf
  4. echo "root=/dev/hdxx" >> /etc/lilo.conf (这里具体 xx 是什么请先看看您原来的/etc/fstab 里根分区"/"的设置.详细信息看下面步骤.)
  5. echo "label=linux-dma66" >> /etc/lilo.conf
  6. echo "read-only" >>/etc/lilo.conf
  7. lilo

请注意">>",大于号有两个.否则如果lilo.conf没了别怪我.这儿实际上是修改/etc/lilo.conf增加一个引导条目, 熟悉这些的您可以用自己熟悉的方法做,我这里是想偷懒.

4,把准备好的干净,优质软盘放入,做一张引导盘.

  1. make lilodisk

注意一定要lilo引导盘,因为我们要输入内核参数.

5,然后您可以重新启动,在lilo:提示符下键入:linux-dma66测试一下新内核.可以用dmsg看看有没有新设备(您DMA66芯片的信息.)

     如果急性子可以跳过. 

6,最好还用软盘引导试验一下,在lilo:提示符下键入:root=/dev/hdxx的参数(这个参数和上面hdxx里的一样.)

      一切正常则继续.出错请参考错误分析. 

7,拿出你准备的硬盘参数,修改/etc/fstab,把相应的设备该成新的设备文件,比如我情况是这样的:

   我的硬盘原来是IDE1主盘,准备重新放到DMA66口一的主盘, 
  原来的IDE设备的设备文件是:/dev/hda ,/dev/hdb, /dev/hdc, /dev/hdd, 
  新的DMA66的设备文件名为:/dev/hde,/dev/hdf,/dev/hdg/dev/hdh... 
  这样我要把fstab里的linux 根分区/dev/hda4改成:/dev/hde4, 对应其他分区也要 
  照此修改.只需要改设备名,分区不变.也就是说,类似这样: 

  /dev/hda4 --> /dev/hde4

       /dev/hda7 --> /dev/hde7 
       ... 

 注意你要根据你用的配置修改.(参考你的硬盘跳线和所用的DMA66口.)

8,修改完成,存盘退出,请注意一定要非常认真地检查您的配置,一定要和您 
    硬件的构型一致. 

9,反复检查无误后,关闭计算机.

10,把原来的普通硬盘线换下,插上DMA66硬盘线.

11,重新启动计算机,先进入BIOS,把启动顺序设置为:(在我的 BP6 机器上)

   A,C,D 

12,插入上面做的引导盘,用软盘引导,在lilo:提示符上输入:vmlinuz root=/dev/hdxx

(这里的设备文件名hdxx为上面对应根分区修改后的文件名.按照您的实际情况输入.好象不用 vmlinuz?大家纠正一下.) 

13,引导以root进入系统,修改/etc/lilo.conf,把所有对应设备文件名按照上面修改/etc/fstab的根分区的设备名的方法修改.

        改成hdxx. 

14,运行lilo,

  1. lilo

15,重新启动系统,再次进入BIOS,把引导顺序改成象下面这样:

        EXT,C,A 
       这里EXT是DMA66,在另一个BIOS选项里可选,根据您的BIOS做设置. 
        保存退出. 

16,取出软盘用硬盘引导.在lilo:提示符下输入 linux-dma66(您取的镜象名)

     这时候应该能够顺利进入系统.如果顺利进入系统,那么恭喜您,您正在使用DMA66. 
      这样您可以用hdparm或者其他软件测试一下看看有什么变化. 

错误分析: 可能出现的错误: 1,出现"kernel panic: can't found root at ..." 之类的错误信息.很可能您的/etc/fstab没有改对.用软盘传参数引导(上面有例子)

  或者关机后把硬盘重新挂到原来IDE口上,重新启动(从硬盘上或者从光软盘上),mount 根分区,进入根分区修改/etc/fstab. 
  然后再试验. 

2,lilo说找不到系统内核镜象.您肯定忘记修改/etc/lilo.conf了,或者修改完成后忘记运行一下lilo把新参数装载入引导镜象了. 解决方法是用软盘传递参数引导并进入系统,修改/etc/lilo.conf然后运行lilo,再重新启动系统.这里的传参方法和修改方法和 前面一样. 3,软盘引导不了,检查一下您的软盘质量. 4,重起后控制台汉字没了.您可能用了Turbo,Xteam,BP这些中文版吧.我不知道怎样处理,还是发信给他们让他们给做一 个可以用的升级包吧.一句话,这个中文问题我解决不了,因为我试验的结果是这些版本一重新编译内核,控制台中文就没了. 不过X里面还有,还是可以接受的.


说明: 1,我不是现场写这篇东西的,而且所用的配制可能也和您不同,请根据您的具体情况稍做修改.如果有错误之处请指正,尤其是传参数 的部分,我用的slackware 光盘启动时有许多传内核参数的提示,而且可以直接做引导盘,很好用(所以很喜欢Slackware).可我发现好 多别的版本光盘引导只能安装,(或者是我不会用?).而且本人不对因此文导致的任何损失负责. 2,DMA66并没有对性能有多大的提升,至少我测试的结果如此.我安装的目的是我觉得可以多用几块硬盘在上面. 3,比较讨厌的是这样的非正式补丁会影响以后的内核升级,每次都要重新从最初的版本把补钉全部重新打一遍,我从2.2.13

到2.2.16都是把原来的/usr/src/linux删除,从光盘把内核源码重新安装(2.2.13)然后从13开始打补丁到16.最后再打IDE的补丁. 

4,在linuxnewbie.org上面用DMA66做关键字可以查到一篇文章,写得很好.那篇文章说,理论上说可以不用把迎盘线拔来插去,基本原理 是通过内核参数令普通IDE驱动可以找到DMA66的芯片并使用之(当做DMA33通道).这样可以先当做DMA33在DMA66通道上安装,然 后再升级内核并打开DMA66的开关.但是我的试验结果是它可以找到DMA66的芯片,但是却不能找到hde...等设备,好象要手工制做一个 启动盘,手工装配(mount)设备文件.这里最好是能够做一张带驱动的安装引导盘,然后用光盘等介质安装.我正在琢磨做一张,可是 从没做过,而且很忙,一时半会儿怕是出不来.如果哪位兄弟能做一张,放到网上给大家下载,真是功德无量. 5,2.4的内核直接支持DMA66,各位也可以不打补丁,直接用2.4的(不过目前还没有完成).但是还是有切换内核时插拔硬盘线的问题.


--- BitBIRD


Some birds ain't mean to be caged

Personal tools