LINUX.ORG.RU

Настройка gsm модема в debian

 ,


0

1

Подскажите, не видит модема в системе как /dev/ttyUSB0 *1 *2.

Dmesg здорового линукс:

...
[1318499.784070] usb 2-1.7: GSM modem (1-port) converter now attached to ttyUSB0
[1318499.784612] usb 2-1.7: GSM modem (1-port) converter now attached to ttyUSB1
[1318499.784945] usb 2-1.7: GSM modem (1-port) converter now attached to ttyUSB2 

Dmesg курящего линукс:

...
[14299.710000] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[14299.720000] usb-storage 1-1.4:1.1: USB Mass Storage device detected
[14299.730000] usb-storage 1-1.4:1.2: USB Mass Storage device detected
[14299.740000] usb-storage 1-1.4:1.3: USB Mass Storage device detected 

По гугляжу говорят, что нужен модуль usb-serial. На данный момент не установлено ни одного модуля (папка /lib/modules/${uname -r} пуста). Вопрос нужен ли он мне и как его установить?

Попытки

~# modprobe usbserial
libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/3.10.28-shadow1-00041-g6f86f82-dirty/modules.dep.bin'
~# modprobe usb-serial
тоже самое..

~# dpkg -l linux-* | grep -P "^ii"
ii  linux-libc-dev:armel             3.2.65-1                           armel        Linux support headers for userspace development


Последнее исправление: kcehna (всего исправлений: 1)

3.10.28-shadow1-00041-g6f86f82-dirty

-shadow1-00041-g6f86f82-dirty

какое-то нестандартное самосборное ядро, возможно статическое без модулей

anonymous
()
Ответ на: комментарий от anonymous

Так его пытаются к андроиду прикрутить... А там с модулями бяда...

ZayaTCCC
()
Ответ на: комментарий от kcehna

1 Микрокомпьютер MB77.07

Это хорошо.

2 Пересобрать могла бы и только по хорошей инструкции)).

До этого дело может и не дойти.
Рассказывай, какой модем цепляешь.

happycorsair
()
Ответ на: комментарий от happycorsair

Рассказывай, какой модем цепляешь.

~# lsusb Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

Попробовала на всякий случай проверить миникомом /dev/ttyS0, тож не идет.

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

Сейчас ядро в штатных прошивках идет с минимальным набором драйверов, без модулей в корневой ФС. Будет в ближайшее время исправлено, как только дойдут руки до обновления образов. Соответственно надо включить поддержку для модема и пересобрать ядро. Потребуется хост на x86_64 и пакеты build-essential, git, uboot-mkimage

Берем свежий тулчейн отсюда: http://www.module.ru/mb7707/toolchains/x86_64/. Для ядра нам без разницы armel/armhf.

Распаковвываем, например в ~/x-tools/, добавляем путь к каталогу с тулчейном в PATH. Например добавив в .bashrc следующее:

export PATH=$PATH:/home/username/x-tools/arm-module-linux-gnueabi/bin/
И открываем свежий терминал, проверяем что теперь можем теперь запустить arm-module-linux-gnueabi-gcc.

Кто хочет приключений могут собрать тулчейн и самостоятельно при помощи crosstool-ng, все конфиги лежат на гитхабе.

Теперь забираем ядро с github.

git clone https://github.com/RC-MODULE/linux-3.10.x.git

Текущий стабильный бранч: k1879-3.10.28. Остальные бранчи экспериментальные - на свой страх и риск. Осенью будет след. стабильный 4.х порт.

cd linux-3.10.x
cp arch/arm/configs/uemd_defconfig .config
ARCH=arm CROSS_COMPILE=arm-module-linux-gnueabi- make menuconfig
#Меняем конфиг под себя, включаем все что потребуется. 
ARCH=arm CROSS_COMPILE=arm-module-linux-gnueabi- make -j8 uImage dtbs
#-j8, 8 - здесь количество потоков для сборки. Подстроить  под себя.

Результат сборки - arch/arm/boot/uImage и arch/arm/boot/module-mb7707.dtb

dtb менять сейчас не потребуется, только uImage.

Это можно сделать двумя вариантами. Первый, традиционный, как в u-boot - через tftp.

На локальной машине поднимаем tftpd, копируем uImage в /tftpboot на локальной машине.

В консоли mboot настраиваем сеть.

setenv serverip 192.168.0.1
setenv ipaddr 192.168.0.2
saveenv

И обновляем раздел kernel

fwu kernel uImage

Второй вариант. Берем всю «кухню» от прошивки, которую мы до этого прошивали и открываем скрипт eupgrade.edcl и немного меняем своим любимым редактором. Перепрошивать загрузчик и корневую фс мы не будем, нам надо только обновить ядро. Вот пример, как оно будет выглядеть в первом приближении:

edcl_init();
fw = require("fw");

mboot_path=""
fw.run_code(mboot_path.."mboot-uemd.bin",true); -- start in slave mode

-- all sizes are in bytes
partition_table = {
   { "kernel", 4*1024*1024 }, 
   { "rootfs", "-" }, 
}

fw.partition(partition_table);
 
fw.mboot_cmd("parterase kernel y y")

fw.flash_part("kernel", "/srv/tftp/uImage", false);

Сохраняем, и прошиваем точно так же, как прошивали прошивку. (Ну или просто тупо подменяем uImage в архиве прошивки на свой и прошиваемся)

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от kcehna

ncrmnt Всё замечательно тебе расписал, за что ему огромное спасибо.
В конфиг тебе (при помощи команды make menuconfig) скорее всего надо добавить следующее: USB_NET_HUAWEI_CDC_NCM и CONFIG_USB_SERIAL_OPTION. Возможно, что еще что-то. Для понимания я советую тебе смотреть dmesg-выхлоп на нормальном компе и на платке. Сравнение логов даст тебе идеи о том, чего не хватает.
Кроме того, требуется перевести эту штуковину в режим модема, для этого тебе надо будет уже в rootfs добавить и настроить usb_modeswitch.

happycorsair
()
Ответ на: комментарий от happycorsair

Там raspbian/debian так что последнее просто через apt-get install usbmodeswitch делается.

ncrmnt ★★★★★
()

У меня был модем от связного типа тоже Huawei.
Чтобы он начал откликаться в каталог /etc надо было положить файлик usb_modeswitch.conf с содержимым:

# Alcatel X060

    DefaultVendor= 0x1bbb
    DefaultProduct= 0xf000

    TargetVendor= 0x1bbb
    TargetProduct= 0x0000

    # only for reference
    # MessageEndpoint=0?01
    MessageContent="55534243123456788000000080000606f50402527000000000000000000000"

Соотвественно:
DefaultVendor=0x12d1
DefaultProduct=0x1001
 Тоже самое для TargetVendor
TomBOY ★★
()
Ответ на: комментарий от ncrmnt

Ещё раз спасибо за подробную инструкцию! Ядро пересобралось успешно. Единственное, что для пересборки потребовался ещё пакет lzop и файл оказался в директории arch/arm/boot/dts/module-mb7707.dtb

После сборки и прошивки микрокомпьютер правда ругался на то, что не может найти modprobe, доустановила.

kcehna
() автор топика
Ответ на: комментарий от happycorsair

USB_NET_HUAWEI_CDC_NCM

- не нашла ничего с хуавеем.

CONFIG_USB_SERIAL_OPTION

- уже стояло в <m>.

Также добавила:

CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_GENERIC=y 
Поиски продолжаются...

kcehna
() автор топика
Ответ на: комментарий от kcehna

USB_NET_HUAWEI_CDC_NCM

емнип NCM не только у хуавея, символ по другому может называться.

И нужен еще usbmodeswitch, без него порты модем не покажет.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

Ни NCM, ни USB_NET grep не нашёл). Из выгугленного и на вид подходящего нашла: USB_USBNET, USB_TEST. Завтра попробую собрать как время будет.

Modprobe также ругается (лог в шапке). Это нормально?

usbmodeswitch в первую очередь + libusb-dev, libusb-0.1. Мои настройки для него.

/etc/usb_modeswitch.conf

######################################################## 
# Huawei E1550

DefaultVendor=0x12d1
DefaultProduct=0x1446

TargetVendor=0x12d1
TargetProduct=0x1001

MessageContent="55534243000000000000000000000011060000000000000000000000000000"
MessageEndpoint=0x01
ResponseEndpoint=0x01
CheckSuccess=40
HuaweiMode=1
/etc/udev/rules.d/45-huawei-e1550.rules
ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="1001", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch -c /etc/usb_modeswitch.conf"
Лог с
# usb_modeswitch -HW -c /etc/usb_modeswitch.conf 

Reading config file: /etc/usb_modeswitch.conf

* usb_modeswitch: handle USB devices with multiple modes * Version 1.2.3 (C) Josua Dietze 2012 * Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1 DefaultProduct= 0x1446 TargetVendor= 0x12d1 TargetProduct= 0x1001 TargetClass= not set TargetProductList=«»

DetachStorageOnly=0 HuaweiMode=1 SierraMode=0 SonyMode=0 QisdaMode=0 GCTMode=0 KobilMode=0 SequansMode=0 MobileActionMode=0 CiscoMode=0 MessageEndpoint=0x01 MessageContent=«55534243000000000000000000000011060000000000000000000000000000» NeedResponse=0 ResponseEndpoint=0x01

InquireDevice enabled (default) Success check enabled, max. wait time 40 seconds System integration mode disabled

usb_set_debug: Setting debugging level to 15 (on) usb_os_find_busses: Found 001 usb_os_find_devices: Found 003 on 001 usb_os_find_devices: Found 002 on 001 usb_os_find_devices: Found 001 on 001 error obtaining child information: Inappropriate ioctl for device Looking for target devices ... searching devices, found USB ID 12d1:1001 found matching vendor ID found matching product ID adding device searching devices, found USB ID 1a40:0101 searching devices, found USB ID 1d6b:0002 Found devices in target mode or class (1) Looking for default devices ... searching devices, found USB ID 12d1:1001 found matching vendor ID searching devices, found USB ID 1a40:0101 searching devices, found USB ID 1d6b:0002 No devices in default mode found. Nothing to do. Bye.

но не помогло :)

kcehna
() автор топика
Ответ на: комментарий от kcehna

Заходим в menuconfig:

Device Drivers -> USB Support.

Чтобы не мучаться с модулями компилим в ядро сразу (<*>), а не модулем (<M>), так проще и быстрее будет (если модулем, то втыкать либо insmod'ом, либо упаковвывать модули в deb и накатывать пакетов вместе с ядром, чтобы depmod отработал. Иначе modprobe работать не будет). Выбираем:

<*> USB Serial converter support

Внутри меню выбираем то, что требуется

Теперь нужен сетевой интефейс. Это qmi_wwan или cdc_ncm скорее всего. Идем:

Device Drivers -> Network Device Support -> USB Network Adapters

Внутри выбираем

<*> CDC NCM

<*> QMI WWAN

Ну и по вкусу. Скорее всего какой-то из этих двух.

Собираем, прошиваем, наслаждаемся.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 3)
Ответ на: комментарий от kcehna

А не покажешь полный лог при включении свистка? Реально интересно, какие модули используются именно в этом.

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