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



  • Добрый день.
    Пытаюсь настроить pfSense с использованием usb ethernet (edimax eu-4306), при первой загрузке система успешно видит эту сетевую карту, но как только я все настроил, заасанил интерфейсы и параметры IP, перезапускаю через команду reboot. После загрузки система уже не видит эту сетевую карту, при этом встроенная работает хорошо. Только после того как я физически переподключаю эту сетевую карту в USB port, pfSense определяет ее.

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

    usbconfig reset all
    

    не помагает ((

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



  • Добрый.

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

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

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



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



  • @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



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

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

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



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

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

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



  • @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



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

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

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



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



  • Добрый.
    @he11kern

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



  • @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
    


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



  • @he11kern

    Здр

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

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



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



  • @he11kern

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

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



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



  • @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, он теперь полностью поддердживается))



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

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

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



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



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

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

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



  • Добрый.

    @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 на свистке.



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

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

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

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


Log in to reply