1 (edytowany przez kabal 2010-10-01 18:17:43)

Temat: Włączenie konkretnej diody w WR1043ND - EDIT v2

Witam.

Wymyśliłem sobie smile aby stworzyć/dopisać skrypt który będzie czuwał nad zapaleniem wyszczególnionej diody tylko wtedy gdy zostanie poprawnie zamontowany "konkretny" nośnik USB.

I tak męczę już plik "/etc/init.d/fstab" z różnymi kombinacjami i niestety brak rezultatów. Przykład jednego z wielu wpisów do "/etc/init.d/fstab":

do_mount() {
        local cfg="$1"
        config_mount_by_section "$cfg"
               if mount | grep 'p2p'; then
                   echo "1" > /sys/class/leds/tl-wr1043nd\:green\:qss/brightness
               fi
}

Walczyłem jeszcze z plikiem "/etc/hotplug.d/usb/10-usb" ale również na próżno.
Myślałem nad cronem i np wykonywanie skryptu co 1min ale to się mija z celem.. gdyż bez sensu czekać po podłączeniu nośnika na wykonanie zadania crona.

Ma ktoś jakiś pomysł jak to można rozwiązać ?

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

2

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

No właśnie w hotplugu. Miałeś już działający przykład, czemu go nie wykorzystałeś?

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

3 (edytowany przez kabal 2010-09-14 14:56:22)

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

Cezary napisał/a:

No właśnie w hotplugu. Miałeś już działający przykład, czemu go nie wykorzystałeś?

Dzięki za podpowiedź smile
Stworzyłem nowy plik (/etc/hotplug.d/usb/10-mount) który działa - tyle że w powrotną stronę smile Natomiast nie mogę obejść tego przy podłączaniu dysku... Dysk się troszkę montuje (ja wiem z 5s mu schodzi) a skrypt jest wykonywany zaraz na początku podłączenia dysku i niestety za szybko skrypt jest wykonany. Na próbę dodałem nawet opcję "sleep" ale nic nie pomogło.. wygląda to tak:

#!/bin/sh

checkmount () {
        if mount | grep "p2p"; then
                echo "1" > /sys/class/leds/tl-wr1043nd\:green\:qss/brightness
        else
                echo "0" > /sys/class/leds/tl-wr1043nd\:green\:qss/brightness
        fi
}

case "$ACTION" in
        add)
                checkmount
                ;;
        remove)
                checkmount
                ;;
esac

Jakaś podpowiedź ? smile

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

4

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

Tak się nie da smile jak napisałeś - usb wykonuje się na początku, nie koniecznie jeszcze nosnik/dyskusb/devices jest dostępny. Jak już to zrób to w hotplugu ale na block - tam się montują partycję i tam już wszystko jest.

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

5 (edytowany przez kabal 2010-09-14 14:57:28)

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

Cezary napisał/a:

Tak się nie da smile jak napisałeś - usb wykonuje się na początku, nie koniecznie jeszcze nosnik/dyskusb/devices jest dostępny. Jak już to zrób to w hotplugu ale na block - tam się montują partycję i tam już wszystko jest.

Działa !! cool  Wielkie dzięki Cezary big_smile

Powyższy skrypt przeniosłem do "/etc/hotplug.d/block/" i zmieniłem jego nazwę na "50-mount".


Jeszcze raz dzięki.. miłego popołudnia/wieczorku wink

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

6 (edytowany przez kabal 2010-10-01 18:18:25)

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

Witam ponownie.

Tym razem borykam się z taką sytuacją:
Mam podpiętego do TP-Linka huba 4xUSB . W hubie jeden czytnik micro SD jest wpięty na stałe (extroot i SWAP).
Chcę aby dioda USB była "wyłączona" gdy ten czytnik jest wpięty, ale by zapalała się wtedy gdy inne urządzenie USB jest podpinane do huba. Próbowałem modyfikować skrypt Cezarego w ten sposób:

#!/bin/sh
. /lib/ar71xx.sh

board=$(ar71xx_board_name)

if [ "${board}" == "tl-wr1043nd" ]; then
        D=$(awk '/Manufacturer/ {print $2} ' /proc/bus/usb/devices  | grep -v Linux)
        D2=$(grep -c 000000047593 /proc/bus/usb/devices)
        if [ "x$D" == "x" ]
                echo "0" > /sys/class/leds/tl-wr1043nd\:green\:usb/brightness
        elif [ "$D2" == "1" ] ; then
                echo "0" > /sys/class/leds/tl-wr1043nd\:green\:usb/brightness
        else
                echo "1" > /sys/class/leds/tl-wr1043nd\:green\:usb/brightness
        fi
fi

Niestety powyższy skrypt nie działa jak powinien.. nie mogę sobie z tym poradzić.

"Pomożecie... ??" smile

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

7

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

...
D=$(awk '/SerialNumber/ {print $2} ' /proc/bus/usb/devices  | grep -v "\(ar71xx\|000000047593\)")
...

Reszta bez zmian tak ja w moim skrypcie. Mój hub nie przedstawia serial numbera, ale jeżeli masz taki to po prostu dodaj go do grepa

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

8

Odp: Włączenie konkretnej diody w WR1043ND - EDIT v2

Cezary napisał/a:
...
D=$(awk '/SerialNumber/ {print $2} ' /proc/bus/usb/devices  | grep -v "\(ar71xx\|000000047593\)")
...

Reszta bez zmian tak ja w moim skrypcie. Mój hub nie przedstawia serial numbera, ale jeżeli masz taki to po prostu dodaj go do grepa

...no tak.. Działa... przecież to było takie oczywiste... i proste.
A ja tyle kombinowałem.. smile

Ponownie dzięki Cezary

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+