LINUX.ORG.RU

Debian + cdc_ether

 , , , ,


0

3

Привет! Есть ARM PC (armv7l), на нем стоит Debian 7.11. Есть USB LTE модем:

Bus 001 Device 019: ID 12d1:14db Huawei Technologies Co., Ltd.
Модем перешит, чтобы система linux его видела как eth устройство, модуль cdc_ether.

Все работает если модем воткнуть в рабочий линукс, либо после перезагрузки устройства. А вот с холодного включения arm устройства, модем не успевает инициализироваться сам и система загружается без него. А модем является ключевым устройством для управления самой arm железкой. Т.е. не поднимается модем после восстановления питания и железяка не может оповестить о начале своей штатной работы, ну и т.д.

Как при загрузке linux включить безусловный тайаут на подгрузку модуля cdc_ether, чтобы дать возможность модему инициализироваться?


Ответ на: комментарий от Harald

Тупо на обнаружение устройства udev'ом вставить свой скрипт загрузки модуля с задержкой?

А как вкорячивание модуля в ядро поможет отложить его загрузку?

По процессу «холодной» загрузки:

  • включается питание на arm
  • появляется питание на usb, модем начинает свою загрузку.
  • система linux на arm при загрузке видит lte modem и пытается подгрузить cdc_ether. Обламывается, т.к. модем еще сам не поднялся.
  • заканчивается инициализация модема.

ПС. Компиляция ядра, для этого барахла не очень приятная процедура, так же как и записывание всего получившегося на mtd устройства. Это rockchip rk3188. Из множества исходников ядер в интернете, мне удалось собрать работающее на 3.0.36+, при наложении кучи патчей со всяких форумов.

sicus
() автор топика

Спасибо всем. Заработало.

Тупанул сам. Сначала полез udev rules править, но потом заметил, что система загружается нормально и модуль подгружается вовремя, а не работает dhcp client на eth1, тупо отваливается по таймауту. Оказалось, что на самом модеме dhcp server не успевал стартануть.

Вылечил просто:

/etc/network/interfaces

auto eth1
iface eth1 inet dhcp
      pre-up sleep 45

sicus
() автор топика
28 июня 2017 г.

Понимаю, что тема немного заброшена, но подниму. Тоже хочу перейти на cdc вместо usb, но вот никак не могу понять простой вещи: как инициализировать модем?
Модем определяется так: 12d1:1c25 (Huawei mu709s-2)
Автор пишет «Модем перешит», «модем не успевает инициализироваться сам», но как он настроил эту самую инициализацию на модеме?
Надо вручную посылать команды в ttyUSB?
Не могу догнать саму концепцию.
Если кто подскажет базовые вещи, буду очень признателен.

titan83
()

Вставить в инит ожидание появления соответствующего устройству пути в /sys.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.