Czytnik kart pamięci i udev.

Gdy jakieś urządzenie nie chce w Slackware działać...

Moderatorzy: Moderatorzy, Administratorzy

y0yster
Użytkownik
Posty: 23
Rejestracja: 2007-10-25, 19:11
Kontakt:

Czytnik kart pamięci i udev.

Post 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.
jacol
Przyjaciel Forum
Posty: 680
Rejestracja: 2004-06-12, 17:34

Re: Czytnik kart pamięci i udev.

Post autor: jacol »

Witam.
Co mówi: /var/log/messages? Pozdrawiam jacol
Awatar użytkownika
darjerz
Użytkownik
Posty: 1052
Rejestracja: 2004-05-28, 18:26
Lokalizacja: Wrocław

Re: Czytnik kart pamięci i udev.

Post 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]
Ostatnio zmieniony 2007-10-25, 20:50 przez darjerz, łącznie zmieniany 1 raz.
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
y0yster
Użytkownik
Posty: 23
Rejestracja: 2007-10-25, 19:11
Kontakt:

Re: Czytnik kart pamięci i udev.

Post 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
Ostatnio zmieniony 2007-10-30, 22:38 przez y0yster, łącznie zmieniany 1 raz.
Pinki
Użytkownik
Posty: 56
Rejestracja: 2006-08-26, 16:05
Lokalizacja: Kraków

Re: Czytnik kart pamięci i udev.

Post 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.
Ostatnio zmieniony 2007-11-09, 19:45 przez Pinki, łącznie zmieniany 1 raz.
GG: 6867427
[size=150] [color=red]Nowe Polskie Forum Linuksowe:[/color][/size]
http://linuksowo.pl/
Awatar użytkownika
Lizard
Moderator
Posty: 2629
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: Czytnik kart pamięci i udev.

Post 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
Error 404 - footer not found
Pinki
Użytkownik
Posty: 56
Rejestracja: 2006-08-26, 16:05
Lokalizacja: Kraków

Re: Czytnik kart pamięci i udev.

Post 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.
Ostatnio zmieniony 2007-11-09, 21:54 przez Pinki, łącznie zmieniany 1 raz.
GG: 6867427
[size=150] [color=red]Nowe Polskie Forum Linuksowe:[/color][/size]
http://linuksowo.pl/
y0yster
Użytkownik
Posty: 23
Rejestracja: 2007-10-25, 19:11
Kontakt:

Re: Czytnik kart pamięci i udev.

Post 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.
ODPOWIEDZ