LINUX.ORG.RU

Сообщения deus2k3

 

usb 2.0/3.0 и полу-рабочий модем - проблемы сопряжения

Всем доброго дня.

Сгорело что-то в модеме T77W968, подключаемом в роутер через USB порт, в итоге контроллерами USB 3.0 он определяется, а USB 2.0-нет.

Выглядит это так (на ПК/Vmware, где удобно переключать эмуляцию портов):

в режиме 2.0

dmesg

[ 2216.890741] usb 2-1: new high-speed USB device number 6 using ehci-pci

[ 2217.163576] usb 2-1: device descriptor read/64, error 18

[ 2217.547061] usb 2-1: device descriptor read/64, error 18

[ 2217.901630] usb 2-1: new high-speed USB device number 7 using ehci-pci

[ 2218.179057] usb 2-1: device descriptor read/64, error 18

[ 2218.575801] usb 2-1: device descriptor read/64, error 18

[ 2218.683654] usb usb2-port1: attempt power cycle

[ 2219.249190] usb 2-1: new high-speed USB device number 8 using ehci-pci

[ 2219.294695] usb 2-1: Invalid ep0 maxpacket: 9

[ 2219.556620] usb 2-1: new high-speed USB device number 9 using ehci-pci

[ 2219.601274] usb 2-1: Invalid ep0 maxpacket: 9

[ 2219.616137] usb usb2-port1: unable to enumerate USB device

в режиме 3.0

dmesg

[ 1990.269559] usb 4-1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd

[ 1990.292143] usb 4-1: New USB device found, idVendor=1bc7, idProduct=1910, bcdDevice= 3.18

[ 1990.292145] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 1990.292145] usb 4-1: Product: Telit LN960 Mobile Broadband

[ 1990.292146] usb 4-1: Manufacturer: Telit

[ 1990.292146] usb 4-1: SerialNumber: 0123456789ABCDEF

[ 1990.339521] cdc_mbim 4-1:2.0: cdc-wdm0: USB WDM device

[ 1990.339663] cdc_mbim 4-1:2.0 wwan0: register ‘cdc_mbim’ at usb-0000:03:00.0-1, CDC MBIM, 3e:c6:99:54:47:b3

Т.е. на ПК c USB 3.0 модем работоспособен и может использоваться.

НО! Проблема в том, что при втыкании в роутер с openwrt и портом USB 3.0 модем с чего-то подхватывается контроллером USB 2.0 (dmesg там пустой, остается только догадываться, что в нем) и в итоге он не определяется и не стартует, команда lsusb не видит устройство вообще.

Как заставить роутер подхватывать его именно контроллером USB 3.0?

Варианты:

  1. выключить поддержку usb 2.0 в роутере (как - аппаратно или программно)? удалять пакеты ehci не помогло, hub-ctrl тоже не фурычит
  2. спецкабель между модемом и портом usb роутера, выключающий линии питания/данных usb 2.0 (какой?)
  3. изменить приоритетность подключения на 3.0/2.0 (как?)
  4. что-то еще?

root@openwrt:~# uname -a

Linux openwrt 4.14.221 #0 SMP Mon Feb 15 15:22:37 2021 mips GNU/Linux

root@openwrt:~# lsusb -t

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-mtk/1p, 5000M

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-mtk/2p, 480M

root@openwrt:~# opkg list-installed | grep usb

kmod-usb-core - 4.14.221-1

kmod-usb-ledtrig-usbport - 4.14.221-1

kmod-usb-net - 4.14.221-1

kmod-usb-net-cdc-ether - 4.14.221-1

kmod-usb-net-cdc-mbim - 4.14.221-1

kmod-usb-net-cdc-ncm - 4.14.221-1

kmod-usb-net-huawei-cdc-ncm - 4.14.221-1

kmod-usb-net-qmi-wwan - 4.14.221-1

kmod-usb-net-rndis - 4.14.221-1

kmod-usb-serial - 4.14.221-1

kmod-usb-serial-option - 4.14.221-1

kmod-usb-serial-wwan - 4.14.221-1

kmod-usb-storage - 4.14.221-1

kmod-usb-wdm - 4.14.221-1

kmod-usb3 - 4.14.221-1

 

deus2k3
()

дамп UBI: разборка и сборка

Заранее извиняюсь за репост с 4pda, но там молчат. Итак:пытаюсь поиграться с дампом от модема ZTE MF833 (Мегафон М150-3), на чипсете Qualcomm mdm9207 и NAND W71NW20GF3FW. У этой заразы все закрыто, в т.ч. adb и ssh, надо как-то открыть.

Снял с помощью qtools дамп системного раздела:

-rwxrwxrwx 1 root root 155058176 июн 3 13:46 14-0-system.oob

Выдираю из него 6 подразделов и создаю манифест для обратной сборки:

ubireader_utils_info 14-0-system.oob

ubireader_extract_images 14-0-system.oob

root@ubuntu:/home/user# ls ubifs-root/14-0-system.oob/ -la

… drwxr-xr-x 2 root root 4096 May 17 00:49 img-133015877

-rw-r–r– 1 root root 2666496 May 17 00:49 img-133015877_vol-cachefs.ubifs

-rw-r–r– 1 root root 8507392 May 17 00:49 img-133015877_vol-etcrwfs.ubifs

-rw-r–r– 1 root root 1650688 May 17 00:49 img-133015877_vol-fwfs.ubifs

-rw-r–r– 1 root root 10031104 May 17 00:49 img-133015877_vol-logfs.ubifs

-rw-r–r– 1 root root 47108096 May 17 00:49 img-133015877_vol-rootfs.ubifs

-rw-r–r– 1 root root 51298304 May 17 00:49 img-133015877_vol-ztedata.ubifs

Вопрос 1: общий размер выдранных файлов - 121 Мб - где еще 35Мб?

Дальше монтирую img-133015877_vol-rootfs.ubifs, где всякие интересные вещи хранятся:

modprobe nandsim first_id_byte=0xef second_id_byte=0xa5 third_id_byte=0x51 fourth_id_byte=0x95

flash_erase /dev/mtd0 0 0

ubiformat /dev/mtd0 -s 2048 -O 2048

modprobe ubi

ubiattach -m 0 -d 0 -O 2048

ubimkvol /dev/ubi0 -N rootfs -s $((0xB000000))

ubiupdatevol /dev/ubi0_0 ./ubifs-root/14-0-system.oob/img-133015877_vol-rootfs.ubifs

mount /dev/ubi0_0 /mnt

меняю нужный файлик (/[mount point]/usr/zte/zte_conf/scripts/firewall_sys_fw.sh), собираю обратно: /usr/sbin/mkfs.ubifs -m 2048 -e 126976 -c 400 -x lzo -f 8 -k r5 -p 1 -l 4 -r /mnt img-133015877_5_1.ubifs

ls -la img-133015877_5*

-rw-r–r– 1 root root 28569600 июн 3 23:14 img-133015877_5_1.ubifs

-rw-r–r– 1 root root 47108096 июн 3 22:46 img-133015877_5.ubifs

опять расхождение размеров, а я всего-то закомментировал 4 строки в одном из файлов? Распакованные примонтированные размеры совпадают, т.е. я ничего не потерял..

Аналогично собираю новый аналог 14-0-system.oob (ini-файл мне любезно сделала утилита ubireader_utils_info из 14-0-system.oob):

/usr/sbin/ubinize -p 131072 -m 2048 -O 2048 -s 2048 -x 1 -Q 133015877 -o 14-img-133015877.ubi img-133015877.ini

Полученный файл также сильно отличается от исходного 14-0-system.oob - на 29 мегабайт, впрочем ожидаемо, выше писал, что размеры выдранных images и образа раздела отличаются: ls -la 14*

-rwxrwxrwx 1 root root 155058176 июн 3 13:46 14-0-system.oob

-rw-r–r– 1 root root 126746624 июн 3 22:48 14-img-133015877.ubi

Все это не очень нравится и шить в модем обратно файл на 29 Мб меньше исходного дампа я не решаюсь.

Вопрос 1: как сделать так, чтобы размеры исходного и собранного 14-0-system.oob совпадали, если я ничего не меняю, а просто разбираю его через ubireader_extract_images и собираю обратно через ubireader_utils_info и ubinize? Вопрос 2: как сделать так, чтобы размеры исходного и собранного раздела img-133015877_vol-rootfs.ubifs совпадали, если я на нем ничего не меняю, а просто монтирую его и собираю обратно через mkfs.ubifs?

 ,

deus2k3
()

RSS подписка на новые темы