LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2258|回复: 11

为什么udev无法识别出USB盘?请大家帮我看看

[复制链接]
发表于 2006-12-18 23:36:53 | 显示全部楼层 |阅读模式
系统装了udev、hotplug、hal、ivman、pmount、dbus,插入USB盘后无法识别出块设备/dev/sd*,以root用户登录也不行,lsusb可以看到系统已识别出此USB设备了,dmesg的结果如下:

usb 1-1: new full speed USB device using uhci_hcd and address 7
usb 1-1: configuration #1 chosen from 1 choice
scsi6 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 7
usb-storage: waiting for device to settle before scanning
usb 1-1: reset full speed USB device using uhci_hcd and address 7
usb 1-1: reset full speed USB device using uhci_hcd and address 7
usb 1-1: reset full speed USB device using uhci_hcd and address 7
usb 1-1: reset full speed USB device using uhci_hcd and address 7
usb-storage: device scan complete

以前的时候可以自动挂载USB盘的,可能是升级了某个软件的版本,导致udev无法识别出块设备/dev/sd*,不知各位老大以前有没有碰到过类似的情况?
发表于 2006-12-19 13:00:41 | 显示全部楼层
我也有类似的问题,dmesg里明明看到识别出了我的u盘,但/dev里跟u盘有关的东西都没有
回复 支持 反对

使用道具 举报

发表于 2006-12-19 21:42:50 | 显示全部楼层
不知道
#dmesg |grep usb

usbcore: registered new driver usbfs
usbcore: registered new driver hub
usb usb1: configuration #1 chosen from 1 choice
usb usb2: configuration #1 chosen from 1 choice
usb usb3: configuration #1 chosen from 1 choice
usb usb4: configuration #1 chosen from 1 choice
usb usb5: configuration #1 chosen from 1 choice
usb 2-2: new low speed USB device using uhci_hcd and address 2
usb 2-2: configuration #1 chosen from 1 choice
usbcore: registered new driver usb-storage
input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:10.0-2
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
回复 支持 反对

使用道具 举报

发表于 2006-12-19 22:32:38 | 显示全部楼层
查查 kernel 里面有没有把SCSI device support 加进去,因为usb 驱动用了scsi 的驱动,
sdx 的名字就是这么来的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-20 00:36:02 | 显示全部楼层
谢谢楼上的几位热心兄弟,kernel 里面有把SCSI device support 加进去,因为我的硬盘本身就是SCSI硬盘,以前没问题的时候是把USB盘识别为/dev/sdb的,/dev/sda是我的本机硬盘设备。

我现在怀疑是udev的rules是否有问题,哪位兄弟把udev的rules里的sd*那部分规则共享一下?谢谢了。
回复 支持 反对

使用道具 举报

发表于 2006-12-20 09:24:41 | 显示全部楼层
  1. # /etc/udev/rules/50-udev.rules:  device naming rules for udev
  2. #
  3. # Gentoo specific rules
  4. #
  5. # There are a number of modifiers that are allowed to be used in some of the
  6. # fields.  See the udev man page for a full description of them.
  7. #
  8. # Try not to modify this file, if you wish to change things, create a new rule
  9. # file that can be run before this one.
  10. #
  11. # console
  12. KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty",    OPTIONS="last_rule"
  13. KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty",    OPTIONS="last_rule"
  14. KERNEL=="vcs*",                 NAME="%k", GROUP="tty",                 OPTIONS="last_rule"
  15. KERNEL=="vcsa*",                NAME="%k", GROUP="tty",                 OPTIONS="last_rule"
  16. KERNEL=="tty",                  NAME="%k", GROUP="tty", MODE="0666",    OPTIONS="last_rule"
  17. KERNEL=="tty[0-9]",             NAME="%k", GROUP="tty",                 OPTIONS="last_rule"
  18. KERNEL=="tty[0-9][0-9]",        NAME="%k", GROUP="tty",                 OPTIONS="last_rule"
  19. KERNEL=="console",              NAME="%k", GROUP="tty", MODE="0600"
  20. KERNEL=="ptmx",                 NAME="%k", GROUP="tty", MODE="0666"
  21. # tty devices
  22. KERNEL=="ttyS[0-9]*",   NAME="%k", SYMLINK="tts/%n", GROUP="tty"
  23. KERNEL=="ttyUSB[0-9]*", NAME="%k", SYMLINK="tts/USB%n", GROUP="tty", MODE="0660"
  24. KERNEL=="ippp0",        NAME="%k", GROUP="tty"
  25. KERNEL=="isdn*"         NAME="%k", GROUP="tty"
  26. KERNEL=="dcbri*",       NAME="%k", GROUP="tty"
  27. KERNEL=="ircomm*",      NAME="%k", GROUP="tty"
  28. # all block devices
  29. SUBSYSTEM=="block", GROUP="disk"
  30. # cdrom symlinks and other good cdrom naming
  31. BUS=="ide",     KERNEL=="hd[a-z]", ACTION=="add", IMPORT="cdrom_id --export $tempnode"
  32. BUS=="scsi",    KERNEL=="sr[0-9]*", ACTION=="add", IMPORT="cdrom_id --export $tempnode"
  33. BUS=="scsi",    KERNEL=="scd[a-z]", ACTION=="add", IMPORT="cdrom_id --export $tempnode"
  34. BUS=="scsi",    KERNEL=="sg[0-9]*", ACTION=="add", DRIVERS=="sr", GROUP="cdrom"
  35. ENV{ID_CDROM}=="?*",            PROGRAM="seq_node.sh %r %k cdrom", SYMLINK+="%c", GROUP="cdrom"
  36. ENV{ID_CDROM_CD_RW}=="?*",      PROGRAM="seq_node.sh %r %k cdrw",  SYMLINK+="%c"
  37. ENV{ID_CDROM_DVD}=="?*",        PROGRAM="seq_node.sh %r %k dvd",   SYMLINK+="%c"
  38. ENV{ID_CDROM_DVD_R}=="?*",      PROGRAM="seq_node.sh %r %k dvdrw", SYMLINK+="%c"
  39. # disk devices
  40. KERNEL=="sd*",          NAME="%k", GROUP="disk"
  41. KERNEL=="dasd*",        NAME="%k", GROUP="disk"
  42. KERNEL=="ataraid*",     NAME="%k", GROUP="disk"
  43. # compaq smart array
  44. KERNEL=="cciss*",       NAME="%k"
  45. KERNEL=="ida*",         NAME="%k"
  46. # mylex
  47. KERNEL=="rd*",          NAME="%k"
  48. # dri devices
  49. KERNEL=="card*",        NAME="dri/card%n", GROUP="video"
  50. KERNEL=="nvidia*",      NAME="%k", GROUP="video"
  51. KERNEL=="3dfx*",        NAME="%k", GROUP="video"
  52. # alsa devices
  53. SUBSYSTEM=="sound", GROUP="audio"
  54. KERNEL=="controlC[0-9]*",       NAME="snd/%k"
  55. KERNEL=="hw[CD0-9]*",           NAME="snd/%k"
  56. KERNEL=="pcm[CD0-9cp]*",        NAME="snd/%k"
  57. KERNEL=="midiC[D0-9]*",         NAME="snd/%k"
  58. KERNEL=="timer",                NAME="snd/%k"
  59. KERNEL=="seq",                  NAME="snd/%k"
  60. # capi devices
  61. KERNEL=="capi",         NAME="capi20", SYMLINK+="isdn/capi20", GROUP="dialout"
  62. KERNEL=="capi*",        NAME="capi/%n", GROUP="dialout"
  63. # cpu devices
  64. KERNEL=="cpu[0-9]*",    NAME="cpu/%n/cpuid"
  65. KERNEL=="msr[0-9]*",    NAME="cpu/%n/msr"
  66. KERNEL=="microcode",    NAME="cpu/microcode"
  67. # dm devices (ignore them)
  68. KERNEL=="dm-[0-9]*",    OPTIONS="ignore_device"
  69. # create a symlink named after the device map name
  70. # note devmap_name comes with extras/multipath
  71. #KERNEL=="dm-[0-9]*",   PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK+="%c"
  72. KERNEL=="device-mapper",        NAME="mapper/control"
  73. # fb devices
  74. KERNEL=="fb[0-9]*",     NAME="fb/%n", SYMLINK+="%k", GROUP="video"
  75. # floppy devices
  76. KERNEL=="fd[0-9]*",     NAME="floppy/%n", SYMLINK+="%k", GROUP="floppy"
  77. # i2c devices
  78. KERNEL=="i2c-[0-9]*",   NAME="i2c/%n", SYMLINK+="%k"
  79. # input devices
  80. KERNEL=="mice",         NAME="input/%k", MODE="0644"
  81. KERNEL=="mouse*",       NAME="input/%k", MODE="0644"
  82. KERNEL=="event*",       NAME="input/%k", MODE="0600"
  83. KERNEL=="js*",          NAME="input/%k", MODE="664"
  84. KERNEL=="ts*",          NAME="input/%k", MODE="0600"
  85. # loop devices
  86. KERNEL=="loop[0-9]*",   NAME="loop/%n", SYMLINK+="%k", GROUP="disk"
  87. # md block devices
  88. KERNEL=="md[0-9]*",     NAME="md/%n", SYMLINK+="%k", GROUP="disk"
  89. # aoe char devices,
  90. SUBSYSTEM=="aoe", KERNEL=="discover",   NAME="etherd/%k", GROUP="disk", MODE="0220"
  91. SUBSYSTEM=="aoe", KERNEL=="err",        NAME="etherd/%k", GROUP="disk", MODE="0440"
  92. SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
  93. # misc devices
  94. KERNEL=="agpgart",      NAME="misc/%k", SYMLINK+="%k"
  95. KERNEL=="psaux",        NAME="misc/%k", SYMLINK+="%k"
  96. KERNEL=="rtc",          NAME="misc/%k", SYMLINK+="%k", MODE="0664"
  97. KERNEL=="uinput",       NAME="misc/%k", SYMLINK+="%k"
  98. KERNEL=="inotify",      NAME="misc/%k", SYMLINK+="%k", MODE="0666"
  99. # netlink devices
  100. KERNEL=="route",        NAME="netlink/%k"
  101. KERNEL=="skip",         NAME="netlink/%k"
  102. KERNEL=="usersock",     NAME="netlink/%k"
  103. KERNEL=="fwmonitor",    NAME="netlink/%k"
  104. KERNEL=="tcpdiag",      NAME="netlink/%k"
  105. KERNEL=="nflog",        NAME="netlink/%k"
  106. KERNEL=="xfrm",         NAME="netlink/%k"
  107. KERNEL=="arpd",         NAME="netlink/%k"
  108. KERNEL=="route6",       NAME="netlink/%k"
  109. KERNEL=="ip6_fw",       NAME="netlink/%k"
  110. KERNEL=="dnrtmsg",      NAME="netlink/%k"
  111. KERNEL=="tap*",         NAME="netlink/%k"
  112. # network devices
  113. KERNEL=="tun",          NAME="net/%k",  MODE="0600"
  114. # ramdisk devices
  115. KERNEL=="ram[0-9]*",    NAME="rd/%n", SYMLINK+="%k"
  116. # IEEE1394 (firewire) devices (must be before raw devices below)
  117. KERNEL=="raw1394",      NAME="%k",              GROUP="video"
  118. KERNEL=="dv1394*",      NAME="dv1394/%n",       GROUP="video"
  119. KERNEL=="video1394*",   NAME="video1394/%n",    GROUP="video"
  120. # raw devices
  121. KERNEL=="raw[0-9]*",    NAME="raw/%k", GROUP="disk"
  122. KERNEL=="ram*",         NAME="%k", GROUP="disk"
  123. # sound devices
  124. KERNEL=="adsp",                 NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  125. KERNEL=="adsp[0-9]*",           NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  126. KERNEL=="audio",                NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  127. KERNEL=="audio[0-9]*",          NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  128. KERNEL=="dsp",                  NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  129. KERNEL=="dsp[0-9]*",            NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  130. KERNEL=="mixer",                NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  131. KERNEL=="mixer[0-9]*",          NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  132. KERNEL=="sequencer",            NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  133. KERNEL=="sequencer[0-9]*",      NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
  134. # memory devices
  135. KERNEL=="random",       NAME="%k", MODE="0666"
  136. KERNEL=="urandom",      NAME="%k", MODE="0444"
  137. KERNEL=="mem",          NAME="%k", MODE="0640"
  138. KERNEL=="kmem",         NAME="%k", MODE="0640"
  139. KERNEL=="port",         NAME="%k", MODE="0640"
  140. KERNEL=="full",         NAME="%k", MODE="0666"
  141. KERNEL=="null",         NAME="%k", MODE="0666"
  142. KERNEL=="zero",         NAME="%k", MODE="0666"
  143. # usb devices
  144. KERNEL=="hiddev*",              NAME="usb/%k"
  145. KERNEL=="auer*",                NAME="usb/%k"
  146. KERNEL=="legousbtower*",        NAME="usb/%k", GROUP="usb"
  147. KERNEL=="dabusb*",              NAME="usb/%k"
  148. BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp"
  149. # v4l devices
  150. KERNEL=="video[0-9]*",  NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video"
  151. KERNEL=="radio[0-9]*",  NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
  152. KERNEL=="vbi[0-9]*",    NAME="v4l/vbi%n", SYMLINK+="vbi%n", GROUP="video"
  153. KERNEL=="vtx[0-9]*",    NAME="v4l/vtx%n", GROUP="video"
  154. # dvb devices
  155. SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
  156. # Asterisk Zaptel devices
  157. KERNEL=="zapctl",       NAME="zap/ctl"
  158. KERNEL=="zaptimer",     NAME="zap/timer"
  159. KERNEL=="zapchannel",   NAME="zap/channel"
  160. KERNEL=="zappseudo",    NAME="zap/pseudo"
  161. KERNEL=="zap[0-9]*",    NAME="zap/%n"
  162. # pilot/palm devices
  163. KERNEL=="pilot",        NAME="%k", GROUP="uucp"
  164. # jaz devices
  165. KERNEL=="jaz*",         NAME="%k", GROUP="disk"
  166. # zip devices
  167. KERNEL=="pocketzip*",   NAME="%k", GROUP="disk"
  168. KERNEL=="zip*",         NAME="%k", GROUP="disk"
  169. # ls120 devices
  170. KERNEL=="ls120",        NAME="%k", GROUP="disk"
  171. # lp devices
  172. KERNEL=="lp*",          NAME="%k", GROUP="lp"
  173. KERNEL=="irlpt",        NAME="%k", GROUP="lp"
  174. KERNEL=="usblp",        NAME="%k", GROUP="lp"
  175. KERNEL=="lp*",          NAME="%k", GROUP="lp"
  176. KERNEL=="parport*",     NAME="%k", GROUP="lp"
  177. # tape devices
  178. KERNEL=="ht*",          NAME="%k", GROUP="tape"
  179. KERNEL=="nht*",         NAME="%k", GROUP="tape"
  180. KERNEL=="pt*",          NAME="%k", GROUP="tape"
  181. KERNEL=="npt*",         NAME="%k", GROUP="tape"
  182. KERNEL=="st*",          NAME="%k", GROUP="tape"
  183. KERNEL=="nst*",         NAME="%k", GROUP="tape"
  184. KERNEL=="osst*",        NAME="%k", GROUP="tape"
  185. KERNEL=="nosst*",       NAME="%k", GROUP="tape"
  186. # diskonkey devices
  187. KERNEL=="diskonkey*",   NAME="%k", GROUP="disk"
  188. # rem_ide devices
  189. KERNEL=="microdrive*",  NAME="%k", GROUP="disk"
  190. # kbd devices
  191. KERNEL=="kbd",          NAME="%k", MODE="0664"
  192. # Sony Vaio Jogdial sonypi device
  193. KERNEL=="sonypi",       NAME="%k", MODE="0666"
  194. # packet devices
  195. KERNEL=="pktcdvd",              NAME="pktcdvd/control", GROUP="cdrw", MODE="0660"
  196. KERNEL=="pktcdvd[0-9]*",        NAME="pktcdvd/pktcdvd%n", GROUP="cdrw", MODE="0660"
  197. # infiniband devices
  198. KERNEL=="umad*",        NAME="infiniband/%k"
  199. KERNEL=="issm*",        NAME="infiniband/%k"
  200. # usbfs-like device nodes
  201. SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"
  202. # Module autoloading
  203. # Autoload modules that lack aliases but have them defined inutoload modules
  204. SYSFS{modalias}=="?*", ACTION=="add", RUN+="/sbin/modprobe $env{MODALIAS}"
  205. # /etc/modprobe.conf.
  206. SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /sbin/modprobe pnp:d$$id; done < /sys$devpath/id'"
  207. # If you have problems with some pnp modules being loaded, please enter the
  208. # following aliases into the modprobe configuration files.  These are needed by
  209. # udev to autoload some modules
  210. # alias pnp:dPNP0510 irtty-sir
  211. # alias pnp:dPNP0511 irtty-sir
  212. # alias pnp:dPNP0700 floppy
  213. # alias pnp:dPNP0800 pcspkr
  214. # alias pnp:dPNP0b00 rtc
  215. # alias pnp:dPNP0303 atkbd
  216. # alias pnp:dPNP0f13 psmouse
  217. # alias pnp:dPNPb02f analog
  218. # Load firmware
  219. SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
  220. # be backward compatible for a while with the /etc/dev.d and /etc/hotplug.d/ systems
  221. # run /etc/hotplug.d/ stuff only if we came from a hotplug event, not for udevstart
  222. ENV{UDEVD_EVENT}=="1", RUN+="udev_run_hotplugd $env{SUBSYSTEM}"
  223. # always run /etc/dev.d/ stuff for now.
  224. RUN+="udev_run_devd $env{SUBSYSTEM}"
  225. # debugging monitor
  226. RUN+="socket:/org/kernel/udev/monitor"
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-20 13:51:49 | 显示全部楼层
谢谢楼上的兄弟,对照了一下,规则没错。继续求助......
回复 支持 反对

使用道具 举报

发表于 2006-12-22 19:42:38 | 显示全部楼层
既然自动的来不了,那手动看看:

modprobe usbcore
modprobe ohci-hcd
modprobe ehci-hcd
modprobe uhci-hcd
modprobe usb-storage

mknod /dev/sdb b 8 16
mknod /dev/sdb1 b 8 17

看看可以mount了么。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-23 00:19:48 | 显示全部楼层
谢谢楼上的,我把usb的支持编译进内核了,然后mknod还是不行。

我怀疑是不能识别usb设备,曾试过修改unusual_dev.h,然后重新编译usb-storage,插入U盘后可以生成/dev/sdb,但不能生成/dev/sdb1,中间出了点错误提示。

后来又试着用gentoo install cd启动,启动后插入U盘可以mount,它把U盘识别产家是Multi,Model是Flash Reader,和lsusb后的结果并不一致,但是可以mount后访问U盘,可能是install CD能把U盘识别能通用的USB Mass Storage device,而我现在的系统无法识别为通用的U盘(以前曾经可以识别过)。

比较install cd与我现有的系统,install cd的kernel是旧的,USB Universal Host Controler Interface driver也是旧的,还有udev等其它相关的软件都是旧的,因此,我觉得是系统中某个或多个软件版本过新导致现在的情况。我现在的系统执行过emerge  -uDNv world后所有的软件都是最新的版本。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-23 00:21:24 | 显示全部楼层
现在只能等新的软件版本出来后,说不定哪天又可以了。
以前老是隔几天就emerge -uDNv world,现在发现也不能一味的追新,稳定才是最紧要的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表