LINUX.ORG.RU

openSUSE и USB модем андроид телефона

 ,


0

3

Привет. Помогите разобраться с проблемой. Возникла необходимость использовать андроид телефон как USB модем. На используемый рабочий ПК установил openSUSE Leap15.5.Подключил телефон как USB модем, он определился системой как usb ethernet. Затем установил весь необходимый софт по этому соединению. Все замечательно работало до первого zypper up. После чего openSUSE определять телефон как USB модем отказывается. Дома уже на компе с Tumbleweed решил проверить как работает USB модем. В общем та же песня - в настройках сети при подключении телефона вообще ничего не происходит. Посмотрел lsusb на домашнем ПК

Bus 003 Device 003: ID 2717:ff80 Xiaomi Inc. Mi/Redmi series (RNDIS)
Подключение телефона к usb есть. Посмотрел список сетевых интерфейсов:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e0:3f:49:a0:8d:b3 brd ff:ff:ff:ff:ff:ff
Есть только проводное соединение от модема. Куда смотреть, то делать?



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

Куда смотреть, то делать?

Алгоритм обычно следующий. lsusb вы уже посмотрели, телефон зовут 2717:ff80. Теперь можно глянуть hwinfo | grep ff80 и journalctl | grep 2717. Последняя команда выдаст что-нибудь типа:

kernel: usb 2-10: New USB device found, idVendor=2717, idProduct=ff80

Вас интересует 2-10, смотрите journalctl | grep 2-10 и dmesg | grep 2-10 получаете несколько строк где будет указано:

kernel: usb 2-10: new high-speed USB device number 4 using (какой-то модуль ядра)

Дальше смотрите есть ли этот модуль через lsmod | grep модуль. Если нет - ставите.

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

Нет, блютуз адаптера у меня нет. Но, что самое интересное, через wi-fi адаптер инет с телефона на пк раздается без проблем. Наверное придется для пк на работе wi-fi адаптер купить.

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

Посмотрел journalctl | grep 2717. В общем NETWORKMANAGER_DNS_FORWARDER is not set to «dnsmasq». Но в /etc/sysconfig/network/config настройки NETWORKMANAGER_DNS_FORWARDER нет. Там есть NETCONFIG_DNS_FORWARDER=«resolver»


localhost:/home/stanislau # journalctl | grep 2717
ноя 15 14:09:51 localhost kernel: sched_clock: Marking stable (694151764, 525350)->(902717280, -208040166)
ноя 20 22:02:36 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 22:03:10 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 23:05:40 localhost.localdomain systemd[2180]: Started VTE child process 12717 launched by gnome-terminal-server process 12686.
ноя 20 23:07:59 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 23:20:30 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff88, bcdDevice= 4.14
ноя 20 23:20:51 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff88, bcdDevice= 4.14
ноя 20 23:21:17 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 23:40:08 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 23:50:04 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 20 23:59:35 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 21 00:15:10 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 00:15:54 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 08:14:23 localhost.localdomain dns-dnsmasq.sh[12717]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
ноя 23 15:47:37 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 16:27:44 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 16:29:32 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 16:30:03 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14
ноя 23 16:34:12 localhost.localdomain kernel: usb 3-4: New USB device found, idVendor=2717, idProduct=ff80, bcdDevice= 4.14

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

Проверьте, есть ли в файле /etc/NetworkManager/NetworkManager.conf строка вида:

dns=dnsmasq

и закомментируйте ее. Также сделайте с ваше_usb_модемное_подключение.nmconnection в /etc/NetworkManager/system-connections если есть.

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

Файла NetworkManager.conf в /etc/NetworkManager у меня вообще нет. По второй части с .nmconnection - не понял, что надо сделать. Там есть файлы только для wifi. Или надо самому создать такой файл для usb?

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

Значит вы не используете dnsmasq и соответственно фиксить вам его не нужно. Т.е. в /etc/resolv.conf у вас не указан nameserver 127.0.0.1.

Возвращайтесь к поиску названия модуля ядра: dmesg | grep 2-4, ищите строку вида:

usb 2-4: new high-speed USB device number ... using (какой-то модуль ядра)
Obezyan
()
Ответ на: комментарий от Obezyan

Вот вывод dmesg | grep ehci-pci

localhost:/home/stanislau # dmesg | grep ehci-pci
[    1.493211] ehci-pci 0000:00:12.2: EHCI Host Controller
[    1.493220] ehci-pci 0000:00:12.2: new USB bus registered, assigned bus number 1
[    1.493227] ehci-pci 0000:00:12.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
[    1.493236] ehci-pci 0000:00:12.2: debug port 1
[    1.493287] ehci-pci 0000:00:12.2: irq 17, io mem 0xfeb09000
[    1.503883] ehci-pci 0000:00:12.2: USB 2.0 started, EHCI 1.00
[    1.515159] ehci-pci 0000:00:13.2: EHCI Host Controller
[    1.515169] ehci-pci 0000:00:13.2: new USB bus registered, assigned bus number 2
[    1.515175] ehci-pci 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
[    1.515185] ehci-pci 0000:00:13.2: debug port 1
[    1.515231] ehci-pci 0000:00:13.2: irq 21, io mem 0xfeb07000
[    1.527400] ehci-pci 0000:00:13.2: USB 2.0 started, EHCI 1.00
[    1.527897] ehci-pci 0000:00:16.2: EHCI Host Controller
[    1.527903] ehci-pci 0000:00:16.2: new USB bus registered, assigned bus number 3
[    1.527909] ehci-pci 0000:00:16.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
[    1.527919] ehci-pci 0000:00:16.2: debug port 1
[    1.527964] ehci-pci 0000:00:16.2: irq 23, io mem 0xfeb04000
[    1.540622] ehci-pci 0000:00:16.2: USB 2.0 started, EHCI 1.00
[  137.277268] usb 3-4: new high-speed USB device number 2 using ehci-pci
[  171.543931] usb 3-4: new high-speed USB device number 3 using ehci-pci
stanislau
() автор топика
Ответ на: комментарий от stanislau

По логам все хорошо кроме того что нет ни rndis ни ncm сообщений. Походу, ваш xiaomi работал через rndis и очередное обновление системы его выпилило. Если не ошибаюсь rndis теперь deprecated.

Попробуйте выполнить перед подключением телефона через USB кабель:

sudo modprobe rndis_host

Походу, вас задело вот этой драмой.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Obezyan, Вы правы. Ввел в терминале modprobe rndis_host и все заработало. Спасибо за содействие. Надо теперь на работе проверить сработает ли данный «рецепт». Теперь после каждой перезагрузки надо будет подгружать rndis_host или теперь то, что он включен сохраниться? И отдельное «спасибо» ментейнерам ядра - нашли богомерзкий майкрософтовский драйвер (или написанный по спецификации майкрософт) и героически его отключили. Сделать что-то взамен - не, не наш метод:) А что будет, если они из ядра его совсем удалят?

stanislau
() автор топика
Последнее исправление: stanislau (всего исправлений: 1)
Ответ на: комментарий от stanislau

Теперь после каждой перезагрузки надо будет подгружать rndis_host или теперь то, что он включен сохраниться?

Либо подгружать вручную каждый раз после перезагрузки, либо настроить udev чтобы модуль подгружался автоматически при обнаружении устройства, либо загружать его принудительно прописав /etc/modules-load.d/rndis_host.conf

# Load rndis_host.ko at boot
rndis_host

выбор за вами.

А что будет, если они из ядра его совсем удалят?

Обязательно удалят, даже не сомневайтесь - преодолевать пропасть в два прыжка это путь современных Линуксов. Вместо него будет какой-нибудь cdc-ecm который хоть и старше rndis и в отличии от последнего хоть как-то стандартизирован.

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

но это не работает.

Значит у вас не /etc/modules-load.d/, а файл /etc/modules. Допишите туда строчку rndis_host. Вообще, этот момент уже легко гуглится.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Нет, есть только /etc/modules-load.d. Но я создал папку /etc/modules и в нее поместил rndis_host.conf - все равно автоматически этот драйвер не включается. Еще посмотрел папку /run/modules-load.d - такой нет.modules-load.d есть в /usr/lib/modules-load.d, куда я так же поместил rndis_host.conf. Но и этом случае после перезагрузки драйвер автоматически не загружается.

stanislau
() автор топика
Последнее исправление: stanislau (всего исправлений: 1)
Ответ на: комментарий от stanislau

Походу папка есть, а службы - нет. Покажите:

sudo systemctl status systemd-modules-load

Да, и еще проверьте чтобы в /etc/modules-load.d/rndis_host.conf в конце была новая пустая строка. Я не помню уже влияет это или нет при старте.

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

Вывод:

● systemd-modules-load.service - Load Kernel Modules
     Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
     Active: active (exited) since Sat 2023-11-25 22:37:24 +03; 2min 43s ago
       Docs: man:systemd-modules-load.service(8)
             man:modules-load.d(5)
    Process: 582 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/S>
   Main PID: 582 (code=exited, status=0/SUCCESS)
        CPU: 7ms
~
~

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

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

Похоже не правильно сделан конфиг для rndis. Посмотрел журнал journalctl -u systemd-modules-load.service

ноя 26 02:01:55 localhost systemd-modules-load[206]: Inserted module 'msr'
ноя 26 02:01:55 localhost systemd-modules-load[206]: Inserted module 'scsi_dh_alua'
ноя 26 02:01:55 localhost systemd-modules-load[206]: Inserted module 'scsi_dh_emc'
ноя 26 02:01:55 localhost systemd-modules-load[206]: Inserted module 'scsi_dh_rdac'
ноя 26 02:01:55 localhost systemd-modules-load[206]: Inserted module 'dm_multipath'
ноя 26 02:01:55 localhost systemd[1]: Finished Load Kernel Modules.
ноя 26 02:02:02 localhost systemd[1]: systemd-modules-load.service: Deactivated successfully.
ноя 26 02:02:02 localhost systemd[1]: Stopped Load Kernel Modules.
ноя 26 02:09:22 localhost.localdomain systemd[1]: systemd-modules-load.service: Deactivated successfully.
ноя 26 02:09:22 localhost.localdomain systemd[1]: Stopped Load Kernel Modules.
ноя 26 02:09:22 localhost.localdomain systemd[1]: Stopping Load Kernel Modules...
ноя 26 02:09:22 localhost.localdomain systemd[1]: Starting Load Kernel Modules...
ноя 26 02:09:22 localhost.localdomain systemd-modules-load[4223]: libkmod: kmod_config_parse: /etc/modprobe.d/rndis_host.conf line 2: ignoring bad line starting with 'rndis_host'
ноя 26 02:09:22 localhost.localdomain systemd-modules-load[4223]: Module 'rndis_host' is deny-listed (by kmod)
ноя 26 02:09:22 localhost.localdomain systemd[1]: Finished Load Kernel Modules.

Ругается на вторую строку конфига. Не понимаю, там же только rndis_host написано и все. Что не так?

stanislau
() автор топика
Последнее исправление: stanislau (всего исправлений: 1)
Ответ на: комментарий от stanislau

Похоже не правильно сделан конфиг для rndis.

  1. удалите /etc/modprobe.d/rndis_host.conf. Это вам подсказали по другому пути решения этой проблемы. Давайте сначала попробуем решить тем путем что начали.

  2. проверьте что файл /etc/modules-load.d/rndis_host.conf на месте и содержит строку rndis_host

  3. проверьте что в /etc/modprobe.d/blacklist.conf нет упоминания rndis_host т.к. об этом шепчет строка лога:

ноя 26 02:09:22 localhost.localdomain systemd-modules-load[4223]: Module 'rndis_host' is deny-listed (by kmod)
Obezyan
()
Ответ на: комментарий от Obezyan
  1. удалил
  2. проверил - сторока есть https://imgur.com/dvOuJb6.
  3. Файла blacklist в папке /etc/modprobe.d нет

Module ‘rndis_host’ is deny я видел, но кто и где его запрещает не понятно.

stanislau
() автор топика
Последнее исправление: stanislau (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Файл 50-blacklist-rndis.conf лежит в /usr/lib/modprobe.d/. Я закоментировал стоку с rndis_host и все заработало даже без rndis_host.conf.

# RNDIS is considered insecure (bsc#1205767, jsc#PED-5731)
blacklist rndis_wlan
blacklist usb_f_rndis
#blacklist rndis_host
stanislau
() автор топика
13 января 2024 г.
Ответ на: комментарий от stanislau

Please don't edit any of the configuration files shipped in this package. Instead, copy the files from /lib/modprobe.d to /etc/modprobe.d, preserving the file name, and edit the copy under /etc/modprobe.d. Likewise for /lib/depmod.d vs. /etc/depmod.d and /usr/lib/modules-load.d vs. /etc/modules-load.d.

https://github.com/openSUSE/suse-module-tools

то есть правильно скопировать этот файл в /etc/modprobe.d и там внести изменения

Wind ★★★
()