Use cdc_ether driver based dongles for WAN connection
This recipe explains how to setup and configure OpenWrt for using a USB 4G/3G modem based on cdc_ether driver.
This section has been tested on the following release:
root@OpenWrt:~# cat /etc/openwrt_release DISTRIB_ID='OpenWrt' DISTRIB_RELEASE='SNAPSHOT' DISTRIB_REVISION='r13212-300b7fe85a' DISTRIB_TARGET='ath79/generic' DISTRIB_ARCH='mips_24kc' DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r13212-300b7fe85a' DISTRIB_TAINTS=''
Required Packages
Before plugging in your USB Dongle, install the following packages either in Luci → System → Software or via commandline:
root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install kmod-usb-net-cdc-ether usb-modeswitch Installing kmod-usb-net-cdc-ether (4.19.115-1) to root. Downloading http://downloads.openwrt.org/snapshots/targets/ath79/generic/kmods/4.19.115-1-1eeead79165e05251a00d7cef457c9f2/kmod-usb-net-cdc-ether_4.19.115-1_mips_24kc.ipk Installing kmod-mii (4.19.115-1) to root. Downloading http://downloads.openwrt.org/snapshots/targets/ath79/generic/kmods/4.19.115-1-1eeead79165e05251a00d7cef457c9f2/kmod-mii_4.19.115-1_mips_24kc.ipk Installing kmod-usb-net (4.19.115-1) to root. Downloading http://downloads.openwrt.org/snapshots/targets/ath79/generic/kmods/4.19.115-1-1eeead79165e05251a00d7cef457c9f2/kmod-usb-net_4.19.115-1_mips_24kc.ipk Installing usb-modeswitch (2017-12-19-f40f84c2-2) to root. Downloading http://downloads.openwrt.org/snapshots/packages/mips_24kc/base/usb-modeswitch_2017-12-19-f40f84c2-2_mips_24kc.ipk Installing librt (1.1.24-2) to root. Downloading http://downloads.openwrt.org/snapshots/targets/ath79/generic/packages/librt_1.1.24-2_mips_24kc.ipk Installing libusb-1.0-0 (1.0.22-2) to root. Downloading http://downloads.openwrt.org/snapshots/packages/mips_24kc/base/libusb-1.0-0_1.0.22-2_mips_24kc.ipk Configuring librt. Configuring libusb-1.0-0. Configuring kmod-mii. Configuring usb-modeswitch. Configuring kmod-usb-net. Configuring kmod-usb-net-cdc-ether.
If the installation was successful, plugging the USB dongle will show a similar message in your logs:
root@OpenWrt:~# dmesg [ 208.424433] usb 1-1: new high-speed USB device number 3 using ehci-platform [ 209.251501] usb 1-1: USB disconnect, device number 3 [ 209.652469] usb 1-1: new high-speed USB device number 4 using ehci-platform [ 210.060700] cdc_ether 1-1:1.0 usb0: register 'cdc_ether' at usb-1b000000.usb-1, CDC Ethernet Device, d2:60:c8:b6:65:46
To double-check, see the contents of /sys/kernel/debug/usb/devices to make sure the extra USB interfaces are detected by the drivers:
root@OpenWrt:~# cat /sys/kernel/debug/usb/devices T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 4.19 S: Manufacturer=Linux 4.19.115 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=1b000000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=12d1 ProdID=14dc Rev= 1.02 S: Manufacturer=HUAWEI S: Product=HUAWEI Mobile C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=32ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none) E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=125us T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 4.19 S: Manufacturer=Linux 4.19.115 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=1b400000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
Network Configuration
Rest of the configuration is same as configuring other network interfaces in OpenWrt:
Using luci: go to network → Interfaces → Add new interface. → Protocol : dhcp client, Interface: usb0
vi /etc/config/network config interface 'wanb' option ifname 'usb0' option proto 'dhcp' option metric '100'
4G Settings
Compared to PPP or QMI protocols there are no settings provided from OpenWRT for the dongle. All settings are made in the dongle itself.
Huawei provides a web interface called HiLink where you can check your 3G / 4G connection status, enter PIN code, enable data roaming or send and receive SMS.
To access it, go with your browser to hi.link , or in my case to 192.168.8.1 .
If the request is blocked, it may be that your firewall does not allow it. In this case you can define a rule like the following:
config rule option name 'Allow-HiLink' option src 'lan' option proto 'tcp' option target 'ACCEPT' option family 'ipv4' option dest 'wan' list dest_ip '192.168.8.1'
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website. OK More information about cookies
Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International
Блог начинающего линуксоида.
Приветствую. Данная заметка подойдёт тем, кто решил раздавать интернет со своего 4G-модема в локальную сеть посредством Ethernet или Wi-Fi. Когда-то я писал о том, как раздавать интернет с модема в локальную сеть, но тогда интернет шлюзом у нас выступал рабочий компьютер. Теперь же для этих целей будет применяться Wi-Fi маршрутизатор (роутер) с USB портом, в моём случае это TP-Link WR-842N. Преимущества такого способа очевидны: не нужно всё время держать включённым компьютер, чтобы можно было пользоваться интернетом на других устройствах, значительно меньшее потребление электроэнергии, возможность серьёзного расширения функционала и так далее. USB-модем будет работать как WAN-интерфейс, то есть как если бы к роутеру был подключён кабель от интернет-провайдера. Однако родная прошивка роутеров TP-Link весьма ограничена и убога, и я сразу заменяю её на OpenWRT. Правда в этот раз я возьму не сам OpenWRT, а его форк под названием LEDE. Об отличиях можете почитать здесь. Приступим.
Это 4G-модем от Мегафон, который я разлочил для работы с любой сим-картой (я использую МТС) и перевёл для работы в режиме Hilink. Что это значит? У подобных модемов может быть два режима работы — Stick и Hilink. В первом случае модем работает как коммутируемый интерфейс, в котором как и в обычном модеме происходит дозвон на определённый номер. В режиме Hilink модем работает как сетевая карта, и имеет встроенный роутер. В идеале вы должны перепрошить ваш модем для работы в режиме Hilink, информацию об этом можно найти здесь. Если у вас точно такой же модем как у меня — вам сюда. Данный модем сам по себе работает на Линуксе, имеет встроенный роутер с DHCP-сервером и фаерволлом (всё это можно отключить в его веб-интерфейсе). Потому схема работы будет весьма простая: наш TP-Link будет получать IP-адрес от встроенного в модем роутера, а также настройки DNS-серверов, и при этом расшаривать это подключение на все свои интерфейсы.
Первым делом необходимо поставить LEDE. Но перед этим осмотрите наклейку на задней стенке корпуса маршрутизатора. Важно узнать его версию. В моём случае это v3. Скачивайте только прошивку для этой конкретной версии! Переходим по ссылке, выбираем последнюю версию прошивки, далее в разделе targets выбираем ar71xx, затем в generic и ищем нужную прошивку. Обращаем внимание на окончание: sysupgrade — это обновление уже существующей прошивки LEDE, установленной в роутер, factory — это сама прошивка. Нам нужно factory! Скачиваем нужную версию.
Открываем в браузере веб-интерфейс нашего роутера. Для этого в адресной строке вводим 192.168.0.1 . Логин и пароль для входа по умолчанию: admin. Пока не заморачивайтесь сменой пароля, ведь скоро этой прошивки не будет)) Идём в раздел «Системные инструменты», далее «Обновление встроенного ПО». Выбираем скачанный файл с прошивкой и жмём «Обновить». Ждём.
После перепрошивки вы не сможете попасть в веб-интерфейс, так как в OpenWRT/LEDE применяется другой IP-адрес для него — 192.168.1.1 . Введя его вы попадёте в веб-интерфейс LEDE. Вход без пароля, но система будет всё время напоминать о его создании. Поэтому сразу укажем пароль для входа:
В самом низу страницы выбираем Save&Apply. Перед подключением модема в USB-порт необходимо скачать нужные для его работы модули. Если у вас есть рабочее проводное интернет-соединение — то просто подключите кабель в синий порт на роутере. Если же нет — не беда. Маршрутизатор с OpenWRT/LEDE может работать в режиме Wi-Fi-клиента, и подключаться к любому другому роутеру. Если у вас есть смартфон или планшет с безлимитным интернетом — включите в его настройках точку доступа Wi-FI. Затем в веб-интерфейсе перейдите в «Network» — «Wireless» и нажмите на Scan.
Маршрутизатор просканирует доступные Wi-Fi-сети. Он должен обнаружить сеть, раздаваемую вашим смартфоном. Выберите её и примените. После этого переходим в «System» — «Software» и нажимаем на «Update lists».
После обновления в поле поиска находим поочерёдно пакеты usb-modeswitch (необходим для переключения модема в режим, собственно, модема, так как на многих 3G/4G модемах ещё встроен картридер) и kmod-usb-net-cdc-ether (как раз таки необходим для работы модема в режиме сетевой карты). Устанавливаем их и теперь уже подключаем модем.
Модем сразу определится в системе как сетевой интерфейс, в моём случае как устройство eth2. Переходим в «Network» — «Interfaces» и нажимаем на Add new interface. Нужно добавить наш модем и расшарить с него сеть. Имя интерфейса указываем USB, протокол DHCP, а интерфейсом Ethernet adapter: eth2. Нажимаем на Submit.
В появившемся подключении выбираем Edit, переходим на вкладку Firewall settings и указываем для него зону Wan:
Вот и всё. Остальная настройка уже индивидуальна (пароль на Wi-Fi, шифрование и так далее). Если вы хотите что-то добавить к статье — пишите в комментариях.
7 комментариев:
спасибо тебе добрый человек, на буржуйскийх сайтах всякая ересть написаны, а нужно было всего лишь два пакета поставить. Ни на одном не говорилось про пакет «kmod-usb-net-cdc-ether» Ответить Удалить
Спасибо большое спецам. На сайте 4pda случайно наткнулся на ссылку. Всё заработало с полпинка.
СПАСИБО. Ответить Удалить
А как сделать то же самое, только интернет раздавать с ПК на роутер (TP-link 3220), а с роутера по wifi& Ответить Удалить
пойдут ли эти пакеты в прошивку open wrt tl-wr740n? порт usb распаян, так как процессор его поддерживает.
Ответить Удалить
Красавец автор! У меня sagemcom f@st 2804 v7, поставлена OpenWRT 18.06, нужные пакеты есть «из-коробки». Только у меня интерфейс модема eth1. От души спасибо за статью! Ответить Удалить