[不妙] 無意間買到不被支援的SD讀卡機

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

文章訪客 » 週三 1月 09, 2008 9:59 pm

tinyding前輩您好
我發現這支隨身碟在usb、disk、scsi都會出現
使用hwinfo加--disk或--scsi為參數的結果如下:

hwinfo --disk內容如下:

21: SCSI 00.0: 10600 Disk
[Created at block.222]
UDI: /org/freedesktop/Hal/devices/storage_serial_USB_2_0_SD_MMC_Reader____________0_0
Unique ID: jxEh.RC7PH0adNE7
Parent ID: 5YuN.IvM+kRJt5aD
SysFS ID: /block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "USB 2.0 SD/MMC Reader"
Vendor: usb 0x14cd "USB 2.0"
Device: usb 0x6700 "SD/MMC Reader"
Serial ID: "??????????"
Driver: "usb-storage", "sd"
Driver Modules: "usb_storage"
Device File: /dev/sda (/dev/sg0)
Device Files: /dev/sda, /dev/disk/by-id/usb-USB_2.0_SD.MMC_Reader___________-0:0, /dev/disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0
Device Number: block 8:0-8:15 (char 21:0)
Features: Hotpluggable
Geometry (Logical): CHS 985/32/63
Size: 1987584 sectors a 512 bytes
Speed: 480 Mbps
Module Alias: "usb:v14CDp6700d0201dc00dsc00dp00ic08isc06ip50"
Driver Info #0:
Driver Status: usb_storage is active
Driver Activation Cmd: "modprobe usb_storage"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #9 (USB Controller)




hwinfo --scsi內容如下:

20: SCSI 00.0: 10600 Disk
[Created at block.222]
UDI: /org/freedesktop/Hal/devices/storage_serial_USB_2_0_SD_MMC_Reader____________0_0
Unique ID: jxEh.RC7PH0adNE7
Parent ID: 5YuN.IvM+kRJt5aD
SysFS ID: /block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "USB 2.0 SD/MMC Reader"
Vendor: usb 0x14cd "USB 2.0"
Device: usb 0x6700 "SD/MMC Reader"
Serial ID: "??????????"
Driver: "usb-storage", "sd"
Driver Modules: "usb_storage"
Device File: /dev/sda (/dev/sg0)
Device Files: /dev/sda, /dev/disk/by-id/usb-USB_2.0_SD.MMC_Reader___________-0:0, /dev/disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0
Device Number: block 8:0-8:15 (char 21:0)
Features: Hotpluggable
Geometry (Logical): CHS 985/32/63
Size: 1987584 sectors a 512 bytes
Speed: 480 Mbps
Module Alias: "usb:v14CDp6700d0201dc00dsc00dp00ic08isc06ip50"
Driver Info #0:
Driver Status: usb_storage is active
Driver Activation Cmd: "modprobe usb_storage"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #8 (USB Controller)

謝謝您
訪客
 

文章tinyding » 週四 1月 10, 2008 12:56 pm

Anonymous 寫:tinyding前輩您好
我發現這支隨身碟在usb、disk、scsi都會出現
使用hwinfo加--disk或--scsi為參數的結果如下:

hwinfo --disk內容如下:
代碼: 選擇全部
21: SCSI 00.0: 10600 Disk
  [Created at block.222]
  UDI: /org/freedesktop/Hal/devices/storage_serial_USB_2_0_SD_MMC_Reader____________0_0
  Unique ID: jxEh.RC7PH0adNE7
  Parent ID: 5YuN.IvM+kRJt5aD
  SysFS ID: /block/sda
  SysFS BusID: 0:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host0/target0:0:0/0:0:0:0
  Hardware Class: disk
  Model: "USB 2.0 SD/MMC Reader"
  Vendor: usb 0x14cd "USB 2.0"
  Device: usb 0x6700 "SD/MMC Reader"
...

hwinfo --scsi內容如下:

20: SCSI 00.0: 10600 Disk
  [Created at block.222]
  UDI: /org/freedesktop/Hal/devices/storage_serial_USB_2_0_SD_MMC_Reader____________0_0
  Unique ID: jxEh.RC7PH0adNE7
  Parent ID: 5YuN.IvM+kRJt5aD
  SysFS ID: /block/sda
  SysFS BusID: 0:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host0/target0:0:0/0:0:0:0
  Hardware Class: disk
  Model: "USB 2.0 SD/MMC Reader"
  Vendor: usb 0x14cd "USB 2.0"
  Device: usb 0x6700 "SD/MMC Reader"
...


謝謝您


由於這些看起來都跟 udev 有關,所以,我也去找久沒有用的讀卡機以及 CompactFlash Card 來實驗一下... :-)
在 Ubuntu 7.10 Live CD,執行 lsusb.
代碼: 選擇全部
Bus 005 Device 002: ID 04cf:9920 Myson Century, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

在 Ubuntu 7.10 Live CD,執行 lshw.
代碼: 選擇全部
...
     *-scsi
          physical id: 1
          bus info: usb@5:2
          logical name: scsi5
          capabilities: emulated scsi-host
          configuration: driver=usb-storage
        *-disk:0
             description: SCSI Disk
             product: CS8819A2-110  0
             vendor: Myson
             physical id: 0.0.0
             bus info: scsi@5:0.0.0
             logical name: /dev/sda
             version: 1.01
             capabilities: removable
           *-disc
                physical id: 0
                logical name: /dev/sda
        *-disk:1
             description: SCSI Disk
             product: CS8819A2-110  1
             vendor: Myson
             physical id: 0.0.1
             bus info: scsi@5:0.0.1
             logical name: /dev/sdb
             version: 1.01
             size: 488MB
             capabilities: removable
           *-disc
                physical id: 0
                logical name: /dev/sdb
                size: 488MB
                capabilities: partitioned partitioned:dos
              *-volume
                   description: FAT16 partition
                   physical id: 1
                   logical name: /dev/sdb1
                   capacity: 488MB
                   capabilities: primary bootable
        *-disk:2
             description: SCSI Disk
             product: CS8819A2-110  2
             vendor: Myson
             physical id: 0.0.2
             bus info: scsi@5:0.0.2
             logical name: /dev/sdc
             version: 1.01
             capabilities: removable
           *-disc
                physical id: 0
                logical name: /dev/sdc
        *-disk:3
             description: SCSI Disk
             product: CS8819A2-110  3
             vendor: Myson
             physical id: 0.0.3
             bus info: scsi@5:0.0.3
             logical name: /dev/sdd
             version: 1.01
             capabilities: removable
           *-disc
                physical id: 0
                logical name: /dev/sdd

也同樣是屬於 "*-scsi" ...
由於在 Ubuntu 7.10 Live CD 中,沒有 hwinfo 命令可供執行,所以,就沒有再測試下去了.

回到 Debian 的環境下 ...
debian:/dev/shm# lsusb
代碼: 選擇全部
Bus 005 Device 002: ID 04cf:9920 Myson Century, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

debian:/dev/shm# lshw
代碼: 選擇全部
...
                 *-disk:1
                      description: SCSI Disk
                      product: CS8819A2-110  1
                      vendor: Myson
                      physical id: 0.0.1
                      bus info: scsi@5:0.0.1
                      logical name: /dev/sdb
                      version: 1.01
                      size: 488MiB (512MB)
                      capabilities: removable
                    *-medium
                         physical id: 0
                         logical name: /dev/sdb
                         size: 488MiB (512MB)
                         capabilities: partitioned partitioned:dos
                       *-volume
                            description: Windows FAT volume
                            vendor: MSDOS5.0
                            physical id: 1
                            logical name: /dev/sdb1
                            logical name: /media/disk
                            version: FAT16
                            serial: b88f-20b5
                            size: 488MiB
                            capacity: 488MiB
                            capabilities: primary bootable fat initialized
                            configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,nosuid,nodev,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 state=mounted

然後,又看了幾篇 udev 的文章,也想來測試一下"當讀卡機 Plug in 時..."
debian:/dev/shm# udevinfo --query=all -a --path=/sys/block/sdb/
代碼: 選擇全部
...
  looking at device '/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{capability}=="13"
    ATTR{stat}=="     330      223      784      228        0        0        0        0        0      212      228"
    ATTR{size}=="1000944"
    ATTR{removable}=="1"
    ATTR{range}=="16"
    ATTR{dev}=="8:16"

  looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-1/5-1:1.0/host5/target5:0:0/5:0:0:1':
    KERNELS=="5:0:0:1"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{modalias}=="scsi:t-0x00"
    ATTRS{ioerr_cnt}=="0x0"
    ATTRS{iodone_cnt}=="0x272"
    ATTRS{iorequest_cnt}=="0x272"
    ATTRS{iocounterbits}=="32"
    ATTRS{timeout}=="30"
    ATTRS{state}=="running"
    ATTRS{rev}=="1.01"
    ATTRS{model}=="CS8819A2-110  1 "
    ATTRS{vendor}=="Myson   "
    ATTRS{scsi_level}=="0"
    ATTRS{type}=="0"
    ATTRS{queue_type}=="none"
    ATTRS{queue_depth}=="1"
    ATTRS{device_blocked}=="0"
    ATTRS{max_sectors}=="240"

...

然後參考這篇文章 http://www.reactivated.net/writing_udev_rules.html 並根據由上述執行 "udevinfo --query=all -a --path=/sys/block/sdb/" 命令後所得的結果,我也寫了一個 udev rule ... :-)
debian:/etc/udev# pwd
/etc/udev

debian:/etc/udev# ls -la myself_cf_card_reader.rules
-rw-r--r-- 1 root root 128 2008-01-10 09:34 myself_cf_card_reader.rules

debian:/etc/udev# cat myself_cf_card_reader.rules
KERNEL=="sd*", SUBSYSTEMS=="scsi", ATTRS{model}=="CS8819A2-110 1 ", SYMLINK+="my_cf_card_reader%n", OPTIONS+="all_partitions"


debian:/etc/udev/rules.d# pwd
/etc/udev/rules.d

debian:/etc/udev/rules.d# ls -la z99_my*
lrwxrwxrwx 1 root root 30 2008-01-10 09:37 z99_myself_cf_reader.rules -> ../myself_cf_card_reader.rules


然後執行 udevtrigger,讓 rules 生效...
debian:/dev/shm# udevtrigger


將讀卡機拔出後再重新插入 USB 槽,然後我看到 /dev 目錄的變化...
debian:/dev# pwd
/dev

debian:/dev# ls -la my*
lrwxrwxrwx 1 root root 33 2008-01-10 09:40 my_cf_card_reader -> scsi/host6/bus0/target0/lun1/disc
lrwxrwxrwx 1 root root 34 2008-01-10 09:40 my_cf_card_reader1 -> scsi/host6/bus0/target0/lun1/part1

而 hwinfo --disk 也會記錄到這個 my_cf_card_reader ...
代碼: 選擇全部
...
30: SCSI 600.1: 10600 Disk
  [Created at block.222]
  UDI: /org/freedesktop/Hal/devices/storage_serial_Myson_CS8819A2_110_1_100_0_1
  Unique ID: R0Fb.fEb7n9qmz4E
  Parent ID: WQQk.rHX5uN+34wE
  SysFS ID: /block/sdb
  SysFS BusID: 6:0:0:1
  SysFS Device Link: /devices/pci0000:00/0000:00:10.4/usb5/5-1/5-1:1.0/host6/target6:0:0/6:0:0:1
  Hardware Class: disk
  Model: "Myson CS8819A2-110  1"
  Vendor: usb 0x04cf "Myson"
  Device: usb 0x9920 "CS8819A2-110  1"
  Revision: "1.01"
  Driver: "usb-storage", "sd"
  Driver Modules: "usb_storage"
  Device File: /dev/sdb (/dev/sg1)
  Device Files: /dev/sdb, /dev/scsi/host6/bus0/target0/lun1/disc, /dev/discs/disc3/disc, /dev/disk/by-id/usb-Myson_CS8819A2-110_1_100-0:1, /dev/disk/by-path/pci-0000:00:10.4-usb-0:1:1.0-scsi-0:0:0:1, /dev/my_cf_card_reader
  Device Number: block 8:16-8:31 (char 21:1)
  Features: Hotpluggable
  Geometry (Logical): CHS 993/16/63
  Size: 1000944 sectors a 512 bytes
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #18 (USB Controller)
...

不過,由於你的 Debian 系統不能正確辨識出你那台讀卡機,所以,寫個 udev rules 的方式,可能也不能發揮什麼效用? 這時,你可能要參考一下底下那篇參考文章中的 "Using external programs to name devices" 與 "Running external programs upon certain events" 節中所使用的 "PROGRAM=" 或者 "RUN+=",去指定執行一個 ShellScript or hwinfo,以便辨識出你那台讀卡機,並在執行後看需不需要 delay 個幾秒? 然後返回原先的 udev rules 中去繼續完成未完成的步驟... :-)
Good Luck!

參考文章:
Writing udev rules:
http://www.reactivated.net/writing_udev_rules.html
tinyding
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週日 11月 11, 2007 10:58 pm
來自: 台灣 屏東

文章訪客 » 週六 1月 12, 2008 3:29 pm

tinyding前輩您好
由於對udev的機制不熟,今天才挪出足夠時間把您介紹的資料它看個清楚
不過還是沒有看得很懂,我主要是參考文件範例和您寫的範例自己寫一個適用這支讀卡機的rule
如您所說,光設好rule並不能讓這支讀卡機被掛載,還是需要再插入一段執行hwinfo的動作才行

# Rules for My shit SD Card Reader
KERNEL=="sd*", ATTRS{manufacturer}=="SDMMC M121", RUN+="/usr/sbin/hwinfo --usb"

我設好上述內容取好以rules為結尾的檔名之後,放在/etc/udev/rules.d
重新讓udev作用,之後,我就能方便地使用它了,總算搞定!!!

謝謝您這段時間這麼有耐心地幫小弟,祝您新年快樂呀~ :-)
訪客
 

文章tinyding » 週六 1月 12, 2008 8:53 pm

Anonymous 寫:tinyding前輩您好
由於對udev的機制不熟,今天才挪出足夠時間把您介紹的資料它看個清楚
不過還是沒有看得很懂,我主要是參考文件範例和您寫的範例自己寫一個適用這支讀卡機的rule
如您所說,光設好rule並不能讓這支讀卡機被掛載,還是需要再插入一段執行hwinfo的動作才行

# Rules for My shit SD Card Reader
KERNEL=="sd*", ATTRS{manufacturer}=="SDMMC M121", RUN+="/usr/sbin/hwinfo --usb"

我設好上述內容取好以rules為結尾的檔名之後,放在/etc/udev/rules.d
重新讓udev作用,之後,我就能方便地使用它了,總算搞定!!!

謝謝您這段時間這麼有耐心地幫小弟,祝您新年快樂呀~ :-)


雖然,我還是不曉得 hwinfo 對你的讀卡機做了那些設定? 不過,還好你發現在執行過這道命令後,你的讀卡機就可以順利讀取 SD 卡,而所寫的 udev rules 只是更加方便的操作整個流程. :-)
恭喜你了! ^_^
tinyding
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週日 11月 11, 2007 10:58 pm
來自: 台灣 屏東

文章hyperslaver » 週日 1月 13, 2008 10:42 am

我以前又一塊移動硬盤,使用的硬盤盒讀取,結果在linux中識別的時候,也發生類似的信息,在windows下正常使用.因為當時沒有使用ubuntu,所以,也沒有測試別的系統.但是,後來我去中關村找我的兄弟把硬盤盒的晶片換了以後,在linux中可以正常讀取,所以,我希望以上的仁兄確認是不是sd卡的問題.thx
hyperslaver
可愛的小學生
可愛的小學生
 
文章: 3
註冊時間: 週日 1月 13, 2008 10:14 am

文章訪客 » 週日 1月 13, 2008 12:22 pm

我在同一台讀卡機換過不同的SD卡,同樣不能讀取(SD是正常的)
所以問題應該是出在Debian對該款讀卡機的辨識過程:-)
訪客
 

文章tinyding » 週一 1月 14, 2008 4:35 pm

hyperslaver 寫:我以前又一塊移動硬盤,使用的硬盤盒讀取,結果在linux中識別的時候,也發生類似的信息,在windows下正常使用.因為當時沒有使用ubuntu,所以,也沒有測試別的系統.但是,後來我去中關村找我的兄弟把硬盤盒的晶片換了以後,在linux中可以正常讀取,所以,我希望以上的仁兄確認是不是sd卡的問題.thx


最初在看原提問者所反應的問題現象中有
代碼: 選擇全部
...
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 0:0:0:0: Direct-Access     USB 2.0  SD/MMC Reader         PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: [sda] 1987584 512-byte hardware sectors (1018 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 1987584 512-byte hardware sectors (1018 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
sd 0:0:0:0: [sda] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK,SUGGEST_RETRY
end_request: I/O error, dev sda, sector 1987456
Buffer I/O error on device sda, logical block 248432
sd 0:0:0:0: [sda] Result: hostbyte=DID_ERROR
...

"I/O error..." 等錯誤訊息,我直覺反應是該 SD 卡出了問題,不過,隨著原提問者又發現該讀卡機以及該 SD 卡搭配在一起卻能在 Ubuntu 系統下正常使用,我也不得不懷疑我最初的判斷,因此,猜想會是參數設定不當? 或是驅動不良? ... 為了確定問題的方向,因此,得請原提問者配合著做一連串的測試... 而 hyperslaver 你在問題描述中提及 "...把硬盤盒的晶片換了以後...",我在想 "更換晶片" 應該不太容易吧? 況且現在你使用該設備也正常無誤,實在不用為了重現問題,而換回原晶片來做一連串的測試... 不知你以為如何? :-)
tinyding
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週日 11月 11, 2007 10:58 pm
來自: 台灣 屏東

文章hyperslaver » 週一 1月 14, 2008 11:12 pm

我觉得如果多测试几个系统应该会对确定是否问题处在系统中。比如fedora,centos,suse等。如果都OK,那么你就可以对你的Debian开刀了:-)
hyperslaver
可愛的小學生
可愛的小學生
 
文章: 3
註冊時間: 週日 1月 13, 2008 10:14 am

文章tinyding » 週三 1月 16, 2008 6:58 am

hyperslaver 寫:我觉得如果多测试几个系统应该会对确定是否问题处在系统中。比如fedora,centos,suse等。如果都OK,那么你就可以对你的Debian开刀了:-)

如果曉得問題是如何產生的,並且又能夠搜集到多方系統(Ubuntu、BSD、Solaris ...)下問題所呈現的狀態,想必對於修正問題以期望設備能支援更多的平台是有所幫助的. :-)
tinyding
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週日 11月 11, 2007 10:58 pm
來自: 台灣 屏東

文章訪客 » 週日 3月 23, 2008 10:56 pm

抱歉,無聊再回來補充一下
前一陣子新裝了一台Debian,
我發現在etch(stable)下,不作任何設定就能抓到這支讀卡機
一旦升級到lenny之後,就又出現先前所說的錯誤了
應該不是核心或模組的問題,因為我在核心沒有更換的狀況下仍是如此
不過,是哪個套件升級後才變成這樣,已經是不可考了 :-?
訪客
 

文章訪客 » 週四 4月 03, 2008 1:14 pm

找到元凶了!
把udev降級到stable的 udev_0.105-4_i386.deb
這樣就解決了!!!

搞了半天,原來是udev的問題.... :-?
訪客
 

上一頁

回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客