CompactFlash Karten einbinden

Jan 'RedBully' Seiffert redbully at cc.fh-luh.de
Fri Oct 13 17:29:45 CEST 2006


Andre Landwehr wrote:
> Jan 'RedBully' Seiffert wrote:
>>> Aber nichts hindert
>>> dich an:
>>> 	system("/sbin/mount /mnt/foo");
> 
> Ferkel!
> 
???
"Praktisch denken, Saerge schenken".
Nein, echt, versteh ich jetzt nicht. Das kann so gehen, fuer einfache
Sachen, warum durch den pipe/fork/execve-Ring springen. popen fuer die
faulen ^^.
War ja auch mehr als anregung gedacht, das man ja nicht immer alles
ausprogrammieren muss, sondern einfach auch einen Helper starten kann,
der das fuer einen macht. Man hat ja Multitasking ;)

Oder meinst du jetzt die hartverdratung? Left as exercise for the reader 8)

>>> ahh, moment: mount(2)
>>> #include <sys/mount.h>
>>>
>>>        int mount(const char *source, const char *target,
>>>                  const char *filesystemtype, unsigned long mountflags,
>>>                  const void *data);
>>>
>>> CONFORMING TO
>>>        These functions are Linux-specific and should not be used in
>>> programs intended to be portable.
>>>
>>>
>>> Aber ich denke, du moechtest dir eher udev und seine regeln ansehen.
> 
> Du mountest das automatisch über udev? Dann schick mir mal die Regeln
> bitte!
OK, sorry, ich mounte da garnix automatisch. "Isch abe gar kein
USB-Stick", geschweige denn Cardreader...

vielleicht: udev(7)
RUN    Add a program to the list of programs to be executed for a
specific device.

Es war auch eher als Hinweis gedacht, ich weiss ja nicht _genau_, was
Conrad erreichen moechte. Nur was immer er erreichen moechte, er sollte
das Rad dabei nicht neu erfinden ;)
Er sollte erstmal ueberhaupt anfangen, sich die Cardreaderslots auf
feste Namen zu mappen.
Da hab ich dann wohl noch den Hinweis auf automounter vergessen, aber...

> Für USB-Sticks mag man das ja noch hinfrickeln können, aber
> spätestens bei Kartenlesern, in die du im laufenden Betrieb eine Karte
> reinsteckst, versagt das ganze, weil da keinerlei Event über die Leitung
> geht.
Hmmm? Doch, das event was die devices sonst auch erstellt. Nagut, wenn
es der Cardreader normaler weise auch nur beim Anstecken hinbekommt,
dann sieht das schon schlecht aus, dann hat man aber auch kein device
(zumindest ich haette dann keins, full dynamic /dev, und mknod nummern
hab ich selten im Kopf...). Wie weit ist es den mit der MMC/SD-Card
unterstuetzung mitlerweile im Kernel? Das war aber auch nur fuer diese
integrierten Cardreader, nicht die USB-Dinger, nech?

Was ich problematischer sehe, ist das entfernen, entfernungs-Events
kommen notorisch zu spaet...

> Ich hab für sowas auf Automounter zurückgegriffen, was aber auch nicht
> die Lösung aller Probleme ist, Stichwort dynamische Vergabe von
> Devicenamen. Für den (eingebauten) USB-Kartenleser hab ich die
> Devicenamen per udev umfrickeln lassen auf /dev/sd.. für SD-Karten,
> /dev/cf.. für Compactflash usw., aber das will ich nicht für jeden
> potentiellen USB-Stick machen, und da weiß man dann halt nie, wo sie
> landen.
Gibt es nicht ein anderes Attribut, worauf man sich da verlassen kann?
Hmm, usbstorage, aber dann wuerde er Platten und Sticks in einen Topf
werfen. Nagut, wenn man mehrere Sticks ansteckt, landet man sowieso
wieder bei ziffern, und wer zu erst kommt...
Labels? UUIDs? Programm starten, das damit eine Datenbankabfrage macht?
"Udev - endecke die moeglichkeiten" ;)

> Außerdem nervt beim Automounter, daß der Mountpoint erst dann
> erstellt wird, wenn man drauf zugreift. Das erstickt z.B. jeden Versuch
> von Tabcompletion im Ansatz.
insight_full++;

> 
> Gruß,
> Andre
> 
Gruss
	Jan

-- 
Zitat Sun Solaris 2.6 SPARC Assembly Language Reference Manual:
"..the assembler is a tool to use in producing program modules
intended to exploid features..."
Jaja, damals hat man noch features exploited ;)



More information about the Linux mailing list