LINUX.ORG.RU

Автоматика rndis в gentoo

 , ,


0

2

Подключен сотовый с андроидом по USB (USB Tethering):

$ dmesg | tail -n 2
[68176.950636] rndis_host 2-6:1.0 usb0: register 'rndis_host' at usb-0000:00:1d.7-6, RNDIS device, 02:04:56:59:65:34
[68176.966433] rndis_host 2-6:1.0 enp0s29f7u6: renamed from usb0
$ egrep con.*enp0s29 /etc/conf.d/net
config_enp0s29f7u6="dhcp"
$ sudo /etc/init.d/net.enp0s29f7u6 start
 * Bringing up interface enp0s29f7u6
 *   Running preup ...
 *   Starting ifplugd on enp0s29f7u6 ...           [ ok ]
 *     Backgrounding ...
 * WARNING: net.enp0s29f7u6 has started, but is inactive
Сеть вполне фунциклирует. Но если остановить:
$ sudo /etc/init.d/net.enp0s29f7u6 stop
Password: 
 * Bringing down interface enp0s29f7u6
 *   Running predown ...
 *   Stopping dhcpcd on enp0s29f7u6 ...
 *   start-stop-daemon: 1 process refused to stop   [ !! ]
 *   Stopping ifplugd on enp0s29f7u6 ...          
dhcpcd продолжает висеть в процессах. Далее...
Если телефон отключить, интерфейс пропадает, dhcpcd завершается, но rc ведь не реагирует. Приходиться делать руками sudo /etc/init.d/net.enp0s29f7u6 stop
А при следующем подключении шланга опять sudo /etc/init.d/net.enp0s29f7u6 start
Как провославно обрабатывать события выдергивания/вдергивания телефона?


Ответ на: комментарий от cli

Наверно. Но что-то подсказывает, что лезть составлять правила своей культяпкой, не по канону. Может что съемержить? Задача вроде не кастомная.

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

NetworkManager, например, все это может.

muzenbaher
()

Вопрос - зачем тебе тут ifplugd? У меня сетевой интерфейс, подключаемый нагорячую(модем Yota) подымается сам и без него. Смотри по ключевым словам hotplug в /etc/rc.conf

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

ifplugd был получен в медитации, как предполагаемое решение.
Проблема, я так понял, заключается в следующем:
udev правила которые дрыгают rc:

$ cat /lib/udev/rules.d/90-network.rules 
# do not edit this file, it will be overwritten on update

# /etc/udev/rules/90-network.rules:  triggering network init-scripts

# Activate our network if we can
SUBSYSTEM=="net", ACTION=="add",    RUN+="net.sh %k start"
SUBSYSTEM=="net", ACTION=="remove", RUN+="net.sh %k stop"
При подключении сотового, интерфейс создается usb0 и правило отрабатывает как net.sh usb0 start. Сетевой интерфейс не создается, а переименовывается в enp0s29... из usb0, при включении USB Tethering на телефоне. udev при этом генерит ACTION==«move».
Закостылил вот так:
$ cat /etc/udev/rules.d/90-network.rules 

SUBSYSTEM=="net", ACTION=="move", RUN+="net.sh %k start":

Но останавливается все равно не грацифульно, dhcpcd не стопорится.

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

Но останавливается все равно не грацифульно, dhcpcd не стопорится.

Вылечилось обновлением netifrc (до 0.3.1)

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