• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Card Reader in IMB Z61

Hallo

weiss von euch jemand, wie ich den internen CardReader in einem IBM Z61 zum laufen bekomme. verwende Suse 10.1

lsusb zeigt den Reader nicht an.

Danke im Voraus
 
Was zeigt dir denn lspci an?

Hab´s gerade gefunden ist ein Texas Instrument Card Reader. In deiner lspci müsste dann sowas hier stehen:

02:04.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
02:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Um das Laufwerk benutzen zu können ist entweder ein Kernelupdate auf Kernel 2.6.18 notwendig (im Kernel unter MMC/SD Card Support „Secure Digital Host Controller Interface Support“ aktivieren)

oder die neue Opensuse10.2 verwenden, die den Kernel bereits mitbringt.

-Installation läuft dann folgendermaßen in der Konsole als Root ab:
modprobe mmc_core
modprobe sdhci
modprobe mmc_block
setpci -s 02:04.3 4c=0x22

(Bei setpci wirst du mit 100%iger Sicherheit eine ander Hardwareadresse haben, da ich ein HP Notebook habe, kannste dann von deiner lspci- Ausgabe übernehemen.)

-Nun SD-Karte einlegen, es müsste sich der KDE-Dämon öffnen, ein neues Laufwerk steht unter /dev/mmcblk0p1


-Für das automatische Laden des Kartenlesegerätes nun noch die Module in /etc/sysconfig/kernel unter MODULES_LOADED_ON_BOOT eintragen:
„mmc_core sdhci mmc_block“
-„setpci -s 02:04.3 4c=0x22“ in /etc/init.d/boot.local eintragen
- mkinitrd in /boot ausführen
-/dev/mmcblk0p1 /media vfat user,noauto,users,gid=users,umask=0002,utf8=true 0 0 in /etc/fstab eintragen
 
Bei mir führt das nicht zur Lösung. Ich nutze openSuSE 10.2 auf einem Acer Aspire 1694 WLMi.


Code:
06:01.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
06:01.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
06:01.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Ich lade zu erst alle 3 Module:
Code:
modprobe mmc_core
modprobe sdhci
modprobe mmc_block

lsmod:
Code:
Module                  Size  Used by
mmc_block              12040  0
sdhci                  21644  0
mmc_core               28672  2 mmc_block,sdhci

und führe dann:

Code:
setpci -s 06:01.3 4c=0x22

aus. (woführt steht eigentlich 4c=0x22 ?)

Nachdem ich die SD Karte in den Reader schiebe erscheint /dev/mmcblk0p1 aber immer noch nicht und lässt sich demzufolge auch nicht mounten.

Dies hab ich bereits unter Mandriva 2007 mit 2.6.17er kernel versucht und bin dort ebenfalls gescheitert.

Ich habe schon von einigen gehört, dass die den Reader zum laufen gebracht haben.
Können die zaubern oder wird dieser Reader einfach nie unter Linux unterstützt werden?
 
mach nochmal bitte in der Konsole
Code:
modprobe mmc_core
modprobe sdhci
modprobe mmc_block
setpci -s 06:01.3 4c=0x22

danach SD Karte einlegen und in der Konsole

Code:
dmesg | grep mmc

eingeben und hier posten.

Hast du auch schon mal eine andere SD-Karte ausprobiert?

Zeig mal die entsprechenden PCI-Id´s
Code:
lspci -n
 
ich habe folgendes in der Konsole eingegeben:

Code:
linux-6big:/home/gast # modprobe mmc_core
linux-6big:/home/gast # modprobe sdhci
linux-6big:/home/gast # modprobe mmc_block
linux-6big:/home/gast # setpci -s 06:01.3 4c=0x22
linux-6big:/home/gast # dmesg | grep mmc
linux-6big:/home/gast #

dmesg liefert keine Ausgabe

Code:
linux-6big:/home/gast # lspci -n
00:00.0 Class 0600: 8086:2590 (rev 03)
00:01.0 Class 0604: 8086:2591 (rev 03)
00:1c.0 Class 0604: 8086:2660 (rev 04)
00:1c.1 Class 0604: 8086:2662 (rev 04)

00:1c.2 Class 0604: 8086:2664 (rev 04)
00:1d.0 Class 0c03: 8086:2658 (rev 04)
00:1d.1 Class 0c03: 8086:2659 (rev 04)
00:1d.2 Class 0c03: 8086:265a (rev 04)
00:1d.3 Class 0c03: 8086:265b (rev 04)
00:1d.7 Class 0c03: 8086:265c (rev 04)
00:1e.0 Class 0604: 8086:2448 (rev d4)
00:1e.2 Class 0401: 8086:266e (rev 04)
00:1e.3 Class 0703: 8086:266d (rev 04)
00:1f.0 Class 0601: 8086:2641 (rev 04)
00:1f.1 Class 0101: 8086:266f (rev 04)
00:1f.3 Class 0c05: 8086:266a (rev 04)
01:00.0 Class 0300: 1002:5653
06:01.0 Class 0607: 104c:8031
06:01.2 Class 0c00: 104c:8032
06:01.3 Class 0180: 104c:8033
06:03.0 Class 0280: 8086:4220 (rev 05)
06:08.0 Class 0200: 14e4:169c (rev 03)

Der heximal dump des Readers sieht nach dem beschreiben so aus:
Code:
06:01.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
00: 4c 10 33 80 02 00 10 02 00 00 80 01 08 39 80 00
10: 00 40 21 b0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 25 10 66 00
30: 00 00 00 00 44 00 00 00 00 00 00 00 0b 01 07 04

Welche Bedeutung hat das 4c=0x22? Mittlerweile denke ich, das es daran liegt. Weis aber nicht was ich da ändern könnte.

Anhang: Ich habe eine weitere SD-Karte getestet, ohne Erfolg. Beide Karten funktionieren aber mit externem Card Reader.
 
dmesg liefert keine Ausgabe

Hmm, dein Kartenlesegerät scheint von den Modulen nicht erkannt zu werden. Auch ohne eingesteckte Karte und ohne ein setpci müsstes du schon sowas hier erhalten:

Code:
linux-oeb5:~ # dmesg | grep mmc
PCI: No mmconfig possible on device 0:18
mmc0: SDHCI at 0xd001a000 irq 169 DMA
mmc1: SDHCI at 0xd001b000 irq 169 DMA
mmc2: SDHCI at 0xd001c000 irq 169 DMA
 
Problem gelöst.

Ich habe SLED 10 auf einem Acer Aspire 1694WLMi verwendet.

Die Lösung ist in einem Kanotixforum zu finden:
http://kanotix.com/PNphpBB2-viewtopic-t-22344.html

kurz:
- Treiber runterladen: http://developer.berlios.de/projects/tifmxx
- kompilieren, installieren, Module updaten ("make", "make install", "module_upgrade")

Code:
viajante:/media/TREKSTOR/cardread # make
make -C /lib/modules/2.6.16.21-0.25-default/build M=/media/TREKSTOR/cardread
make[1]: Entering directory `/usr/src/linux-2.6.16.21-0.25-obj/i386/default'
make -C ../../../linux-2.6.16.21-0.25 O=../linux-2.6.16.21-0.25-obj/i386/default
  LD      /media/TREKSTOR/cardread/built-in.o
  CC [M]  /media/TREKSTOR/cardread/tifm_core.o
  CC [M]  /media/TREKSTOR/cardread/tifm_7xx1.o
  CC [M]  /media/TREKSTOR/cardread/tifm_sd.o
  Building modules, stage 2.
  MODPOST
  CC      /media/TREKSTOR/cardread/tifm_7xx1.mod.o
  LD [M]  /media/TREKSTOR/cardread/tifm_7xx1.ko
  CC      /media/TREKSTOR/cardread/tifm_core.mod.o
  LD [M]  /media/TREKSTOR/cardread/tifm_core.ko
  CC      /media/TREKSTOR/cardread/tifm_sd.mod.o
  LD [M]  /media/TREKSTOR/cardread/tifm_sd.ko
make[1]: Leaving directory `/usr/src/linux-2.6.16.21-0.25-obj/i386/default'
viajante:/media/TREKSTOR/cardread # make install
mkdir -p /lib/modules/2.6.16.21-0.25-default/misc
rm -f /lib/modules/2.6.16.21-0.25-default/misc/tifm_core.ko
rm -f /lib/modules/2.6.16.21-0.25-default/misc/tifm_sd.ko
rm -f /lib/modules/2.6.16.21-0.25-default/misc/tifm_7xx1.ko
install -c -m 644 tifm_core.ko tifm_7xx1.ko tifm_sd.ko /lib/modules/2.6.16.21-0. 25-default/misc
/sbin/depmod -ae


- erstellte Module laden
- zusätzliche Module laden

Code:
viajante:/media/TREKSTOR/cardread # module_upgrade
viajante:/media/TREKSTOR/cardread # modprobe tifm_core
viajante:/media/TREKSTOR/cardread # modprobe tifm_sd
viajante:/media/TREKSTOR/cardread # modprobe tifm_7xx1
viajante:/media/TREKSTOR/cardread # modprobe mmc_core
viajante:/media/TREKSTOR/cardread # modprobe mmc_block
viajante:/media/TREKSTOR/cardread #


Nach dem laden des letzten Moduls poppte sofort das Fenster auf, und ich konnte die Karte nutzen... welche eine Freude :)

Da dies auch unter SLED funktioniert habe ich keinen Grund mehr zu openSUSE 10.2 zu wechseln :)

Viel Spaß noch mit eurem Card Reader...


Anmerkung: Der Treiber sollte sich in einem Pfad OHNE LEERZEICHEN befinden. Sobalt nur ein einziges Leerzeichen im Pfad zum Treiber ist, gibt make einen Fehler zurück, weil er denkt, dass das Wort nach dem Leerzeichen ein Parameter ist.

Anmerkung2: Um alle nötigen Module beim starten zu laden, müssen diese unter der Variablen "MODULES_LOADED_ON_BOOT" in der Datei "/etc/sysconfig/kernel" angegeben werden.

in der Datei "kernel":
Code:
## Type:		string
## ServiceRestart:	boot.loadmodules
#
# This variable contains the list of modules to be loaded
# once the main filesystem is active
# You will find a few default modules for hardware which
# can not be detected automatically.
#
MODULES_LOADED_ON_BOOT="mmc_core mmc_block tifm_core tifm_sd tifm_7xx1"

Danach muss mkinitrd ausgeführt werden.
Code:
viajante:/home/smoke # mkinitrd
 
:lol: Also sd/mmc-Karten funktionieren damit, aber wie sieht es mit memory-stick aus?
Hat schon jemand Erfolge zu melden?

Grüße!
 
Memory Sticks werden von diesem Treiber noch nicht unterstützt. Darauf werden wir bestimmt noch lange warten müssen...
 
Oben