论坛首页 编程语言技术论坛

Redhat9不认部分USB移动硬盘的解决办法

浏览 2673 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-09  
C
最近在redhat9的系统上接入一个USB移动硬盘,结果死活不认,fdisk -l也查不到。网上搜索了下,找到了一个解决办法,当然文章的部分内容根据我自己的实践过程修改了下:

1. 确定你的redhat9的内核版本
#uname -r
2.4.20-8smp

2.进入与内核同版本的源码目录,我的是/usr/src/linux-2.4.20-8/

3.编辑当前目录下的Makefile文件,文件开头的“EXTRAVERSION =”值修改为“-8smp”,以使内核模块能匹配当前内核。如果你的内核是“2.4.20-8”,那值应该只是“-8”。

4.修改“drivers/usb/storage/unusual_devs.h”
查找如下代码段(建议查找时搜索字符串“EagleTec”):
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x0001,
"EagleTec",
"External Hard Disk",
US_SC_SCSI, US_PR_BULK, NULL,
US_FL_FIX_INQUIRY ),

改成下面的代码:
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x9999,
"Genesys",
"USB DISK",
US_SC_SCSI, US_PR_BULK, NULL,
US_FL_FIX_INQUIRY | US_FL_MODE_XLATE | US_FL_START_STOP ),

5.编译内核模块
#cp /boot/config-2.4.20-8smp .config
#make mrproper
#make oldconfig
#make dep
#make modules -j2 #能支持多进程编译,发挥我的双核CPU。不过我的P4 3.0GHz还是很慢,耐心点吧。

6.将编译好的“drivers/usb/storage/usb-storage.o”复制到/lib/modules/2.4.20-8smp/kernel/drivers/usb/storage/下(注意备份原来的usb-storage.o,备份永远是个好习惯)。

7.加载驱动模块
#modprobe -r usb-storage #卸载
#modprobe usb-storage #加载

8.挂载
用fdisk -l应该就能看到你的移动硬盘分区了。有些可能暂时看不到,但是也有可能挂载上去。
#mkdir /mnt/tmp
#mount -t vfat -o iocharset=gb2312,code=cp936 /dev/sda1 /mnt/tmp/


另外,如果嫌麻烦,用centos 3.4的内核也许也可以解决usb移动硬盘识别问题。Centos 3.4跟redhat9比较兼容,可以在下面的镜像中选取一个合适的内核,rpm命令安装完后,重启选择新内核引导即可。具体还没测试过,嫌内核编译慢又不怕重启的可以试试看,成功了麻烦告诉我一声哦。给出Centos3.4的内核下载地址:
http://mirror.centos.org/centos-3/3.4/os/i386/RedHat/RPMS/
   发表时间:2008-10-09  
[url][/url][flash=200,200][/flash][img][/img]
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics