Strona 1 z 1

Czytnik kart pamięci i udev.

: 2007-10-25, 19:15
autor: y0yster
Witam,

Kupiłem sobie czytnik kart pamięci SD podłączany pod usb. Karta jest 1GB. W Windowsie wszystko mi elegancko wykrywa a w linuxie nie za bardzo.

Na samym początku miałem problem z samym wykryciem sprzętu. Podłączając czytnik pod jeden z portów usb oraz po wpisaniu polecenia lsusb, nie miałem nic wykrytego.

Po wykonaniu:

Kod: Zaznacz cały

modprobe -r usb-storage
modprobe -r uhci-hcd
modprobe -r usbcore
modprobe -r sd_mod
modprobe -r scsi_mod
modprobe fat
modprobe vfat
modprobe scsi_mod
modprobe sd_mod
modprobe usbcore
modprobe uhci-hcd
modprobe usb-storage

Przy niektórych poleceniach wywalało mi błąd, ale to już nie ważne. Czytnik został wykryty. Po restarcie już także komputer wykrywa urządzenie bez problemów. Swoją ciekawe dlaczego, przecież załadowałem moduły tylko raz Confused.

Teraz chciałbym aby udev mi jakoś to wykrył, ale on za bardzo nie chce tego uczynić.
Przy poleceniu udevmonitor dostaję takie coś:

Kod:

Kod: Zaznacz cały

udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent

UEVENT[1192963473.693378] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UEVENT[1192963473.693468] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11_ep00 (usb_endpoint)
UEVENT[1192963473.697324] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0 (usb)
UEVENT[1192963473.697367] add     /class/scsi_host/host8 (scsi_host)
UEVENT[1192963473.697382] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963473.697396] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963473.697411] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11 (usb_device)
UDEV  [1192963473.698515] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UDEV  [1192963473.709875] add     /class/scsi_host/host8 (scsi_host)
UDEV  [1192963473.715267] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11_ep00 (usb_endpoint)
UDEV  [1192963473.772187] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11 (usb_device)
UDEV  [1192963473.855348] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0 (usb)
UDEV  [1192963473.868001] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963473.873795] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963478.693196] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0 (scsi)
UEVENT[1192963478.693234] add     /class/scsi_disk/8:0:0:0 (scsi_disk)
UDEV  [1192963478.695962] add     /class/scsi_disk/8:0:0:0 (scsi_disk)
UEVENT[1192963479.224495] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.224540] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963479.224555] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.224570] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.225849] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.228821] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.235418] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.242272] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963479.476666] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.476707] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963479.476722] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.476737] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.478828] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.481822] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.489560] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.497954] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963479.972461] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.972504] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963479.972521] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963479.972536] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.974830] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.977098] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963479.984956] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963479.992376] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963480.572318] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963480.572360] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963480.572376] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963480.572391] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963480.573750] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963480.576871] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963480.583410] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UDEV  [1192963480.589600] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UEVENT[1192963481.343410] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963481.343444] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963481.346829] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep01 (usb_endpoint)
UEVENT[1192963481.348474] add     /block/sda (block)
UEVENT[1192963481.348505] add     /class/scsi_device/8:0:0:0 (scsi_device)
UEVENT[1192963481.348518] add     /class/scsi_generic/sg0 (scsi_generic)
UDEV  [1192963481.353871] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/usbdev1.11_ep82 (usb_endpoint)
UDEV  [1192963481.357035] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0 (scsi)
UEVENT[1192963481.378724] remove   /class/scsi_generic/sg0 (scsi_generic)
UEVENT[1192963481.378776] remove   /class/scsi_device/8:0:0:0 (scsi_device)
UEVENT[1192963481.378790] remove   /class/scsi_disk/8:0:0:0 (scsi_disk)
UEVENT[1192963481.378803] remove   /block/sda (block)
UEVENT[1192963481.378816] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0 (scsi)
UEVENT[1192963481.378829] remove   /class/scsi_host/host8 (scsi_host)
UEVENT[1192963481.378842] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0 (usb)
UEVENT[1192963481.378855] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11 (usb_device)
UEVENT[1192963481.378868] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11_ep00 (usb_endpoint)
UEVENT[1192963481.378881] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UDEV  [1192963481.480768] remove   /class/scsi_disk/8:0:0:0 (scsi_disk)
UDEV  [1192963481.482178] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0 (scsi)
UDEV  [1192963481.485878] remove   /class/scsi_host/host8 (scsi_host)
UDEV  [1192963481.568525] add     /block/sda (block)
UDEV  [1192963481.574792] add     /class/scsi_generic/sg0 (scsi_generic)
UDEV  [1192963481.578789] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11 (usb_device)
UDEV  [1192963481.585230] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.11_ep00 (usb_endpoint)
UDEV  [1192963481.587810] remove   /class/scsi_generic/sg0 (scsi_generic)
UDEV  [1192963481.590402] remove   /block/sda (block)
UDEV  [1192963481.592268] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/1-4:1.0 (usb)
UDEV  [1192963481.595745] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UDEV  [1192963481.683532] add     /class/scsi_device/8:0:0:0 (scsi_device)
UDEV  [1192963481.685843] remove   /class/scsi_device/8:0:0:0 (scsi_device)
UEVENT[1192963481.831053] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UEVENT[1192963481.831250] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12_ep00 (usb_endpoint)
UEVENT[1192963481.831266] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12 (usb_device)
UDEV  [1192963481.834739] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
UDEV  [1192963481.850531] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12_ep00 (usb_endpoint)
UDEV  [1192963481.874080] add     /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12 (usb_device)
A to po wyciągnięciu urządzenia:

Kod: Zaznacz cały

udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent

UDEV  [1192963622.580979] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12 (usb_device)
UDEV  [1192963622.581072] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4/usbdev1.12_ep00 (usb_endpoint)
UDEV  [1192963622.581094] remove   /devices/pci0000:00/0000:00:0c.2/usb1/1-4 (usb)
Z tego co się domyśliłem to wygląda na to, że udev szuka w sowich regułach do czego to ma wrzucić. I w konsekwencji do niczego tego nie zakwalifikował i w katalogu /dev nie mam, żadnego nowego pliku urządzenia.

Proszę o pomoc.

Re: Czytnik kart pamięci i udev.

: 2007-10-25, 20:26
autor: jacol
Witam.
Co mówi: /var/log/messages? Pozdrawiam jacol

Re: Czytnik kart pamięci i udev.

: 2007-10-25, 20:41
autor: darjerz
Przy niektórych poleceniach wywalało mi błąd, ale to już nie ważne. Hmm a może jednak jest ważne jakie to komunikaty?
pokaż wynik dmesg po podpięciu czytnika z kartą i wypięciu go. A i jaka wersja kernela? pokaż lsmod.
U nmie udevmonitor ładnie wypluwa po podpięciu samego czytnika bez kart:

Kod: Zaznacz cały

UEV[scroll]ENT[1193341563.808189] add      /devices/pci0000:00/0000:00:1d.7/usb5/5-8 (usb)
UEVENT[1193341563.808255] add      /class/usb_endpoint/usbdev5.4_ep00 (usb_endpoint)
UEVENT[1193341563.808596] add      /devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0 (usb)
UEVENT[1193341563.808677] add      /class/usb_endpoint/usbdev5.4_ep01 (usb_endpoint)
UEVENT[1193341563.808695] add      /class/usb_endpoint/usbdev5.4_ep82 (usb_endpoint)
UDEV  [1193341563.971130] add      /devices/pci0000:00/0000:00:1d.7/usb5/5-8 (usb)
UDEV  [1193341563.974701] add      /class/usb_endpoint/usbdev5.4_ep00 (usb_endpoint)
UEVENT[1193341564.096253] add      /module/ub (module)
UEVENT[1193341564.096842] add      /bus/usb/drivers/ub (drivers)
UDEV  [1193341564.098190] add      /module/ub (module)
UDEV  [1193341564.098923] add      /bus/usb/drivers/ub (drivers)
UEVENT[1193341564.288648] add      /block/uba (block)
UEVENT[1193341564.305886] add      /module/usb_storage (module)
UEVENT[1193341564.306598] add      /bus/usb/drivers/usb-storage (drivers)
UDEV  [1193341564.308278] add      /bus/usb/drivers/usb-storage (drivers)
UDEV  [1193341564.309609] add      /module/usb_storage (module)
UDEV  [1193341564.310922] add      /devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0 (usb)
UDEV  [1193341564.346709] add      /class/usb_endpoint/usbdev5.4_ep82 (usb_endpoint)
UDEV  [1193341564.347784] add      /class/usb_endpoint/usbdev5.4_ep01 (usb_endpoint)
UDEV  [1193341564.399908] add      /block/uba (block)
bash-3.1$
[/scroll]

Re: Czytnik kart pamięci i udev.

: 2007-10-30, 18:08
autor: y0yster
Odnośnie tych błędów to wyskakiwały podczas ładowania, niektórych modułów, ale to chyba nie problem, bo przypuszczam, że te rzeczy, kóre nie są w modułach zostały wkompilowane w jądro.

Ważna sprawa. Po przekompilowaniu jądra i dodaniu obsługi kart MMC/SD. Raz jedyny wykrył mi udev mój czytnik, byłem mile zaskoczony, ale już po kolejnym podpięciu nic nie poszlo :(. Próbowałem tego chyba ze 100 razy jak nie więcej.

Oto wynik dmesg po podłączeniu czytnika z kartą pamięci:

Kod: Zaznacz cały

scsi 10:0:0:0: Direct-Access     SD/MMC   Card  Reader     1.00 PQ: 0 ANSI: 0
usb 1-4: reset high speed USB device using ehci_hcd and address 17
usb 1-4: device firmware changed
usb 1-4: USB disconnect, address 17
sda : READ CAPACITY failed.
sda : status=0, message=00, host=7, driver=00 
sda : sense not available. 
sda: Write Protect is off
sda: Mode Sense: 00 00 00 00
sda: assuming drive cache: write through
sd 10:0:0:0: Attached scsi removable disk sda
sd 10:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
usb 1-4: new high speed USB device using ehci_hcd and address 18
usb 1-4: unable to read config index 0 descriptor/start
usb 1-4: chopping to 0 config(s)
usb 1-4: no configuration chosen from 0 choices

Re: Czytnik kart pamięci i udev.

: 2007-11-09, 19:45
autor: Pinki
Mam podobny problem z pendrivem. Pamiec jest wykrywna, udev ładuje moduły scsi_mod, sg oraz usb_strorage, ale nie ładuje modułu sd_mod, przez co musze to robic za kazdym razem recznie. Ma ktos jakis pomysł jak zmusic udeva do samodzielnego ładowania sd_mod?

P.S. Jestem własnie po upgradzie ze slacka 11 do 12. Przed upgradem udev sam ładował sd_mod.

Re: Czytnik kart pamięci i udev.

: 2007-11-09, 20:43
autor: Lizard
To chyba wszystko tłumaczy:

Kod: Zaznacz cały

$ grep sd_mod /etc/rc.d/rc.modules-2.6.21.5
#/sbin/modprobe sd_mod

Re: Czytnik kart pamięci i udev.

: 2007-11-09, 21:52
autor: Pinki
Lizard pisze:To chyba wszystko tłumaczy:

Kod: Zaznacz cały

$ grep sd_mod /etc/rc.d/rc.modules-2.6.21.5
#/sbin/modprobe sd_mod
To nie tłumaczy kompletnie nic. Ja nie chce, aby moduł ładował sie utomatycznie podczas ładowania systemu, tylko zeby był ładowany przez udev w momencie podłączenia pendrive'a, tak jak działo sie to przed uaktulnieniem systemu. Wyczytałem w internecie na czym polega problem, ale nie znalazłem rozwiazania. Otoz w jadrze slackware'a 12 obsługa dysków scsi jest wbudowana na stałe, przez co nie było potrzeby takiego ustalenia reguł udev'a, zeby ładowac moduł sd_mod. Oczywistym rozwiązaniem jest dodanie odpowiednich reguł gdzies do /etc/udev/rules.d. Sęk w tym ze nie wiem jak to zrobic. Prosiłbym kogos obeznanego na udevie o jakąs rade.

Re: Czytnik kart pamięci i udev.

: 2007-11-22, 15:36
autor: y0yster
Ja w swoim jądrze mam już wkompilowaną obsługę kat sd/mmc. Ale nie wiem dlaczego udev mi nie tworzy pliku urządzenia. Chciałem dodać regułę do udev, ale za bardzo mi to nie wyszło.

Proszę jeszcze raz o pomoc w tej sprawie.