分少题难,不好意思,挣分后再加分:请教:2.4.20内核,重接同一个U盘,第2次时肯定读不出来

韦东山
企业官方账号
2009-09-24 12:05:37
用到的驱动有:usbcore.o, usb-uhci.o, usb-storage.o

实验如下:
1. 先加载这3个驱动,然后接上U盘,执行“dd if=/devfs/scsi/host0/bus0/target0/lun0/disc of=mbr.bin bs=512 count=1”可以正确读出数据;
2. 拨下U盘,重接上,执行“dd if=/devfs/scsi/host0/bus0/target0/lun0/disc of=err.bin bs=512 count=1”出错,再执行一次这个命令成功;
3. 拨下U盘、重接上,这时执行“dd if=/devfs/scsi/host0/bus0/target0/lun0/disc of=err.bin bs=512 count=1”的话肯定出错。现在先不执行这个命令,而是rmmod usb-storage.o再insmod usb-storage.o后,执行上面的dd命令就会成功。

出错信息如下:
/ # dd if=/devfs/scsi/host0/bus0/target0/lun0/disc of=err.bin bs=512 count=1
usb-uhci.c: interrupt, status 2, frame# 911
I/O error: dev 08:00, sector 0
dd: /devfs/scsi/host0/bus0/target0/lun0/disc: Input/output error

看dmesg信息的话,出错信息如下:
……
usb-storage: Bulk status result = 0
transport.c usb_stor_Bulk_transport line 1243
usb-storage: Bulk status Sig 0x53425355 T 0xc R 0 Stat 0x0
transport.c usb_stor_Bulk_transport line 1252
usb-storage: -- Result from auto-sense is 0
transport.c usb_stor_invoke_transport line 780
usb-storage: -- code: 0xf0, key: 0x6, ASC: 0x28, ASCQ: 0x0
transport.c usb_stor_invoke_transport line 785
usb-storage: Unit Attention: not ready to ready transition
debug.c usb_stor_show_sense line 371
usb-storage: scsi cmd done, result=0x2
usb.c usb_stor_control_thread line 460
usb-storage: *** thread sleeping.
I/O error: dev 08:00, sector 0
usb.c usb_stor_control_thread line 349
dd: /devfs/scsi/host0/bus0/target0/lun0/disc: Input/output error
……

上面的信息有一条“Unit Attention: not ready to ready transition”,不知有没有用处。

请问,有没有人碰到过类似的问题?
我先是怀疑USB驱动的问题,但是把2.4.37.6的整个dirvers/usb目录复制到2.4.20去,结果仍一样;
现在感觉是SCSI层的问题。

...全文
77 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondma 2009-09-24
  • 打赏
  • 举报
回复
第一次行第二次不行,还是看看资源翻译那块的东西吧。
韦东山 2009-09-24
  • 打赏
  • 举报
回复
第二次接上后,第一个dd命令有io error,但是再执行一次dd命令就正确。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧