Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Подключение LTE модема Huawei 3372S

    Russian
    5
    15
    3.7k
    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.
    • S
      Sector
      last edited by

      Всем привет!
      Система: физическая, PfSense 2.1.5 x86 (обновление невозможно)
      Есть 2 постоянных физических порта eth1, eth2 и появляющийся только после исполнения скрипта из /rc.d третий eth3.
      К сожалению, при каждой загрузке система обнаруживает отсутствие eth3 и выкидывает в режим ручного определения интерфейсов.
      Вопрос: есть ли возможность указать PfSens-у продолжать загрузку с той конфигурацией интерфейсов, что и была до выключения? Или вообще запретить отслеживание изменений в аппаратной конфигурации?

      1 Reply Last reply Reply Quote 0
      • D
        dvserg
        last edited by

        Может быть Вы смотрите на проблему с другой стороны?
        Вопрос - почему этот интерфейс появляется только после отработки rc.d ?
        В pfSense, на сколько я помню, rc.d не используется.

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • S
          Sector
          last edited by

          А по другому он не появится (по крайней мере, я больше не знаю как). В rc.d запускается usb_modeswitch, который определённым образом инициализирует USB модем, что бы модуль cdc-ethernet создал ue0-интерфейс  :P

          1 Reply Last reply Reply Quote 0
          • D
            dvserg
            last edited by

            @Sector:

            А по другому он не появится (по крайней мере, я больше не знаю как). В rc.d запускается usb_modeswitch, который определённым образом инициализирует USB модем, что бы модуль cdc-ethernet создал ue0-интерфейс  :P

            Посмотрите тут, может быть получится выполнить Ваш скрипт раньше конфигурирования интерфейсов.
            Опции <earlyshellcmd>и <shellcmd>в конфиге.</shellcmd></earlyshellcmd>

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

            1 Reply Last reply Reply Quote 0
            • S
              Sector
              last edited by

              @dvserg:

              Посмотрите тут, может быть получится выполнить Ваш скрипт раньше конфигурирования интерфейсов.
              Опции <earlyshellcmd>и <shellcmd>в конфиге.</shellcmd></earlyshellcmd>

              Огромное спасибо! Это метод не сработал, ибо исполнение команд данного сервиса всё равно происходит поздно, но Вы натолкнули на способ использования devd.conf, с помощью которого всё стало определяться как и когда надо!

              1 Reply Last reply Reply Quote 0
              • werterW
                werter
                last edited by

                @Sector:

                @dvserg:

                Посмотрите тут, может быть получится выполнить Ваш скрипт раньше конфигурирования интерфейсов.
                Опции <earlyshellcmd>и <shellcmd>в конфиге.</shellcmd></earlyshellcmd>

                Огромное спасибо! Это метод не сработал, ибо исполнение команд данного сервиса всё равно происходит поздно, но Вы натолкнули на способ использования devd.conf, с помощью которого всё стало определяться как и когда надо!

                Можно ли описать что и как правили? Спасибо.

                1 Reply Last reply Reply Quote 0
                • S
                  Sector
                  last edited by

                  Можно ли описать что и как правили? Спасибо.

                  Тогда более полно распишу, вдруг кому пригодиться.
                  Итак, задача: подключить LTE модем Huawei 3372S к устройству с PfSense (в моём случае 2.1.5 i386)
                  Описание касается только моего устройства, FIT-PC2, потому, что на других может будет всё попроще, например в VirtualBox-е (PfSense) и Windows 7 определение модема в нужной конфигурации происходит автоматически, без лишних телодвижений.

                  1. Так как требуется работа multiWAN и опыт эксплуатации показал, что  PPP-соединение работает в этом плане неудовлетворительно, то перепрошиваем модем в режим HiLink (фактически, роутер: веб-сервер, DHCP-сервер, полноценный usb-ethernet на выходе, отсутствие лишних последовательных портов в системе, а главное - автономная работа, потому что как только подали питание, его ОС и загрузилась сама и сеть нашла и даже подключилась по дефолтному профилю к этой сети, а нам остаётся только по DHCP адрес получить).

                  2. Основная задача засада состояла в том, что бы модем инициализировался в нужной конфигурации (композиции), вместо

                  
                  [2.1.5-RELEASE][root@pfSense.localdomain]/root(6): lsusb
                  Bus /dev/usb Device /dev/ugen3.2: ID 12d1:1f01 Huawei Technologies Co., Ltd.
                  Bus /dev/usb Device /dev/ugen0.2: ID 413c:2107 Dell Computer Corp.
                  Bus /dev/usb Device /dev/ugen3.3: ID 148f:3070 Ralink Technology, Corp.
                  Bus /dev/usb Device /dev/ugen3.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen1.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen0.1: ID 0000:0000
                  
                  

                  нам надо было получить

                  
                  [2.1.5-RELEASE][root@pfSense.localdomain]/root(6): lsusb
                  Bus /dev/usb Device /dev/ugen3.2: ID 12d1:14dc Huawei Technologies Co., Ltd.
                  Bus /dev/usb Device /dev/ugen0.2: ID 413c:2107 Dell Computer Corp.
                  Bus /dev/usb Device /dev/ugen3.3: ID 148f:3070 Ralink Technology, Corp.
                  Bus /dev/usb Device /dev/ugen3.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen1.1: ID 0000:0000
                  Bus /dev/usb Device /dev/ugen0.1: ID 0000:0000
                  
                  

                  так как первый вариант, это обычная конфигурация с кучей устройств (CD, cardreader и т.д.), а второй - нужный нам чистый usb-ethernet.
                  Поэтому применяем программу переключения режимов:

                  
                  usb_modeswitch -v 12d1 -p 1f01 -V 012d1 -P 014dс -M "55534243123456780000000000000a11062000000000000100000000000000" -W
                  
                  

                  Кстати, в 2.2.2 с более свежим usb_modeswitch ещё проще:

                  
                  usb_modeswitch -v 12d1 -p 1f01 -J
                  
                  

                  3. Как было описано в постах выше, PfSense при загрузке определял отсутствие созданного ранее виртуального интерфейса и запускал процедуру ручного назначения, как при первом запуске, а значит надо было переключать модем на более раннем этапе. Используем возможность ручного описания устройств devd и редактируем /etc/devd.conf, добавляем в конец файла следующее:

                  
                  attach 10 {
                  device-name "ugen[0-9]+";
                  match "vendor" "0x12d1";
                  match "product" "0x1f01";
                  action "/path-to-script/scriptname.sh";
                  
                  

                  В принципе, всё понятно, ugen любой, указываем свои VID и PID (исходные) и прописываем путь к скрипту инициализации.

                  Собственно сам скрипт:

                  
                  #!/bin/sh
                  sleep 5
                  usb_modeswitch -v 12d1 -p 1f01 -V 012d1 -P 014dс -M "55534243123456780000000000000a11062000000000000100000000000000" -W
                  sleep 10
                  
                  

                  Обратите внимание на паузы, особенно вторую, что бы система по-новой определила модем, подгрузила нужный драйвер и успела IP получить, с этим особо не заморачивался, просто сделал с запасом.

                  4. За создание usb-ethernet интерфейса отвечает стандартный модуль CDC Ethernet

                  
                  [2.1.5-RELEASE][root@pfSense.localdomain]/root(2): kldstat -v | grep cdc
                                  346 uhub/cdce
                  
                  

                  и после выполнения скрипта у вас появляется интерфейс:

                  
                  cdce0: <cdc ethernet="" control="" model="" ecm="">on usbus3
                  ue0: <usb ethernet="">on cdce0</usb></cdc> 
                  

                  который виден в системе как обычный ethernet и стандартно настроен на получение адреса по DHCP

                  ifconfig

                  
                  ue0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
                          ether 0c:5b:8f:27:9a:64
                          inet 192.168.8.100 netmask 0xffffff00 broadcast 192.168.8.255
                          inet6 fe80::e5b:8fff:fe27:9a64%ue0 prefixlen 64 scopeid 0x7
                          nd6 options=1</up,broadcast,running,simplex,multicast>
                  

                  netstat -rn

                  
                  [2.1.5-RELEASE][root@pfSense.localdomain]/root(13): netstat -rn
                  Routing tables
                  
                  Internet:
                  Destination        Gateway            Flags    Refs      Use  Netif Expire
                  default            192.168.8.1        UGS         0       86    ue0
                  127.0.0.1          link#5             UH          0       16    lo0
                  192.168.8.0/24     link#7             U           0        0    ue0
                  192.168.8.1        0c:5b:8f:27:9a:64  UHS         0     3696    ue0
                  192.168.8.100      link#7             UHS         0        0    lo0
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • werterW
                    werter
                    last edited by

                    Большое спасибо за подробное описание.

                    Вопрос :

                    Собственно сам скрипт:

                    #!/bin/sh
                    sleep 5
                    usb_modeswitch -v 12d1 -p 1f01 -V 012d1 -P 014dс -M "55534243123456780000000000000a11062000000000000100000000000000" -W
                    sleep 10
                    

                    Это куда добавлять\вписывать ? Это скрипт для автозагрузки ?

                    P.s. Если можно, измените тему на что-то типа "Проблема с модемом LTE Huawei 3372S"

                    1 Reply Last reply Reply Quote 0
                    • S
                      Sector
                      last edited by

                      @werter:

                      Большое спасибо за подробное описание.

                      Это куда добавлять\вписывать ?

                      P.s. Если можно, измените тему на что-то типа "Проблема с модемом LTE Huawei 3372S"

                      Добавлять в файл скрипта, он может находиться в любом удобном месте с произвольным именем, но должен быть исполняемым.

                      1 Reply Last reply Reply Quote 0
                      • werterW
                        werter
                        last edited by

                        @Sector:

                        @werter:

                        Большое спасибо за подробное описание.

                        Это куда добавлять\вписывать ?

                        P.s. Если можно, измените тему на что-то типа "Проблема с модемом LTE Huawei 3372S"

                        Добавлять в файл скрипта, он может находиться в любом удобном месте с произвольным именем, но должен быть исполняемым.

                        Ок. Создал я sh-файл, назначил ему "исполняемость". Где к нему путь добавлять - в автозагрузку ?

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sector
                          last edited by

                          @werter:

                          Ок. Создал я sh-файл, назначил ему "исполняемость". Где к нему путь добавлять - в автозагрузку ?

                          В разделе 3 - добавление скрипта для загрузки в файл /etc/devd.conf

                          1 Reply Last reply Reply Quote 0
                          • werterW
                            werter
                            last edited by

                            Всё. Увидал. Еще раз спасибо  ;D

                            1 Reply Last reply Reply Quote 0
                            • A
                              aleksvolgin
                              last edited by

                              2 Sector
                              Когда модем зависает как его приводите в чувство? Передёргивалки USB питания я в вашей железке не заметил.

                              1 Reply Last reply Reply Quote 0
                              • S
                                Sector
                                last edited by

                                @aleksvolgin:

                                2 Sector
                                Когда модем зависает как его приводите в чувство? Передёргивалки USB питания я в вашей железке не заметил.

                                А зачем ему зависать? Ни разу не наблюдал. Да и если такое может происходить постоянно, то надо или модем менять или что-то друге, система же неработоспособна будет.

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Kamikaze778
                                  last edited by

                                  Добрый день!
                                  Хочу подключить к pfsense 2.1.5 amd64 данный модем. Прошил в HiLink (прошивка E3372Update_22.286.53.01.161_S_D_ADB_TLN_02).

                                  dmesg показывает:
                                  ugen0.4: <huaweimobile>at usbus0
                                  umass0: <mass storage="">on usbus0
                                  umass0:  SCSI over Bulk-Only; quirks = 0x0000
                                  umass0:0:0👎 Attached to scbus0
                                  (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
                                  (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
                                  (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
                                  (probe0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:29,0 (Power on, reset, or bus device reset occurred)
                                  (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
                                  (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
                                  (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
                                  (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)

                                  usbconfig -d ugen0.4 dump_device_desc
                                  ugen0.4: <huaweimobile huaweimobile="">at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON

                                  bLength = 0x0012
                                    bDescriptorType = 0x0001
                                    bcdUSB = 0x0210
                                    bDeviceClass = 0x0000
                                    bDeviceSubClass = 0x0000
                                    bDeviceProtocol = 0x00ff
                                    bMaxPacketSize0 = 0x0040
                                    idVendor = 0x12d1
                                  idProduct = 0x1566
                                    bcdDevice = 0x0102
                                    iManufacturer = 0x0001  <huawei_mobile>iProduct = 0x0002  <huawei_mobile>iSerialNumber = 0x0000  <no string="">bNumConfigurations = 0x0001

                                  Получается у меня ID = 0x1566 (я правильно понимаю?). Меняю в
                                  usb_modeswitch -v 12d1 -p 1f01 -V 012d1 -P 014dс -M "55534243123456780000000000000a11062000000000000100000000000000" -W
                                  на 1566.
                                  Все остальное по инструкции, но ue0 не появляется после перезагрузки.

                                  $ netstat -rn
                                  Routing tables

                                  Internet:
                                  Destination        Gateway            Flags    Refs      Use  Netif Expire
                                  default            192.168.1.1        UGS        0    1396    re0
                                  127.0.0.1          link#6            UH          0      16    lo0
                                  192.168.0.0/24    link#2            U          0    1834    re1
                                  192.168.0.1        link#2            UHS        0        0    lo0
                                  192.168.1.0/24    link#1            U          0        0    re0
                                  192.168.1.1        fc:aa:14:93:c4:03  UHS        0      852    re0
                                  192.168.1.3        link#1            UHS        0        0    lo0

                                  Скажите, какой вы прошивкой прошили свой модем? Правильно ли я меняю ID модема?</no></huawei_mobile></huawei_mobile></huaweimobile></mass></huaweimobile>

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