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

(gelöst) SD-Card Informationen (cid, csd, Datum, manfid, oemid, serial) auslesen

Christina

Moderator
Teammitglied
Hallo,

ich möchte bei SD-Cards Informationen über "cid, csd, Datum, manfid, oemid, serial" auslesen.
So wie hier beschrieben https://buyzero.de/blogs/news/raspb...ption-vermeiden-geheimnisse-der-microsd-karte, geht das aber nicht.
Code:
cd /sys/class/mmc_host/mmc?/mmc?:*
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
Es gibt bei openSUSE Leap 15.1 kein Verzeichnis "/sys/class/mmc_host".

Kann mir jemand weiterhelfen, bitte?
 

susejunky

Moderator
Teammitglied
Hallo Christina,
Christina schrieb:
... ich möchte bei SD-Cards Informationen über "cid, csd, Datum, manfid, oemid, serial" auslesen.
wie ist das Lesegerät, mit Hilfe dessen Du die SD-Karte zu lesen versuchst, an Deinen Rechner angebunden (PCI, USB, ...)?

Viele Grüße

susejunky
 
OP
Christina

Christina

Moderator
Teammitglied
Hallo,
per USB:
Code:
lsusb
Bus 003 Device 002: ID 05e3:0716 Genesys Logic, Inc. USB 2.0 Multislot Card Reader/Writer
 

susejunky

Moderator
Teammitglied
Hallo Christina,
Christina schrieb:
... per USB:
Code:
lsusb
Bus 003 Device 002: ID 05e3:0716 Genesys Logic, Inc. USB 2.0 Multislot Card Reader/Writer
Das könnte der Grund für Dein Problem sein.
Christina schrieb:
... Es gibt bei openSUSE Leap 15.1 kein Verzeichnis "/sys/class/mmc_host".
Bist Du sicher, dass dem tatsächlich so ist?

Verwende ich einen über USB angebundenen, externen Kartenleser, dann existiert das Verzeichnis /sys/class/mmc_host (openSUSE Tumbleweed). Allerdings fehlt das Verzeichnis /sys/class/mmc_host/mmc?/mmc?:* und damit auch die Informationen, die mit echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)" abgefragt werden sollen.

Verwende ich den über PCI eingebundenen, internen Kartenleser, dann existiert das Verzeichnis /sys/class/mmc_host/mmc?/mmc?:* und echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)" liefert die gewünschten Informationen.

Viele Grüße

susejunky
 

josef-wien

Ultimate Guru
Es scheint entweder vom Kernel oder vom USB-Kartenleser abzuhängen. Bei meinem Gerät und dem Langzeit-Kernel 4.14 gibt es das Verzeichnis /sys/class/mmc_host nicht. Christina könnte das Repo http://download.opensuse.org/repositories/Kernel:/stable/standard/ einbinden und den Kernel 5.4 installieren, um diesbezüglich zu forschen.

Bei einem USB-Kartenleser werden die gewünschten Informationen aber wohl nicht zu erhalten sein. Der Kernel kommuniziert mit dem USB-Kartenleser (und nicht mit der Karte), und der gibt in der Regel nur das von sich, was zum Lesen und Schreiben gebraucht wird.
 

susejunky

Moderator
Teammitglied
Hallo josef-wien,
josef-wien schrieb:
Es scheint entweder vom Kernel oder vom USB-Kartenleser abzuhängen.
Da bin ich mir nicht so sicher.

Ich habe eben den identischen USB-Kartenleser (billig-no-name-Ware) mit der identischen SD-Karte (Lexar 32GB MiniSD) einmal an mein Notebook und einmal an meinen Desktop-PC angeschlossen (immer USB3-Buchse). Auf beiden Geräten läuft die aktuelle Tumbleweed-Version (allerdings ist das nur Kernel 5.3.12 und noch nicht Kernel 5.4).

Auf dem Laptop gibt es das Verzeichnis /sys/class/mmc_host, auf dem Desktop-PC nicht.

josef-wien schrieb:
Bei einem USB-Kartenleser werden die gewünschten Informationen aber wohl nicht zu erhalten sein. Der Kernel kommuniziert mit dem USB-Kartenleser (und nicht mit der Karte), und der gibt in der Regel nur das von sich, was zum Lesen und Schreiben gebraucht wird.
Das vermute ich auch. Und smartctl ist bei mir am USB-Kontroller komplett gescheitert.

Viele Grüße

susejunky
 

abgdf

Guru
Scheint mir wieder so ein Problem zu sein, daß Hotplugging-Services irgendwas Undurchschaubares auf dem System machen, und irgendwelche Dateien und Verzeichnisse mit kryptischen Namen aufgrund von irgendwelchen "Policies" temporär automatisch erstellen oder eben nicht.
Früher, mit manuell mounten und "/etc/fstab", wäre das nicht passiert.
Früher, da hatte man noch die Kontrolle über das System. Jetzt weniger. Bald noch weniger. Bald noch weniger. Wollte nur mal drauf hinweisen.
 
OP
Christina

Christina

Moderator
Teammitglied
susejunky schrieb:
Auf dem Laptop gibt es das Verzeichnis /sys/class/mmc_host, auf dem Desktop-PC nicht.
Und der Artikel oben ist vom 1. Juli 2017. Also hat es vermutlich nicht mit der Kernelversion 5.3.12 zu tun.
Mit Linux Kernel 4.19.34 (System Rescue CD 6.0.3) gibt es auch kein Verzeichnis /sys/class/mmc_host/.
Trotzdem Danke!
Noch eine andere Frage: Das Wildcard ? steht für 1 beliebiges Zeichen, * für beliebige/kein Zeichen.
Was bewirkt dann die Kombination: ?:* bei
Code:
cd /sys/class/mmc_host/mmc?/mmc?:*
?
":" ist doch glaube ich auch ein Wildcard, wenn es ohne Backslash steht "\:".
 

gehrke

Administrator
Teammitglied
Also unter Fedora 31 mit all dem bösen, neumodischen Schnickschnack gibt es bei eingelegter SD-Card genau das:
Code:
bash-5.0$ cd /sys/class/mmc_host/mmc?/mmc?:*
bash-5.0$ pwd
/sys/class/mmc_host/mmc0/mmc0:aaaa
Wollt's nur gesagt haben...

EDIT:
Code:
bash-5.0$ uname -r
5.3.12-300.fc31.x86_64
 
OP
Christina

Christina

Moderator
Teammitglied
Aha, dann ist der Doppelpunkt hier kein Wildcard, danke.

Aber was wird bei dir angezeigt, wenn du in diesem Verzeichnis bei eingelegter SD-Card eingibst
Code:
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
Ist das auch ein USB-Cardreader?
 

gehrke

Administrator
Teammitglied
Code:
bash-5.0$ echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
man:0x000003 oem:0x5344 name:SC32G hwrev:0x8 fwrev:0x0
Christina schrieb:
Ist das auch ein USB-Cardreader?
Nein, sorry. Das ist der interne CardReader. Das dürfte der relevante Unterschied sein.
 
A

Anonymous

Gast
Ich hatte das zu einem ähnlichen Problem hier schon mal geschrieben.
Die Seriennummer und Hersteller .... und was sonst noch auf der HW der Karte gespeichert ist, kann man natürlich auch nicht mit einem USB-Cardreader auslesen, bekommt man bestenfalls die Daten vom Cardreader, aber nicht wirklich die der Karte.
Benötigt wird da ein interner Cardreader zB. auf pci-Basis wie er zB in Laptops verbaut sein könnte. (geht aber auch nicht unbedingt jeder Cardreader manche haben dennoch Basis USB, aber die Change denke ich höher als 50%)

robi
 
OP
Christina

Christina

Moderator
Teammitglied
susejunky schrieb:
Dazu findest Du hier https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html (Kapitel 3.5 bzw. speziell 3.5.8 ) mehr.
Das ist richtig gut, Danke!
---
gehrke schrieb:
Code:
bash-5.0$ echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
man:0x000003 oem:0x5344 name:SC32G hwrev:0x8 fwrev:0x0
Christina schrieb:
Ist das auch ein USB-Cardreader?
Nein, sorry. Das ist der interne CardReader. Das dürfte der relevante Unterschied sein.
Mein Notebook hat auch einen internen Card Reader.
Code:
lsusb
Bus 002 Device 004: ID 0bda:0138 Realtek Semiconductor Corp. RTS5138 Card Reader Controller
uname -a
Linux sysresccd 4.19.34-1-lts #1 SMP Sat Apr 6 19:41:19 CEST 2019 x86_64 GNU/Linux
Ein Verzeichnis "/sys/class/mmc_host" gibt trotzdem nicht, weil er am USB hängt. (Danke auch an robi.)
Ich habe gerade leihweise einen USB3-SD-Card-Reader da und es geht auch nicht.

Vielen Dank an alle!
 
Oben