hal - pmount - ivman... kłopotów ciąg dalszy [dłuuuugie]
Kamil
kamil.listy w klecza.pl
Nie, 3 Wrz 2006, 19:04:00 CEST
Witam.
Ja już nie mam z tym siły. Próbowałem już chyba wszystkiego ale nie umiem
dojść do ładu z tym.
Co chcę osiągnąć.
1. Włożona do napędu płyta powinna zostać automatycznie zamontowana (w sumie
mogę już z tego zrezygnować byleby kolejne punkty zadziałały)
2. Po zamontowaniu cdrom'u, usbdisk, czy aparatu (nie ważne czy mount, pmount
i czy przez automounter'a) wszyscy użytkownicy mają dostęp do tego
urządzenia. Zarówno mogą odmontować jak mają pełne rw.
3. Fajnie jeśli jeszcze będzie działać auto odmontowywanie przez przycisk
eject
I )
Na początek standardowe AC:
pmount-0.9.11-2
hal-0.5.7.1-1
1. Znalazłem tylko autofs ale go nie testowałem (może powinienem?). Wszyscy
mówią o ivman'ie itp. ale jego nie ma w ac więc tu sobie odpuszcze.
2.
a) Klikam sobie w kde ikonkę urządzenia no i faktycznie montuje ładnie.
Niestety przechodzę na drugiego użytkownika i poza odczytem nie mam żadnych
uprawnień jeśli chodzi o ten zasób. Inni użytkownicy nie mają prawa zapisu.
Inni użytkownicy nie mogą odmontować tego zasobu. Dodam jeszcze, że
próbowałem dodać własną regułkę do hal'a która by pozwoliła chociaż
odmontowywać . Utworzyłem plik /etc/hal/fdi/policy/10-storage-policy.fdi o
takiej zawartości:
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<!-- Default policies merged onto computer root object -->
<device>
<match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
<merge key="storage.policy.default.mount_option.users"
type="bool">true</merge>
</match>
</device>
</deviceinfo>
Niestety pmount nic sobie z tego nie robi. Jak można wyczytać w man'ie:
"The device will be mounted with the following flags:
async,atime,nodev,noexec,noauto,nosuid,user,rw"
Co do zapisu to zauważyłem, że tworzone katalogi przez pmount'a należą do
użytkownika który zamontował urządzenie. Grupą natomiast to root.
"-r-xr-xr-x 1 kamil root". Niestety nie wiem co za to odpowiada i jak to
zmusić aby katalogi były tworzone na zasadzie ugo+rw i np. root:disk
PYTANIE 1: Co zrobić aby inni mieli prawo do zapisu?
PYTANIE 2: Co zrobić aby inni mogli odmontować zasób?
b) Mam środowisko 64bit'owe z chrootem 32bitowym. Aby całość jakoś scalić
stworzyłem sobie simlink z /var/chroot/i686/media do /media. Niestety o ile
pmount zamountuje ten zasób o tyle odmontowanie już nie działa:
"Błąd: punkt montowania /var/chroot/i686/media/disk nie jest poniżej /media/"
Próbowałem dodać w hal kolejną regułkę a mianowicie:
<merge key="storage.policy.default.mount_root"
type="string">/var/chroot/i686/media</merge>
ale niestety i to nie działa. Dalej montuje w /media. Ustawiłem np. też
testowo /media2 i utworzyłem taki katalog ale niestety nic się tam nie
zamontowało. Dalej wszystko się montowało w /media.
PYTANIE 1: Czy to bug pmount'a, że wyrzuca taki dziwny błąd w wypadku
gdy /media to simlink?
PYTANIE 2: Gdzie/jak mogę zmienić w tej wersji hal'a domyślny katalog /media
na inny? A może to bug po stronie pmount'a, że nie respektuje ustawień hal'a?
II) Teraz lekka modyfikacja. Zbudowałem i doinstalowałem ivman'a. Powiedzmy,
że /media to normalny katalog czyli tak jak ma większość. Ivman to fajna
sprawa na automontowanie. Niestety i on ma ogromne wady.
a) Wkładam płytkę/usbdisk. Płytka/usbdisk zostaje wykryta. Chwilkę póżniej
automatycznie zamontowana. Fajna sprawa bowiem automatycznie mam dostęp do
danych jak i z kde tak i z konsoli. Niestety ivman montuje przy użyciu
wspomnianego pmounta który tworząc katalog tworzy go dla użytkownika który
zamontował zasób. Nie trudno się domyśleć co się dzieje. Użytkownicy mają
tylko ro do zasobu i nie mogą go odmontować.
b) Nie rozumiem czemu ktoś wrzucił do ivman'a linijkę:
`echo 0 > /proc/sys/dev/cdrom/lock` która powoduje odblokowanie tacki cdrom'u.
Psuje to funkcjonalność wbudowaną w najnowsze kde. Najnowsze kde potrafi
przechwycić naciśnięcie przycisku eject i wywołanie zdarzenia odmontowania
płytki. Ivman niestety to psuje. Poradziłem sobie z tym wycinając ze źródła
tą nieszczęsną linijke i przebudowując pakiet. Teraz działa super.
c) Próbowałem zmusić ivman'a do przechwycenia sygnału naciśnięcia przycisku
eject w cdromie, tak jak to robi kde, zmieniając jego ustawienia. Niestety
bez skutecznie. Niby wszystko jest jak trzeba i powinno działać ale niestety
nie działa. Coś ivman nie chce mi zareagować na to zdarzenie.
PYTANIE 1: Być może jest inna, "normalna", droga na wyłączenie w ivman'ie
opcji odblokowywania tacki. Ktoś wie jak?
PYTANIE 2: Komuś się udało zmusić ivman'a do reakcji na zdarzenie naciśnięcia
przycisku w cdrom'ie?
III)
downgrade do hal-0.5.5.1-4
poldek -e pmount (hal udostępnia fstab-sync)
1. Zauważyłem, że działają reguły dodane przeze mnie do
/etc/hal/fdi/policy/10-storage-policy.fdi.
a) Mogę zmienić media_root na inny ale teraz mi tego juz nie potrzeba.
fstab-sync nie przeszkadza, że /media to simlink.
b) fstab-sync dodaje opcje mountowania users. Każdy użytkownik może zamontować
i odmontować urządzenie. Przypuszczam, ze to dlatego, że nie ma pmount'a
który miał swoje własne regułki montowania
2. Niestety dalej nie działa +rw dla wszystkich użytkowników. fstab-sync
tworzy katalog który należy do użytkownika który zamontował zasób. Narazie
się nie bawiłem w poszukiwania kto za to teraz odpowiada.
3. Przestał działać ivman. Nie wiem dlaczego:/
4. fstab-sync wyleciał z hal'a. Jest to rozwiązanie przestarzałe. Nie wiem
wiec czy jest sens bawić się w dokonfigurowywanie go skoro i tak kiedyś będę
musiał upgrejdować do nowszego hal'a.
Wnioski jakie mi się nasunęły.
0. Zostaje przy hal 0.5.5 bo przynajmniej jak nie będę mógł zapisać danych na
nośnik bo zamontował go inny użytkownik to sobie go odmontuje i zamontuje
jako własny;)
1. Pmount psuje bardzo dużo.
a) narzuca swoje własne opcje montowania nie pozwalając wybrać własnych (np.
users)
b) nie mogę ustawić kto ma być właścicielem zamontowanego zasobu i jakie mają
być prawa do tego katalogu (chyba, że się mylę to wtedy baaaardzo proszę o
poprawienie mnie). Choć może tu ma coś hal do gadania. Nie wiem. W każdym
bądź razie nie jest możliwe przez to danie dostępu do zasobu wszystkim
użytkownikom.
c) nie podobają mu się simlinki
2. Ivman psuje funkcjonalność kde reagowania na naciśnięcie eject w cdrom'ie.
Rozwiązaniem jest wyrzucenie linijki odblokowującej tackę systemową
3. Ivman nie umie przejąć zdarzenia naciśnięcia przycisku eject w cdromie.
4. Ogólnie całe to automatyczne montowanie zasobów jest moim zdaniem w
powijakach... wielka szkoda zwłaszcza, że niby wszystko jest. Ból w tym, że
nie jest to poskładane do kupy jak trzeba. Ja narazie daje sobie z tym spokój
i tak jak mówiłem zostje narazie przy hal 0.5.5
Dobra to tyle. Może komuś się przyda. Może ktoś podeśle mi jakieś wskazówki.
Kto wie może komuś nawet to działa jak ja bym chciał aby działało:]
--
Pozdrawiam, Kamil
Więcej informacji o liście dyskusyjnej pld-users-pl