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.
    • 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
                              • H
                                he11kern @werter
                                last edited by

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

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

                                Тaк и сделал, повесил на USB lan.

                                По вашему решению: Я не совсем уверен что вырубать хаб поможет делу, вручную я так и не смог заставить работать сеть через usbconfig, а вот перезагрузка решает проблему. Кончено я понимаю что это не продакшин решение, так как мой скрип зациклен. НО для теста этого хватило. Сейчас возникла другая проблема, насколько я понял через время отпадает интернет на роутере. Железка работает, индикация на USB карте работает, но вот инет становитсья не доступен (( пока дело не дошло до логов. Буду смотреть дальше...

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