1 (edytowany przez astec 2008-07-19 22:17:01)

Temat: Montowanie pod przyciskiem ezsetup

Witam. Wiem ze istnieje zmodyfikowana wersja kamikaze wlasnie z tą fukcją, ale ja juz nie chce przeinstalowywac tych wszystkich pakietów, dlatego prosze o pomoc. Jak to zrobic? I czy mozna tak bez karnie odmontowywac dysk? czy trzeba zatrzymywac wszyskie "aplikacje" np. ftp, sambe, ctorrenta czy ctcs?

Jeszcze jedno pytanie, czy można całkowicie wyłaczyc upload w ctcs? Prawde mówiac wiecej uploaduje niz sciagam, z moja predkoscia lacza...

2

Odp: Montowanie pod przyciskiem ezsetup

Trzeba zatrzymać wszystkie aplikacje, inaczej nie da się odmontować.

A skrypt jest bardzo prosty - do umieszczenia w  pliku /etc/hotplug.d/button/01-button

     if [ "$BUTTON" = "ses" ] ; then
      if [ "$ACTION" = "pressed" ] ; then
        (tu zatrzymać aplikacje uruchomione)
        umount /dev/sda1 (itd)
      fi
     fi
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez astec 2008-07-19 22:42:53)

Odp: Montowanie pod przyciskiem ezsetup

a czy gdy wcisne go ponownie? zamontuje mi ponownie dysk? wiem, to powinna byc kwestia skryptu  automontowania ale nie moge sobie z nim dac rady tzn. w /etc/hotplug.d/usb mam tylko plik 10-usb-storage a to chyba nie w nim mam dopisac automontowanie?

chodzi mi konkretnie o automontowanie tak jak tutaj: http://openlinksys.info/forum/viewthrea … post_14946
jak mam to zrobic? skoro nie mam pliku 01-mount , mam tylko 10-usb-storage.  Przez to nie moge takze zapisywac plików na dysk przez sambe

4

Odp: Montowanie pod przyciskiem ezsetup

Tyle że ten skrypt z linku uruchamia się na włożenie urzadzenia do usb. Ty chcesz pod przycisk, więc inaczej.

Środkowa linia:umount /dev/sda1 (itd) - wywal to, a napisz coś takiego: sprawdź czy dysk jest zamontowany, tak nie to zamontuj jak tak to odmontuj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Montowanie pod przyciskiem ezsetup

świetnie byloby gdyby odmontowywal sie z przycisku a montowal sie automatycznie po wlazeniu wtyczki usb. Tylko jak to ugrysc z tym brakujacym plikiem 01-mount w /etc/hotplug.d/usb/

6

Odp: Montowanie pod przyciskiem ezsetup

Przecież w openwrt go masz...

mount_storage() {
    cd /dev/discs
    for dev in disc*; do
        [ -f /tmp/.${dev}_id ] || {
            echo ${INTERFACE}${PRODUCT} > /tmp/.${dev}_id
            mount | grep /mnt/${dev} || (
                [ -d /mnt/. ] || {
                    mkdir -p /tmp/mnt
                    ln -s /tmp/mnt /
                }
                cd $dev
                for part in part*; do
                    if [ $part != "part*" ] ; then
                        path=/mnt/${dev}_${part##*part}
                        mkdir -p ${path}
                        mount ${part} ${path}
                    fi
                done
            )
        }
    done
}

umount_storage() {
    for tmp in /tmp/.*_id; do
        id=$(cat $tmp 2>&-)
        [ "${INTERFACE}${PRODUCT}" = "$id" ] && {
            rm -f $tmp
            disc=${tmp##*disc}
            disc=${disc%%_id}
            for disc in /mnt/disc${disc}*; do
                umount -f $disc || umount -l $disc
            done
        }
    done
}

[ -f /proc/bus/usb/devices ] || mount -t usbfs none /proc/bus/usb

case "$ACTION" in
    add)
        case "${INTERFACE%%/*}" in
            8) mount_storage ;;
        esac
    ;;
    remove)
        case "${INTERFACE%%/*}" in
            8) umount_storage ;;
        esac
    ;;
esac
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Montowanie pod przyciskiem ezsetup

Dzieki Cezary za skrypt automontowania, ale niestety nie umiem dostosowac go do siebie. Prosze Cie o pomoc, wybacz ale systemy unixowe do dla mnie czarna magia, a dla ciebie to pewnie pestka smile
Montuje dysk wg. opisu z openwrt.pl

mkdir /hdd
swapon /dev/discs/disc0/part1
mount -t ext3 /dev/discs/disc0/part2 /hdd

wrzucilem te polecenia do startupa (przez webif) i tak montuje mi sie dysk przy starcie routera, ale jak to zmienic w tym skrypcie ktory mi podales? probowalem zamienic foldery /mnt/..... na /hdd (bo tam chce zeby mi montowalo dysk) ale niestety mi to nie dziala, czy trzeba tam gdzies wpisywac ID dysku? Czy to tego skryptu mozna dopisac polecenia uruchamiajace deamony wgrane w routerze? Chodzi mi o to zeby miec juz pełen automat, wkładam wtyczke do usb, dysk sie montuje i uruchamiaja sie deamony np. torrent, ftp, samba.

8

Odp: Montowanie pod przyciskiem ezsetup

To co powyżej zapisujesz pod /etc/hotplug.d/usb/01-mount. Później chmod 777 /etc/hotplug.d/usb/01-mount i to wszystko. Musi automatycznie montować (ale tylko partycje, ten skrypt nie wykrywa czy jest to partycja z systemem plików czy swap).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Montowanie pod przyciskiem ezsetup

Próbowałem zrobić to odmontowywanie przyciskiem ezsetup, ale za diabła nie działa.

Tak wygląda zawartość pliku 01-button

root@WeDwoje:~# vi /etc/hotplug.d/button/01-button
if [ "$BUTTON" = "ses" ] ; then
    if ["$ACTION" = "pressed" ] ; then
    /etc/init.d/vsftpd stop
    /etc/init.d/samba stop
    /etc/init.d/transmission stop
    umount /hdd
    fi
fi

nie znam kompletnie składni skryptowej,  nie wiem czy zatrzymania dobrze wywołałem. Dość napisać, że po wciśnięciu przycisku, kompletnie nic się nie dzieje.
Czy istnieje sposób na wywołanie skryptów z wyświetleniem błędów przetwarzania ?

I jeszcze jedno? Czy istnieje możliwość automatycznego odmontowywania hdd przy reboocie? Bo przy każdym reboocie transmission sprawdza dane na dysku, co jest dosyć mocno obciążające.

10

Odp: Montowanie pod przyciskiem ezsetup

chmod 755 /etc/hotplug.d/button/01-button?

Zamiast tych poleceń w środku zrób po prostu echo "aaa" >> /tmp/test.txt

Jak po naciśnięciu przycisku pojawi się taki plik (/tmp/test.txt) to znaczy że działa.


Każdy klient torrentów tak się zachowuje - przy uruchomieniu jeżeli ma już dane to weryfikuje poprawność części - bo inaczej jak miałby widzieć co ma dalej ściągać.

(poza zapisaniem tej informacji do zewnętrznego pliku, co jest bez sensu, bo np. ja często przenoszę dane pomiędzy netbookiem a ruterem żeby dalej kontynuować ściąganie)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Montowanie pod przyciskiem ezsetup

Dzięki za odpowiedź.

Nie działa, chmody oczywiście ustawiłem, wcześniej nawet na 777, przestawiłem na 755, choć to nie ma znaczenia.

Czy w logu nie powinno się zapisać wciśnięcie przycisku?? Nawet nie obsłużone??  Tylko gdzie to sprawdzić ?  Może trzeba jakiś pakiet doinstalować, aby nasłuchiwał stanu przycisku ?

Z tymi klientami torrentowymi to może racja, choć ja pod windą (utorrent) nie zauważyłem takiego efektu, chyba że po awarii zasilania. Ale na zdrowy rozum masz rację.

12

Odp: Montowanie pod przyciskiem ezsetup

Wiesz, co program to robi to inaczej, więc stwierdzenie "bo utorrent robi tak a nie inaczej" w stosunku do innego programy jest nie na miejscu smile

zrób to echo bez niczego, bez tych ifów na początku. Zobacz czy w ogóle Ci się woła skrypt.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: Montowanie pod przyciskiem ezsetup

Wiem, że każdy program robi to po swojemu, tak tylko napisałem. Z drugiej stony, nie mam doświadczeń z transmission, więc nie dziwne, że trochę patrzę przez pryzmat tego co znam smile

Nadal nie działa. Czy na 100% 01-button to jest do ezsetup (ten dłuższy)? Bo jest jeszcze mały przycisk - reset. I może to ma znaczenie że mój asus to gp v2 ??

14

Odp: Montowanie pod przyciskiem ezsetup

Przyznawaj się do takich rzeczy. w v2 nie wiem czy to działa. Mapowanie przycisków jest prawidłowe dla v1. Dla v2 - nie mam pojęcia.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Montowanie pod przyciskiem ezsetup

Sprawdziłem w źródłach - v2 też ma mapowane ses i reset wiec powinno działać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Montowanie pod przyciskiem ezsetup

Przepraszam, pójdę do Częstochowy na kolanach smile

No to nie wiadomo, czemu nie działa ? Jak zrozumiałem teraz, po wciśnięciu któregokolwiek z przycisków przetwarzany jest plik 01-button ? I dopiero tam warunek sprawdzał który to przycisk ? Więc jak teraz mam utworzenie pliku, bez żadnych warunków, powinien zostać utworzony plik, niezależnie, który przycisk wcisnę ? Reset nie jest obsługiwany przez Kamikaze ?

17

Odp: Montowanie pod przyciskiem ezsetup

w v2 jest. Jest tak jak piszesz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Montowanie pod przyciskiem ezsetup

Chodziło mi oto, że nie jest mu przypisana żadna funkcja przez Kamikaze - np.: reboot, albo coś równie przykrego w skutkach.

19 (edytowany przez 4rturr 2009-06-11 23:54:15)

Odp: Montowanie pod przyciskiem ezsetup

Witam

#!/bin/sh
if [ "$BUTTON" = "ses" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
        killall rtorrent
        killall screen
        killall smbd
        umount /mnt/usbdrive
        sdparm --command=stop /dev/sda
        fi
fi

Oto mój skrypt, u mnie działa. Różni się własciwie tylko pierwszą linijką. Może tu leży problem?
I sprawdz jeszcze czy masz zainstalowany pakiet kmod-button-hotplug.

Robiłem dokładnie tak:

mkdir -p /etc/hotplug.d/button
touch /etc/hotplug.d/button/01-button
chmod 777 /etc/hotplug.d/button/01-button
vi /etc/hotplug.d/button/01-button

i do 01-button wklejasz skrypt ktory podałem wczesniej

20 (edytowany przez Jahuu 2009-06-13 01:05:52)

Odp: Montowanie pod przyciskiem ezsetup

No fajnie, tylko nie mam w pakietach kmod-button-hotplug. Najbliższy po nazwie to hotplug2  ??


Cezary, czy brak pierwszej linii "#!/bin/sh" może mieć znaczenie (z nią też nie działa - pytanie na przyszłość)

Edyta: kmod-button-hotplug nie mam ani w pakietach zainstalowanych, ani w tych do zainstalowania (po update)

21

Odp: Montowanie pod przyciskiem ezsetup

w/w pakiet jest dla jąder 2.6, Ty zapewne masz 2.4 - ale bez tego tez ma chodzić.

Ta pierwsza jest żeby shell wiedział jakim interpreterem wykonać dany plik. Ale i tak bez tego działało.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22 (edytowany przez 4rturr 2009-06-13 12:03:16)

Odp: Montowanie pod przyciskiem ezsetup

A gdyby ktos chciał zrobić przycisk działający w dwóch trybach tj za pierwszym naciśnięciem odmontuje dysk, a za drugim zamontowywuje ponownie to sprzedaje patent:

Do /sbin/usb-storage dopisujemy

i=0
while [ $i -le 10 ]; do
        logger "waiting on usb drive $i ..."
        i=$(($i+1))
        cd /sys${DEVPATH}
        for blk in `find host* -type d 2>/dev/null`; do
                [ -d /sys/${DEVPATH}/${blk}/block/ ] && {
                        cd
                        for disc in `find /sys/${DEVPATH}/${blk}/block -name "sd
                                sleep 2
                                cd $disc
                                for node in `find . -name "sd*" | cut -d "/" -f2
                                        echo "mounting /dev/${node} on /mnt/usbd
                                        mkdir -p /mnt/usbdrive
                                        mount /dev/${node} /mnt/usbdrive
                 TO NALEZY DOPISAC ->   touch /tmp/mount
                                        i=20
                                done
                        done
                }
        done
        sleep 1
done

A następnie do /etc/hotplug.d/button/01-button wklepujemy

#!/bin/sh

if [ "$BUTTON" = "ses" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
                if [ -e /tmp/mount ] ; then
                        rm /tmp/mount
                        #Tutaj oczywiscie nalezy skilować wszystkie inne aplikacje kozystające z dysku
                        #mozna je wytropić poleceniem lsof /dev/sda1
                        #U mnie były to tylko te trzy
                        killall rtorrent
                        killall screen
                        killall smbd
                        umount /mnt/usbdrive
                        sdparm --command=stop /dev/sda
                else
                        mount /dev/sda1 /mnt/usbdrive
                        sleep 1
                        touch /tmp/mount
                fi
        fi
fi

23

Odp: Montowanie pod przyciskiem ezsetup

A nie prościej po prostu sprawdzić czy /mnt/usbdrive jest zamontowany zamiast /tmp/mount? (chociaż tak oczywiście też działa)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Montowanie pod przyciskiem ezsetup

Naturalnie, można, ale to z /tmp/mount mi jakoś pierwsze do głowy przyszło wink