Категорії
FreeBSD

USB 3G модем и подвисание сервера при ребуте

После обновления FreeBSD 8.1 на 8.4 вылез неприятный момент: при ребуте сервер подвисает на сообщении:

usb0 disconnected

Всему виной оказался USB 3G модем Novatel U720, из-за которого и получали подвисание.

Ясно было одно – нужно найти параметр, который отвечает либо за таймауты, после которых модем “выбрасывается” системой или параметры, которые тупо ложат на “usb0 disconnected“.

Решение пришло, после внимательного просмотра переменных sysctl, которые отвечают за USB.  После внимательного изучения, тестирования, выявил такие параметры и нужные значения для них:

– /etc/sysctl.conf

hw.usb.no_shutdown_wait=1
hw.usb.no_suspend_wait=1

– /boot/loader.conf

hw.usb.timings.port_powerup_delay=50
hw.usb.timings.resume_delay=50
hw.usb.timings.port_reset_recovery=50
hw.usb.timings.port_root_reset_delay=50

После этого, нужно ребутнуться, что бы применились параметры из /boot/loader.conf. И вот уже после этого, ребут уже не должен приводить к зависаниям. Хотя, если признаться честно, то мне хватило (а может просто повезло) параметров hw.usb.no_*. Параметры hw.usb.timings.* добавил на всякий случай.

Интересным оказался ещё один параметр, который не влияет на данную ситуацию, но убирает информацию usbX из вывода netstat. Согласитесь, в 99% случаев строки вида usbX там не нужны. Вот, он этот параметр (прописать в /boot/loader.conf и перегрузиться):

hw.usb.no_pf=1

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff