Пропадает USB ethernet после перезагрузки
-
@he11kern
По вашей ссылке есть ветка на реддите. Попробуйте спросить про юсб там
https://www.reddit.com/r/Atomic_Pi/но модуль Wi-Fi там не очень.
Два диапазона - уже неплохо.
-
Так и не получилось управлять питанием порта. Пытаюсь сделать через скрипт и earlycmd, но вот в чем проблема. Не работает earlycmd когда система вошла в режим ассайна интерфейсов. Тупо не догрудается до его вызова.((
-
Добрый.
@he11kernCron же есть. Зачем 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 есть. -
Здр
earlyshellcmd
Will run the command specified at the beginning of the boot process.С этим параметром скрипт отрабатывает до загрузки PFSense
-
@Konstanti , похоже что нет(( скрипт не срабатывает когда система не догрузилась.
-
Врать не буду
Но у меня скрипт с созданием виртуальных интерфейсов ( эксперимент) отрабатывает до загрузки 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
- "Жесткий" вариант. Будет дергать питание 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
- Вариант на определенное кол-во попыток:
#!/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 карте работает, но вот инет становитсья не доступен (( пока дело не дошло до логов. Буду смотреть дальше...