Kurz und Schmerzlos: SD-Karten unter Linux am Laptop

sdcards Das heutige Gezeter und Geheule gehört der *tataaa* SD-Karte.
SD-Karten sind nicht nett; Man darf sie nicht zu oft beschreiben, das Secure ist vom Marketing erfunden und stinkt nach DRM, gerüchteweise darf man einige davon (vorallem die Günstigen) nur mit FAT-Dateisystem beschreiben, nicht alle Karten gehen überall rein und das nicht nur Formatmässig (das würde man mit Gewalt ja noch in den Griff kriegen 🙂 )! Mein alter Photoapparat hat nur verdutzt gefiept, als ich ihm die 8GB-Karte gezeigt habe, war er sich doch nur 64 MB gewohnt. So richtig bringts das nicht. Genau dies hat auch die Installation meines Asus eee verzögert! Die 8GB Karte hat sich – ganz beleidigt darüber wie eine Festplatte behandelt zu weden – einfach totgestellt. Dummes Ding.

Will man Daten unterwegs von der Karte evakuieren, wäre es schön, wenn man zum gesamten Kabelarsenal nicht noch mehr in Form eines günstigen und problemloseren externen Card-Reader dazukommen würde.

Nun, man muss sich etwas vorbereiten und herausfinden, wo zum PCI der Cardreader ist:

erinyes:~# lspci | grep -i "mass storage"
02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Mit der folgenden, halbmagischen Formel erweckt man den Mass Storage Controller zum Leben. Natürlich muss statt 02:06.3 die oben ausgespuckte Nummer hin.

setpci -s 02:06.3 4c=0x22

Will man dies dauerhaft einrichten, so bietet sich beispielsweise die Datei /etc/rc.local an.

Als Treiber braucht es drei Module:

modprobe mmc_block
modprobe mmc_core
modprobe sdhci

Will man auch das bleibend einrichten, so können sie in der Datei /etc/modules aufgelistet werden.

Steckt man nun die Karte ein, so sollte sich der Cardreader fröhlich in /var/log/messages melden:

Apr 21 23:22:37 erinyes kernel: mmc2: new SDHC card at address 0007
Apr 21 23:22:37 erinyes kernel: mmcblk0: mmc2:0007 SD08G 7862272KiB
Apr 21 23:22:37 erinyes kernel:  mmcblk0:

/dev/mmcblk0 ist nun das Device. Ein neues Dateisystem wird erstellt mittels mkfs.msdos /dev/mmcblk0. Gemountet wird die Bagage mittels mount /dev/mmcblk0 /mnt.

Will man das bleibend haben, so kann man jeweils /etc/fstab tunen:

/dev/mmcblk0       /mnt/mmcblk0       auto    defaults,user,noauto,noatime 0  0

noatime damit nicht bei jedem Lesen auf die Karte geschrieben wird. So sollts eigentlich funzen. Viel Spass mit den Teufelsdingern…