Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Пропадает USB ethernet после перезагрузки

    Scheduled Pinned Locked Moved Russian
    22 Posts 4 Posters 1.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • werterW
      werter
      last edited by werter

      Добрый.

      @he11kern said in Пропадает USB ethernet после перезагрузки:

      Другой возможности подключить вторую сетевую карту нет ((

      Есть возможность.
      Практически любая ви-фи мыльница, перешитая в Openwrt\dd-wrt умеет VLAN.
      4pda в помощь. Воспользуйтесь.

      H 1 Reply Last reply Reply Quote 1
      • H
        he11kern @werter
        last edited by

        @werter , собственно я и делаю такую мыльницу(мой домашний роутер). В качестве железки atomic pi, но мне нужно ещё один порт для lan.

        1 Reply Last reply Reply Quote 0
        • werterW
          werter
          last edited by werter

          @he11kern
          Интересная железка. Прямо с амазона заказывали?

          Есть ли возможность каким то образом делать reset USB порту??

          Пф - это 11-я бзд. Можно засунуть в Cron (пакет присутствует в пф - надо только установить) и добавить в cron что-то типа:

          @reboot sleep 10 ; /root/reset_usb.sh
          

          На debian-е делал так для передергивания usb:

          nano /root/reset_usb.sh

          # This will reset all of USB1/2/3 attached ports
          # https://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line/
          for i in /sys/bus/pci/drivers/?hci????/*:* ; do
            [ -e "$i" ] || continue
            echo "${i##*/}" > "${i%/*}/unbind"
            echo "${i##*/}" > "${i%/*}/bind"
          done
          

          Заведется ли на пф - я хз. Или в гугле - > reset usb ports freebsd 11

          1 Reply Last reply Reply Quote 1
          • H
            he11kern
            last edited by

            @werter said in Пропадает USB ethernet после перезагрузки:

            Интересная железка. Прямо с амазона заказывали?

            Да, оттуда. Сейчас цена ещё интереснее всего 35 баксов. Я брал за 50.

            1 Reply Last reply Reply Quote 0
            • werterW
              werter
              last edited by werter

              И корпус с БП оттуда?
              Для антенн разъем стандартный?
              Пф видит ви-фи?

              Зы. В БИОС энергосбережение для юсб откл? Я бы откл.

              Зы2. https://befinitiv.wordpress.com/2014/02/02/hacking-per-port-power-switching-to-an-usb-hub-2/

              H 1 Reply Last reply Reply Quote 0
              • H
                he11kern @werter
                last edited by he11kern

                @werter , корпус на 3d принтере напечатал БП на али купил и еще один на местной барахолке. там нужно всего 5 вольт 3 ампера

                Антенны для Wi-FI,Bluetooth имеют стандартный разьем, но модуль Wi-Fi там не очень.

                Статью с аппаратным решением для ресета портов тоже находил. но не хотелось бы городить этот огород. можно тогда и на GPIO самой платы такое сделать.
                PF видит карточку. но она совсем дно - [RT5572]

                Bios на этой мамке совсем простой. нет таки пунктов.

                Вечером буду ваш вариант с reset_usb.sh пробовать.

                (https://www.mediatek.com/products/broadbandWifi/rt5572)

                P.S. Atomic Pi FAQ

                1 Reply Last reply Reply Quote 0
                • werterW
                  werter
                  last edited by werter

                  @he11kern
                  По вашей ссылке есть ветка на реддите. Попробуйте спросить про юсб там
                  https://www.reddit.com/r/Atomic_Pi/

                  но модуль Wi-Fi там не очень.

                  Два диапазона - уже неплохо.

                  1 Reply Last reply Reply Quote 0
                  • H
                    he11kern
                    last edited by

                    Так и не получилось управлять питанием порта. Пытаюсь сделать через скрипт и earlycmd, но вот в чем проблема. Не работает earlycmd когда система вошла в режим ассайна интерфейсов. Тупо не догрудается до его вызова.((

                    1 Reply Last reply Reply Quote 0
                    • werterW
                      werter
                      last edited by werter

                      Добрый.
                      @he11kern

                      Cron же есть. Зачем earlycmd ?
                      Скрипт, что давал выше не работает? Что выдает при выполнение bash -x /путь-до-скрипта ?

                      1 Reply Last reply Reply Quote 0
                      • H
                        he11kern
                        last edited by

                        @werter ,

                        Упрваление USB устройствами на FrreeBSD делается через команду usbconfig,

                        я пробовал

                        #disable 
                        usconfig -d ugen0.1 set_config 255  
                        #enable
                        usconfig -d ugen0.1 set_config 0
                        

                        Это не решает мою проблему. Причем проблема проявляется через раз, хватает презагрузки для ее решенияю.

                        В качестве альтернативы думал написать скрипт и поставить на загрузку системы. вычитал что скрипт пожно выполнить через shellcmd,earlyshellcmd параметры конфига config.xml раздела system.

                        провернул эксперимент, и увы shellcmd,earlyshellcmd стартует тольок после успешной загрузки системы, то есть в самом конце.

                        но у меня другая проблема, система говорит что конфиг не валиден и предлагает опять занятся настройкой интерфейсов, то есть до успешной загрущзки не доходит ((

                        Вот пример скрипта /home/check_if_reboot_need.sh

                        #!/bin/sh
                        IP=$(usbconfig list | grep "ASIX Elec. Corp. AX88179" | cut -c5-7 )
                        echo "current usb :" "$IP"
                        if [ -z "$IP" ]; #if empty
                        then reboot
                        fi
                        

                        #set as runnable

                        chmod +x /home/check_if_reboot_need.sh
                        
                        1 Reply Last reply Reply Quote 0
                        • werterW
                          werter
                          last edited by

                          @he11kern
                          Попробуйте на реддите спросить. Там ветка pfsense есть.

                          1 Reply Last reply Reply Quote 0
                          • K
                            Konstanti
                            last edited by

                            @he11kern

                            Здр

                            earlyshellcmd
                            Will run the command specified at the beginning of the boot process.

                            С этим параметром скрипт отрабатывает до загрузки PFSense

                            H 2 Replies Last reply Reply Quote 0
                            • H
                              he11kern @Konstanti
                              last edited by

                              @Konstanti , похоже что нет(( скрипт не срабатывает когда система не догрузилась.

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Konstanti @he11kern
                                last edited by

                                @he11kern

                                Врать не буду
                                Но у меня скрипт с созданием виртуальных интерфейсов ( эксперимент) отрабатывает до загрузки pfsense . А вот уже потом ,в процессе загрузки, pf им уже присваивает ip адреса .

                                Что делает Ваш скрипт ?

                                1 Reply Last reply Reply Quote 0
                                • H
                                  he11kern
                                  last edited by

                                  Ребутит систему если а usb устройствах нет сетевухи.

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    he11kern @Konstanti
                                    last edited by

                                    @Konstanti, все таки вы были правы, я исправил размещение скрипта на /usr/local/etc/rc.d/check_if_reboot_need.sh, прописал полный путь в

                                    <earlyshellcmd>/usr/local/etc/rc.d/check_if_reboot_need.sh</earlyshellcmd>
                                    

                                    и все заработало.
                                    Костыль конечно, но вроде работет как надо. Буду тестировать теперь это решение. Можно смело покупать Atomic Pi, он теперь полностью поддердживается))

                                    P 1 Reply Last reply Reply Quote 1
                                    • P
                                      pigbrother @he11kern
                                      last edited by pigbrother

                                      @he11kern said in Пропадает USB ethernet после перезагрузки:

                                      Можно смело покупать Atomic Pi, он теперь полностью поддердживается))

                                      Правильнее, наверное, сказать что вы победили (?) проблему Atomic Pi+pfSense+edimax eu-4306.
                                      Вполне вероятно, что с другим usb ethernet такой проблемы бы и не возникло. Хотя, IMHO, usb ethernet - не лучшее решение, хотя в вашем случае особой альтернативы, кроме VLAN, пожалуй, и нет.

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        he11kern
                                        last edited by

                                        Эта проблема есть и с другим оборудованием, я пробовал ставить в этот порт usb wifi, ведет себя так же.

                                        P 1 Reply Last reply Reply Quote 0
                                        • P
                                          pigbrother @he11kern
                                          last edited by

                                          @he11kern said in Пропадает USB ethernet после перезагрузки:

                                          Эта проблема есть и с другим оборудованием

                                          Вероятно - особенность USB на Atomic Pi

                                          1 Reply Last reply Reply Quote 1
                                          • werterW
                                            werter
                                            last edited by werter

                                            Добрый.

                                            @he11kern
                                            Все же правильнее не ребутить.

                                            Как я вижу это дело:
                                            Проверить "наличие" IP на свистке -> если нет, то откл. usb -> пауза -> вкл. usb -> пауза -> проверить "наличие" IP на свистке

                                            И так в цикле на N-е кол-во опыток. И только после делать ребут. Иначе можно железку ребутами "залюбить" (

                                            Зы. Лучше в скрипте указывать или PATH=... или полные пути к командам usbconfig и др.

                                            Зы2. Попробуйте http://wiki.lissyara.su/wiki/Usbconfig

                                            1. "Жесткий" вариант. Будет дергать питание usb, пока на свистке IP не появится.

                                            Сперва узнаем ID usb хаба через usbconfig

                                            #!/bin/sh
                                            IP_ADDR=$(/путь/usbconfig list | grep "AX88179" | cut -c5-7)
                                            while [ -z "$IP_ADDR" ]
                                            do
                                              /путь/usbconfig -d <ID-usb-хаба> set_config 255
                                              /путь/sleep 5
                                              /путь/usbconfig -d <ID-usb-хаба> set_config 0
                                              /путь/sleep 5
                                              IP_ADDR=$(/путь/usbconfig list | grep "AX88179" | cut -c5-7)
                                            done
                                            

                                            или (в linux такое работает, как в bsd - я хз)

                                            #!/bin/sh
                                            while ! /путь/usbconfig list | grep "AX88179" | cut -c5-7
                                            do
                                              /путь/usbconfig -d <ID-usb-хаба> set_config 255
                                              /путь/sleep 5
                                              /путь/usbconfig -d <ID-usb-хаба> set_config 0
                                              /путь/sleep 5
                                            done
                                            
                                            1. Вариант на определенное кол-во попыток:
                                            #!/bin/sh
                                            counter=0
                                            while [ $counter -lt 5 ]
                                            do
                                              IP_ADDR=$(/путь/usbconfig list | grep "AX88179" | cut -c5-7)
                                              if [ -z "$IP_ADDR" ]
                                              then
                                                /путь/usbconfig -d <ID-usb-хаба> set_config 255
                                                /путь/sleep 5
                                                /путь/usbconfig -d <ID-usb-хаба> set_config 0
                                                /путь/sleep 5
                                              else
                                                exit 0
                                              fi
                                              counter=$(expr $counter + 1)
                                              [ $counter -ge 5 ] && /путь/reboot
                                            done
                                            

                                            За правильность синтаксиса не ручаюсь - проверяйте.

                                            Зы. В IP_ADDR=... лучше awk пользовать https://www.lissyara.su/doc/programming/awk/ . Получается на 1 команду меньше:

                                            IP_ADDR=$(/путь/usbconfig list | awk '/AX88179/ {print $<номер-позиции-с-IP-адресом>}')
                                            

                                            Зы2. Может правильнее на usb повесить ЛАН, а встроенную сетевую пользовать как ВАН? Иначе, если у провайдера проблемы, то ваш роутер будет в "вечном" ребуте\передергивании usb из-за невозможности получить ip на свистке.

                                            H 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.