Ricoh SD-Kartenleser

13/12/2011 - 09:20 von Markus Wichmann | Report spam
Hi all,

also, meine Hardware ist ein Thinkpad T61. Das heißt:

#v+
# lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory
Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960
Integrated Graphics Controller (primary) (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960
Integrated Graphics Controller (secondary) (rev 0c)
00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network
Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio
Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface
Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller
(rev 03)
03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or
AGN [Kedron] Network Connection (rev 61)
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro
Host Adapter (rev 21)
15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host
Adapter (rev 11)
15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)
#v-

Ich kann mich daran erinnern, dass früher mal mein SD-Kartenleser
funktioniert hat. Jetzt ($(uname -r) == 3.1.0-1-amd64) ist das nicht
mehr der Fall. Ich wüsste halt gerne, was ich daran àndern kann.

Also, ich habe schon das Netz abgesucht, aber das enthàlt nur den
Hinweis auf gepatchte Kernels und den Hinweis darauf, dass das ab 2.6.25
unnötig ist. Der letzte funktionierende Kernel war ja auch IIRC 2.6.26
(von dem ich dann gleich auf einen selbstkompilierten 3.0 gewechselt
bin). Der jetzige Kernel ist wieder Distro, weil ich dachte, dass er
vielleicht Treiber enthàlt, die ich übersehen habe. lspci -v listet für
alle Ricoh-Geràte einen Treiber, und zwar:

15:00.0 CardBus bridge: yenta_cardbus
15:00.2 SD Host controller: sdhci_pci
15:00.4/5 System peripheral: r852

aber dennoch gibt es keine Aktivitàt beim Einsetzen einer Karte, und
auch kein /dev/mmcblk* danach (oder auch davor):

$ ls /dev/mmc*
zsh: no matches found: /dev/mmc*

Probiert habe ich eine 1GB SD-Karte und eine 4GB SDHC-Karte. Beide
gingen mal.

Ich hab gehört, der Treiber ricoh_mmc ist aus dem Kernel geflogen. Gibt
es Ersatz? Ich hab kein Problem damit, Kernelmodule selbst zu
kompilieren. Aber einen Treiber zu pflegen, ist dann doch etwas jenseits
meiner Fàhigkeiten.

Ciao,
Markus
 

Lesen sie die antworten

#1 Thomas Bächler
13/12/2011 - 13:27 | Warnen spam
Am 13.12.2011 09:20, schrieb Markus Wichmann:
Ich kann mich daran erinnern, dass früher mal mein SD-Kartenleser
funktioniert hat. Jetzt ($(uname -r) == 3.1.0-1-amd64) ist das nicht
mehr der Fall. Ich wüsste halt gerne, was ich daran àndern kann.



Problem finden und beheben (mehr dazu unten).

Also, ich habe schon das Netz abgesucht, aber das enthàlt nur den
Hinweis auf gepatchte Kernels und den Hinweis darauf, dass das ab 2.6.25
unnötig ist. Der letzte funktionierende Kernel war ja auch IIRC 2.6.26
(von dem ich dann gleich auf einen selbstkompilierten 3.0 gewechselt
bin). Der jetzige Kernel ist wieder Distro, weil ich dachte, dass er
vielleicht Treiber enthàlt, die ich übersehen habe. lspci -v listet für
alle Ricoh-Geràte einen Treiber, und zwar:

15:00.0 CardBus bridge: yenta_cardbus
15:00.2 SD Host controller: sdhci_pci
15:00.4/5 System peripheral: r852



Hast du sdhci denn auch kompiliert und geladen?

$ lsmod|grep sdhci
sdhci_pci 8887 0
sdhci 22510 1 sdhci_pci
mmc_core 75853 1 sdhci

Ich hab gehört, der Treiber ricoh_mmc ist aus dem Kernel geflogen. Gibt
es Ersatz?



Der ricoh_mmc ist eigentlich kein Treiber. Das ist der "Ricoh MMC reader
disabler" oder so. In vielen Geràten steckt ein Ricoh SD/MMC
Kombi-Kartenleser und ein Ricoh MMC Kartenleser. Für letzteren gibt es
keinen Treiber - allerdings liest ersterer auch MMCs, sofern man
letzteren abschaltet, und genau das tut/tat ricoh_mmc. Laut deiner
lspci-Ausgabe ist das für dich ohnehin irrelevant.


Du fragtest oben, was du àndern kannst. Du sagst, mit 2.6.26 ging es und
mit 3.0 nicht mehr. Das ist doch schonmal ein Anfang:

$ git clone
git://git.kernel.org/pub/scm/linux/.../linux.git #
(falls nicht schon geschehen)
$ cd linux
$ git bisect start
$ git bisect good v2.6.26
$ git bisect bad v3.0
Bisecting: 78040 revisions left to test after this (roughly 16 steps)

Das bedeutet, du musst lediglich 16 Kernel kompilieren und jeweils
testen ob der Kartenleser funktioniert. Dann machst du je nach Ergebnis
'git bisect good' oder 'git bisect bad'. Am Ende bekommst du den Commit,
der das Problem verursacht und kannst es den Autoren melden.

(Zu allererst solltest du aber den 2.6.26 nochmal testen, denn falls du
dich irrst ist die ganze Zeit verschwendet.)

Wenn du niemand auf Google findest, der das Problem bereits gefunden
(und behoben?) hat, ist das das einzig *nützliche* was du tun kannst.

Du kannst natürlich weniger zielführende Dinge tun, wie:
- Motzen.
- In Foren posten, in denen keiner eine Ahnung hat.
- In Newsgroups posten, in denen keiner eine Ahnung hat.
- Seltsame Tipps ausprobieren, die bei irgendwem im Jahr 2005
funktioniert haben.

Ähnliche fragen