Использование модемов во FreeBSD.

Внезапно потребовалось отправлять СМС-уведомления через сервер с FreeBSD. Естественно, что требовалось установить модем. Под рукой оказался старенький, но весьма и весьма работоспособный модем Huawei E3131 с прошивкой Hi-link. Прелесть этого модема в наличии crc9-разъема в боку для подключения внешней антенны. При подключении модем увиделся, как флешка.. Пришлось пользоваться google, чтобы найти решение.

Подключаем модем в USB компьютера и смотрим в dmesg:

ugen3.2: <HUAWEI HUAWEI HiLink> at usbus3
umass0 on uhub0
umass0: <HUAWEI HUAWEI HiLink, class 0/0, rev 2.00/1.02, addr 2> on usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:7:0: Attached to scbus7
cd0 at umass-sim0 bus 0 scbus7 target 0 lun 0
cd0: <HUAWEI Mass Storage 2.31> Removable CD-ROM SCSI-2 device
cd0: 40.000MB/s transfers
cd0: 128MB (65536 2048 byte sectors)
cd0: quirks=0x10<10_BYTE_ONLY>

Понимаем, что это совсем не то, чего бы мы хотели… Начинаем действовать:

# Для работы с модемом сразу ставим необходимый софт:
pkg install -y usbutils usb_modeswitch
# смотрим, как у нас определился модем при включениии в USB:
lsusb
Bus /dev/usb Device /dev/ugen3.2: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)

Ищем target-конфиг для модема, чтобы переключить его в сетевую карту. К всеобщему счастью, во FreeBSD предусмотрительно присутствуют конфиги для перевода в нужный нам режим «как сетевая карта» для всех поддерживаемых модемов:

# Ищем модем E3131:
grep -R "E3131" /usr/local/share/usb_modeswitch/
/usr/local/share/usb_modeswitch/12d1:15ce:# Huawei E3531s-2, E3131 (Variant)
/usr/local/share/usb_modeswitch/12d1:151a:# Huawei E392u-12, E3131 (Variant)
/usr/local/share/usb_modeswitch/12d1:15ca:# Huawei E3131
/usr/local/share/usb_modeswitch/12d1:15d0:# Huawei E3131 (Variant)
# я использовал в качестве целевого переключения файл /usr/local/share/usb_modeswitch/12d1:15ca
# даем команду переключения модема, в качестве параметров даем 
# входные параметры из lsusb, а target содержится в файле usb_modeswitch/12d1:15ca
/usr/local/sbin/usb_modeswitch -v 0x12d1 -p 0x1f01 --config-file /usr/local/share/usb_modeswitch/12d1:15ca

Теперь смотрим в dmesg и в сетевые устройства:

dmesg
..........................
umass0: detached
ugen3.2: <HUAWEI HUAWEI HiLink> at usbus3 (disconnected)
ugen3.2: <HUAWEI HUAWEI HiLink> at usbus3
cdce0 on uhub0
cdce0: <HUAWEI HUAWEI HiLink, class 2/0, rev 2.00/1.02, addr 2> on usbus3
ue0: <USB Ethernet> on cdce0
ue0: Ethernet address: 58:2c:80:13:92:63
ifconfig ue0
ue0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	ether 58:2c:80:13:92:63
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Видим, что всё получилось.. Модем у нас теперь видится, как сетевая карта. Конечно же, таким образом можно подключить любой модем, в том числе huawei E3372, huawei E352 и прочими. Отличие в исходных и целевых параметрах usb_modeswitch.

Для подключения интернет достаточно только получить ip от сетевой карты и можно бороздить просторы сети…

dhclient ue0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *