Discussion:
Pen drive
Purszki Csaba
2004-06-16 12:31:45 UTC
Permalink
Sziasztok!

Egy olyan programot szeretnek irni, ami automatikusan eszleli, hogy
pendrive-ot dugtak a gepbe, ir ra, es aztan azt is eszreveszi, hogy a
pendrive-ot kihuztak.

Ket dologgal probalkoztam:
1. automount-ra hagyatkozni. Ez kiralyul eszreveszi, hogy bent van a
pendrive, de tudtommal nem veszi eszre, hogy mikor van kihuzva. Vagy
eszreveszi? Hogyan lehetne ellenorizni?

2. A mount es umount programokat hivogattam meg. Ezzel az a baj, hogyha
egyszer meghivok egy mount-ot pl. a /dev/sda4-re, amikor az nincs bedugva,
onnantol a kesobbiek folyaman semmi (meg az automount) sem hajlando
mukodni.


Elore is koszonom az otleteket,

udv,
csaba
Fisher
2004-06-16 12:56:58 UTC
Permalink
Post by Purszki Csaba
Sziasztok!
Egy olyan programot szeretnek irni, ami automatikusan eszleli, hogy
pendrive-ot dugtak a gepbe, ir ra, es aztan azt is eszreveszi, hogy a
pendrive-ot kihuztak.
Erre szerintem csak a /proc/scsi/scsi nézegetése és feldogozása a
korrekt megoldás. A fényképezo"gépet automounterrel mountolom, úgy, hogy
figyelem a logot, és amikor megjelnik bennea kamera ID-je, akkor egy
mc-t indítok arra a könyvtárra.
A kártyaolvasón meg pollozni fogom az scsi device-okat (pl. fdisk) ha
megjelenik 1 eszköz akkor indul rá az mc automounterrel.
Egyébként az automounter lebont asszem 2 másodperccel azután, hogy a
cuccot már nem fogja semmi. Az írás közbeni kirántástól meg nem véd meg
semmi sem.
Zs
2004-06-16 13:17:15 UTC
Permalink
Hi!
Post by Purszki Csaba
Egy olyan programot szeretnek irni, ami automatikusan eszleli, hogy
pendrive-ot dugtak a gepbe, ir ra, es aztan azt is eszreveszi, hogy a
pendrive-ot kihuztak.
Esetleg usb-mgr?
Ha mást nem, hát a forrását szerintem mindenképp érdemes
lenne megsasolni, mert korrektül észre veszi a bedugást is és
a kihúzást is.
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.

Zsolt
Also-Antal Csaba
2004-06-16 13:20:28 UTC
Permalink
.
Post by Zs
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...

udv
Csaba
Zs
2004-06-18 08:27:23 UTC
Permalink
Hi!
Post by Also-Antal Csaba
Post by Zs
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Miért is? usbmgr lazán tudja...

Zsolt
Purszki Csaba
2004-06-18 10:52:33 UTC
Permalink
Post by Also-Antal Csaba
Ha =FCgyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Mi=E9rt is? usbmgr laz=E1n tudja...
A legegyszerubb es legtisztabb megoldasnak a /proc/scsi/usb-storage-x/x
file vizsgalata bizonyult. Ott van egy sor, (attached), ami pontosan
megmondja, hogy be van-e dugva a pen.

usbmgr-re egy sajat programban nem szerencses tamaszkodni szerintem.

Mindenkinek koszonom az otleteket!

udv,
csaba
Zs
2004-06-18 11:40:51 UTC
Permalink
Hi!
Post by Purszki Csaba
Post by Zs
Post by Also-Antal Csaba
Post by Zs
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Miért is? usbmgr lazán tudja...
A legegyszerubb es legtisztabb megoldasnak a /proc/scsi/usb-storage-x/x
file vizsgalata bizonyult. Ott van egy sor, (attached), ami pontosan
megmondja, hogy be van-e dugva a pen.
usbmgr-re egy sajat programban nem szerencses tamaszkodni szerintem.
Maximálisan egyetértünk. Ha az eredeti levelet megnézed, akkor abban
láthatod azt is, hogy én nem az usbmgr program használatát, hanem a
forrásának megtekintését ajánlottam - pontosan ugyanilyen megfontolásból.

Az persze igaz, hogy halkan megemlítettem azt is, hogy akár az usbmgr
is használható - minek írjunk meg valamit, ha már kész van.

Azt meg, hogy a két elvből melyiket használjuk, azt úgy is a feladat - no
meg a kivitelező - dönti el.

Zsolt
Purszki Csaba
2004-06-18 13:19:12 UTC
Permalink
Post by Purszki Csaba
Post by Also-Antal Csaba
Ha =FCgyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Mi=E9rt is? usbmgr laz=E1n tudja...
A legegyszerubb es legtisztabb megoldasnak a /proc/scsi/usb-storage-x/x
file vizsgalata bizonyult. Ott van egy sor, (attached), ami pontosan
megmondja, hogy be van-e dugva a pen.
usbmgr-re egy sajat programban nem szerencses tamaszkodni szerintem.
Maxim=E1lisan egyet=E9rt=FCnk. Ha az eredeti levelet megn=E9zed, akkor ab=
ban
l=E1thatod azt is, hogy =E9n nem az usbmgr program haszn=E1lat=E1t, hanem=
a
forr=E1s=E1nak megtekint=E9s=E9t aj=E1nlottam - pontosan ugyanilyen megfo=
ntol=E1sb=F3l.
Igen, emlekszem, persze. De eleg osszetett progi ahhoz, hogy ne legyen
konnyu es gyors atnezni a forrasat... :)

udv,
csaba
Also-Antal Csaba
2004-06-21 15:23:18 UTC
Permalink
Post by Zs
Hi!
Post by Also-Antal Csaba
Post by Zs
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Miért is? usbmgr lazán tudja...
ha kihuztad hogy umountolod?

udv
Csaba
Zs
2004-06-21 15:54:24 UTC
Permalink
Hi!
Post by Also-Antal Csaba
Post by Zs
Post by Also-Antal Csaba
Post by Zs
Ha ügyes vagy automatikusan ki/becsatoltathatod vele a pen-t.
hat a "ki"-hez tenyleg ugyesnek kell lenni...
Miért is? usbmgr lazán tudja...
ha kihuztad hogy umountolod?
Az usbmgr futtatja az umount scriptet. A script pedig jól lefut
és ki is csatolja a pendrive-ot, legalábbis nálam.
No persze ha belépsz a könyvtárba, akkor nem fog sikerülni,
de ez ellen floppy esetén sem lehetett védekezni...

Zsolt
Also-Antal Csaba
2004-06-21 17:27:07 UTC
Permalink
Post by Zs
Post by Also-Antal Csaba
ha kihuztad hogy umountolod?
Az usbmgr futtatja az umount scriptet. A script pedig jól lefut
és ki is csatolja a pendrive-ot, legalábbis nálam.
No persze ha belépsz a könyvtárba, akkor nem fog sikerülni,
de ez ellen floppy esetén sem lehetett védekezni...
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.

udv
Csaba
Nagy Gábor
2004-06-21 17:47:54 UTC
Permalink
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz=
=2E

De ha sync-kel mountolod, akkor nem v=E9sz el. Van itt megold=E1s mindenre.

--=20
NGabor

06/30/677-14-99 #Linux forever! (Debian Sid; 2.4.26)
***Ha m=E1snak vermet =E1sol, =FAgy tedd, ha beleesel, ki tudj m=E1szni bel=
=F5le***
Also-Antal Csaba
2004-06-22 05:00:47 UTC
Permalink
Post by Also-Antal Csaba
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.
De ha sync-kel mountolod, akkor nem vész el. Van itt megoldás mindenre.
akkor most sync es ugy huzod ki? akkor miert nem umount /ahol_az_usb_van?

udv
Csaba
Szabolcs Regos
2004-06-22 16:41:40 UTC
Permalink
Post by Also-Antal Csaba
Post by Also-Antal Csaba
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.
De ha sync-kel mountolod, akkor nem vész el. Van itt megoldás mindenre.
akkor most sync es ugy huzod ki? akkor miert nem umount /ahol_az_usb_van?
Ha write cache használata _nélkül_ mountolsz egy FS-t, akkor az arra az
FS-re író programok csak akkor térnek vissza, ha már minden kiíródott a
pendrive-ra. pl. a "cp" parancs csak akkor adja vissza a promptot, ha
már minden a pendrive-on van. Tehát ha a prompt visszajött, a pendrive
kihúzható. Persze ha valaki írás közben húzza ki a cuccot... nos annak
már a floppy használata sem sikerült. :-)

Ave, Saabi.
Szabolcs Regos
2004-06-21 18:23:39 UTC
Permalink
Post by Also-Antal Csaba
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.
És ha write cache nélkül mountolsz?

Ave, Saabi.
SZOKOVACS Robert
2004-06-21 18:35:43 UTC
Permalink
Post by Szabolcs Regos
Post by Also-Antal Csaba
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.
És ha write cache nélkül mountolsz?
az nem ugyanaz effektive?

Szo
Zs
2004-06-21 20:37:03 UTC
Permalink
Hi!
Post by Also-Antal Csaba
Post by Zs
Az usbmgr futtatja az umount scriptet. A script pedig jól lefut
és ki is csatolja a pendrive-ot, legalábbis nálam.
No persze ha belépsz a könyvtárba, akkor nem fog sikerülni,
de ez ellen floppy esetén sem lehetett védekezni...
de amit nem irt ra rogton es nem csinalsz sync-et kihuzas elott az elvesz.
A csatolásnál megadod opcióként a sync, dirsync paramétereket.
Innen kezdve amit írtál rá, az nem cachelődik, hanem húz kifelé
a pendrive-ra - gyakorlatilag a write() hívás csak akkor tér vissza,
ha az írás fizikailag valóban megtörtént.

Innen kezdve másoltál rá, a másolásnak ahogy vége, kihúzhatod
a ketyerét és nem lesz adat vesztésed.

Zsolt
Also-Antal Csaba
2004-06-22 05:05:30 UTC
Permalink
Post by Zs
Innen kezdve másoltál rá, a másolásnak ahogy vége, kihúzhatod
a ketyerét és nem lesz adat vesztésed.
na ez az. ha valamilyen probibol masolsz es a juzer kikapja, holott a
128M akarmi meg nem ment fel akkor gaz van. persze kikaphatja akkor is
ha kezzel kell umount-olni, de akkor mar az o sara.

kis file-oknal viszont jo megoldas lehet.

udv
Csaba
Zs
2004-06-22 07:31:08 UTC
Permalink
Hi!
Post by Also-Antal Csaba
Post by Zs
Innen kezdve másoltál rá, a másolásnak ahogy vége, kihúzhatod
a ketyerét és nem lesz adat vesztésed.
na ez az. ha valamilyen probibol masolsz es a juzer kikapja, holott a
128M akarmi meg nem ment fel akkor gaz van. persze kikaphatja akkor is
ha kezzel kell umount-olni, de akkor mar az o sara.
A penen szokott lenni LED, ami hajlamos villogni, amikor írják vagy
olvassák a pent. Ha az user olyan láma, hogy ennek ellenére kihúzza...

Ha meg még sincs LED, akkor a program írja ki, hogy dolgozik a penre,
amikor meg befejezte, írja ki, hogy kihúzható a ketyere.

... de ez már kezd nem ++ téma lenni...

Zsolt
Gabor HALASZ
2004-06-16 14:52:41 UTC
Permalink
Post by Purszki Csaba
Elore is koszonom az otleteket,
usmbgr
--
Gabor HALASZ <***@freemail.hu>
Keszthelyi Andras
2004-06-21 10:30:42 UTC
Permalink
...és arról még nem volt szó, hogy az usb meghajtó egyes
alaplapok és kernel-verziók (kb. 2.4.18-, nem tudom meddig)
esetén elszáll az eszköz fizikai kihúzásakor, ezt a logban az
"usb driver halted. very bad" vagy valami ehhez hasonló üzenet
jelzi.

Üdvrivalgással:
KEA.

Loading...