1 (edytowany przez wnekus 2015-01-29 10:30:34)

Temat: Hotplug USB nie działa na BB WNDR3700v4

Witam

Mam problem z przypisaniem urządzenia USB do określonego aliasu. Mimo wielu prób, funkcja nie działa wcale, brak jakiejkolwiek reakcji na podłączenie urządzenia według skryptu, bo za każdym razem przypisywane urządzenie ma inny adres. Próbowałem ze skryptami znalezionymi w necie, oraz według poradnika http://eko.one.pl/?p=openwrt-linkidoportowszeregowych  .  Czy trzeba coś jeszcze zmienić w systemie , czy mam coś namieszane w konfiguracji ??

PRODID=”403/6001/600"
    SYMLINK=”ftdi_1”

    if [ “${PRODUCT}” = “${PRODID}” ];
    then if [ “${ACTION}” = “add” ];
    then
    DEVICE_NAME=$(ls /sys/$DEVPATH | grep tty)
    if [ -z ${DEVICE_NAME} ];
    then logger -t Hotplug Warning DEVICE_NAME is empty
    exit

    fi
    logger -t Hotplug Device name of cp210 is $DEVICE_NAME
    ln -s /dev/$DEVICE_NAME /dev/${SYMLINK}
    logger -t Hotplug Symlink from /dev/$DEVICE_NAME to /dev/${SYMLINK} created
    fi

    fi
    if [ “${PRODUCT}” = “${PRODID}” ];
    then if [ “${ACTION}” = “remove” ];
    then rm /dev/${SYMLINK}
    logger -t Hotplug Symlink /dev/${SYMLINK} removed
    fi

    fi

2

Odp: Hotplug USB nie działa na BB WNDR3700v4

Jeżeli to ten skrypt który pokazałeś to źle bo " nie są tym czym powinno. To znaki o całkiem innych kodach.

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

3 (edytowany przez wnekus 2015-01-29 10:47:30)

Odp: Hotplug USB nie działa na BB WNDR3700v4

Ten wyżej ściągnięty z netu, ten od Ciebie i tez nie działa...

#!/bin/sh
    if [ "$DEVTYPE" = "usb_interface" ] && [ "$ACTION" = "add" ]; then
        for tty in /sys/$DEVPATH/ttyUSB*; do
            [ -d "$tty" ] || continue
            OLDD=${tty##*/}

            # to jest E156G
            if [ "x$PRODUCT" = "403/6001/600" ]; then
                NEWD="ftdiusb"${DEVPATH##*.}
                rm /dev/$NEWD
                ln -s /dev/$OLDD /dev/$NEWD
            fi
   
        done
    fi

urządzenie usb zawsze jest pod adresem ttyUSB0 lub ttyUSB1 ale nigdy nie jest pod /dev/ftdiusb

4

Odp: Hotplug USB nie działa na BB WNDR3700v4

Pewnie że nie. if [ "x$PRODUCT" = "x403/6001/600" ]; then jak już. Zmieniasz to patrz co robisz.

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

5

Odp: Hotplug USB nie działa na BB WNDR3700v4

Poprawiłem błąd, dziękuje za jego wskazanie. Zrobiłem reset routera (nie jestem przy nim wiec nie mogę fizycznie wyjąc urządzenia z USB) ale po resecie nadal zapisało się jako ttyUSB0, a w dev brak aliasu.

6

Odp: Hotplug USB nie działa na BB WNDR3700v4

Ok, a teraz powstawiaj sobie logger $OLDD, logger $NEWD logger $PRODUCT pomiędzy linie i zobacz czy się odpala i jakie parametry są faktycznie przekazywane.

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

7 (edytowany przez wnekus 2015-01-29 12:31:07)

Odp: Hotplug USB nie działa na BB WNDR3700v4

Wstawiłem tak jak niżej, brak jakiś dodatkowych zmian w logach, tak jak by w ogóle nie odpalało się po resecie routera, a nie mam możliwości odłączenia fizycznie wiec muszę robić resety.

#!/bin/sh
        if [ "$DEVTYPE" = "usb_interface" ] && [ "$ACTION" = "add" ]; then
       
    logger $PRODUCT

            for tty in /sys/$DEVPATH/ttyUSB*; do
                [ -d "$tty" ] || continue
                OLDD=${tty##*/}
    logger $OLDD
                # to jest E156G
                if [ "x$PRODUCT" = "x403/6001/600" ]; then
                    NEWD="ftdiusb"${DEVPATH##*.}
                    rm /dev/$NEWD
                    ln -s /dev/$OLDD /dev/$NEWD
    logger $NEWD
                fi
       
            done
        fi

8

Odp: Hotplug USB nie działa na BB WNDR3700v4

logger "jestem!"

Wstaw jako drugą linię. Uczyniłeś ten skrypt wykonywalnym?

PS. A co w ogóle podłączasz?

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

9

Odp: Hotplug USB nie działa na BB WNDR3700v4

Mam dwa urządzenia na układach ftdi, po resecie routera czy nawet huba, zmieniają się im adresy, ttyusb0 oraz ttyusb1 i nagle pojawia się ttyusb1 oraz ttyusb2  co wywala cala aplikacje.

Po wstawieniu lini i resecie nadal brak wpisu "jestem".  Co do uczynienia skryptem wykonywalnym nie mam pojęcia, zrobiłem tak jak było w artykule, nic więcej nie robiłem.

10

Odp: Hotplug USB nie działa na BB WNDR3700v4

chmod 777 /etc/hotplug.d/usb/ten_skrypt

Czym fizycznie zrobiłeś ten plik? Jakim edytorem.

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

11

Odp: Hotplug USB nie działa na BB WNDR3700v4

Uprawnienia nadane, reset i nadal bez zmian, brak wpisu w logach.

Plik utworzony edytorem winscp.

12

Odp: Hotplug USB nie działa na BB WNDR3700v4

To otwórz go vi i zobacz czy nie masz ^M na końcach linii

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

13 (edytowany przez wnekus 2015-01-29 13:16:17)

Odp: Hotplug USB nie działa na BB WNDR3700v4

Wiesz co, udało mi się odłączyć fizycznie  urządzenie z USB (zona) i skrypt zadziałał prawidłowo. Zrobił linka który działa.
Ale po resecie routera nadal się nie wykonuje urządzenie dostaje adres ttyusb0. Działa tylko po odpaleniu systemu i podłączeniu nowego urządzenia, ale nie działa po resecie jak urządzenia zostają na magistrali USB. Pod vi plik wyglada idealnie.

14

Odp: Hotplug USB nie działa na BB WNDR3700v4

Pytanie więc czy czasami nie ładujesz samodzielnie modułów przed odpaleniem hotpluga.

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

15 (edytowany przez wnekus 2015-01-29 13:26:48)

Odp: Hotplug USB nie działa na BB WNDR3700v4

A jak to sprawdzić ?? Konfiguracją jest Twój czysty soft , doinstalowane pakiety i nic więcej nie robione w plikach konfiguracyjnych, tylko z luci.. Zauważyłem ze wykrywanie następuje bardzo szybko w logach, praktycznie na samym początku.

16

Odp: Hotplug USB nie działa na BB WNDR3700v4

Wywal z /etc/modprobe.d/ plik z ftdi i ładuj go ręcznie w /etc/rc.local (insmod ftdi...)

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

17

Odp: Hotplug USB nie działa na BB WNDR3700v4

Nie pomogło, wywaliłem dwa pliki z etc/modules.d/ bo modprobe.d nie mam u siebie  i dodałem do etc/rc.local.

Nadal po resecie mam tylko ttyusb0, brak aliasu.

18

Odp: Hotplug USB nie działa na BB WNDR3700v4

I zdarzenie się nie odpala w ogóle?

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

19

Odp: Hotplug USB nie działa na BB WNDR3700v4

Nie przy starcie systemu, ale jak urządzenie zostanie odłączone i ponownie podłączone jest OK.

20 (edytowany przez wnekus 2015-01-29 14:16:25)

Odp: Hotplug USB nie działa na BB WNDR3700v4

Start systemu

Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.230000] usbcore: registered new interface driver usbserial
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.230000] usbcore: registered new interface driver usbserial_generic
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.250000] usbserial: USB Serial support registered for generic
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.350000] usbcore: registered new interface driver ftdi_sio
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.360000] usbserial: USB Serial support registered for FTDI USB Serial Device
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.370000] ftdi_sio 1-1.4:1.0: FTDI USB Serial Device converter detected
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.380000] usb 1-1.4: Detected FT232RL
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.380000] usb 1-1.4: Number of endpoints 2
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.380000] usb 1-1.4: Endpoint 1 MaxPacketSize 16384
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.390000] usb 1-1.4: Endpoint 2 MaxPacketSize 16384
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.390000] usb 1-1.4: Setting MaxPacketSize 64
Thu Jan 29 12:59:36 2015 kern.info kernel: [   34.410000] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0


Ręczne podłączenie USB

Thu Jan 29 13:12:00 2015 user.notice root: jestem!
Thu Jan 29 13:12:00 2015 user.notice root: 403/6001/600
Thu Jan 29 13:12:00 2015 user.notice root: ttyUSB1
Thu Jan 29 13:12:00 2015 user.notice root: ftdiusb0

Po odłączeniu urządzenia automatycznie zmienił mu sie ttyusb0 na ttyusb1

21

Odp: Hotplug USB nie działa na BB WNDR3700v4

Też dzisiaj pokombinowałem trochę z robieniem linków do portów szeregowych. Z tym, że mam podłączone 2 identycznie zgłaszające się interfejsy FTDI oraz modem E398, ale do modemu istotny jest tylko jego drugi interfejs do 3ginfo, bo i tak łączy się przez qmi.
Taki skrypt skleiłem:

#!/bin/sh

if [ "$DEVTYPE" = "usb_interface" ] && [ "$ACTION" = "add" ]; then
   for tty in /sys/$DEVPATH/ttyUSB*; do
       [ -d "$tty" ] || continue
       OLDD=${tty##*/}

       # to jest FTDI
       if [ "x$PRODUCT" = "x403/6001/600" ]; then
          if [ "$(cat /sys/$DEVPATH/../serial | grep A8004Wao 2>/dev/null)" ] ; then 
             NEWD="ttyUSB_FTDI_1"
             rm /dev/$NEWD
             ln -s /dev/$OLDD /dev/$NEWD
          elif [ "$(cat /sys/$DEVPATH/../serial | grep A7037TKB 2>/dev/null)" ] ; then
             NEWD="ttyUSB_FTDI_2"
             rm /dev/$NEWD
             ln -s /dev/$OLDD /dev/$NEWD
          fi
       
       # to jest E398
       elif [ "x$PRODUCT" = "x12d1/1506/0" ]; then
          if [ ${DEVPATH##*.} = "1" ]; then
             NEWD=ttyUSB_3ginfo
             rm /dev/$NEWD
             ln -s /dev/$OLDD /dev/$NEWD
          fi
       fi
   done
fi

if [ "$DEVTYPE" = "usb_interface" ] && [ "$ACTION" = "remove" ]; then
   if [ "x$PRODUCT" = "x403/6001/600" ]; then
      if ! [ -e /dev/ttyUSB_FTDI_1 ]; then rm /dev/ttyUSB_FTDI_1; fi
      if ! [ -e /dev/ttyUSB_FTDI_2 ]; then rm /dev/ttyUSB_FTDI_2; fi
   elif [ "x$PRODUCT" = "x12d1/1506/0" ]; then
      if ! [ -e /dev/ttyUSB_3ginfo ]; then rm /dev/ttyUSB_3ginfo; fi
   fi
fi

Linki do FTDI tworzą się na podstawie serialu interfejsu, a po wyjęciu z portu są kasowane. No i działa to całkiem przyzwoicie poza tym, że skrypt nie odpala się po restarcie routera... hmm

22 (edytowany przez wnekus 2015-01-29 21:17:06)

Odp: Hotplug USB nie działa na BB WNDR3700v4

Mam ten sam problem, ale mam chyba rozwiązanie . Zaraz po starcie systemu, resetuje wszystkie urządzenia usb, i skrypt zaczyna działać.

root@KLONOWA:/dev# usbreset 0835:8501
Resetting USB HID ... ok
root@KLONOWA:/dev# usbreset 0835:8502
Resetting USB HID ... ok