Сейчас второй раз выключил питание, подождал около минуты, потом включил питание и usb0 не поднялся, файл сново занят, лампа GSM мигает.
Мне кажется висит wb-gsm restart_if_broken
, так как в последнем случае есть только /sbin/ifup -a --read-environment
и скорее всего этот процесс запустил процесс /bin/sh -c wb-gsm restart_if_broken
, и последний висит бесконечно.
Запустил wb-gsm restart_if_broken
отдельно, сработал как положено.
Но тот который был запущен /sbin/ifup -a --read-environment
, все ещё висит.
В итоге я написал небольшую программу https://github.com/mitya-borodin/butler/blob/3b1bce451fe8ede4237d9d8518da338370698c6e/wirenboard/src/infrastructure/external-resource-adapters/ifup.ts#L13-L14 для запуска команд и контроля наличия интернета.
И осталась единственная проблема, почему-то когда эта программа запускается через крон при старте системы зависает wb-gsm restart_if_broken
, но если потом запустить из консоли эту программу, то все заводится как положено, может быть действительно все время проблема была в wb-gsm ?
Вот этот случай, моя прога запускается кроном по @reboot
, и после запуска ждет 2 минуты.
После чего запускает процесс wb-gsm restart_if_broken
, и этот процесс зависает
Проще говоря, мне нужно, чтобы wb-gsm restart_if_broken
гарантированно запускался после off/on питания, команды reboot
, команды shutdown -P
. Почему он застревает не понятно.
Воспроизвел, копаю к причинам.
Добрый день. В 2207 релизе воспроизводится?
Я не проверял, так как решил при помощи javascript кода запущенного на nodejs, и смонтировал щит.
Как буду делать код для управления отопления, проверю.
у меня тоже подобные проблемы… есть решение?
root@wirenboard-AV3676B6:~# cat /etc/wb-fw-version
202207071506
Как выглядят? Логи?
выглядит это так, что интерфейс usb0 не поднимается после перезагрузки.
какие логи вам предоставить?
root@wirenboard-AV3676B6:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up wb-set-mac
hostname WirenBoard
allow-hotplug eth1
iface eth1 inet dhcp
pre-up wb-set-mac
hostname WirenBoard
auto usb0
allow-hotplug usb0
iface usb0 inet dhcp
pre-up wb-gsm restart_if_broken
pre-up sleep 10
Пользуйтесь для текстов цитированием (```) в начале и в конце текста, иначе движок форума форматирование ест.
Логи - именно включения модема, выдачи адреса.
И, кстати, добавьте перед самим включением паузу на 5 секунд.
вот кусок dmesg
[ 56.678947] 21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 225, base_baud = 5000000) is a IMX
[ 58.561148] 2288000.serial: ttymxc7 at MMIO 0x2288000 (irq = 226, base_baud = 5000000) is a IMX
[ 59.084568] gpio-19 (wbmz2_i2c_0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 59.120143] gpio-18 (wbmz2_i2c_0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 59.699462] i2c-gpio wbmz2_i2c_0: using lines 19 (SDA) and 18 (SCL)
[ 118.260367] usb 2-1.3: new high-speed USB device number 4 using ci_hdrc
[ 118.461195] usb 2-1.3: New USB device found, idVendor=1286, idProduct=812a, bcdDevice= 0.00
[ 118.469614] usb 2-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[ 118.477032] usb 2-1.3: Product: WUKONG
[ 118.480817] usb 2-1.3: Manufacturer: MARVELL
[ 118.729756] usb 2-1.3: USB disconnect, device number 4
[ 124.910383] usb 2-1.3: new high-speed USB device number 5 using ci_hdrc
[ 125.090913] usb 2-1.3: config 1 has an invalid interface number: 5 but max is 4
[ 125.098305] usb 2-1.3: config 1 has no interface number 3
[ 125.204353] usb 2-1.3: New USB device found, idVendor=1e0e, idProduct=9011, bcdDevice= 1.00
[ 125.212810] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 125.220150] usb 2-1.3: Product: Mobile Composite Device Bus
[ 125.225851] usb 2-1.3: Manufacturer: Marvell
[ 125.230130] usb 2-1.3: SerialNumber: 200806006809080000
[ 125.509710] usbcore: registered new interface driver cdc_ether
[ 125.605412] usbcore: registered new interface driver option
[ 125.621718] rndis_host 2-1.3:1.0 usb0: register ‘rndis_host’ at usb-ci_hdrc.1-1.3, RNDIS device, d6:44:1e:ee:25:00
[ 125.660440] usbserial: USB Serial support registered for GSM modem (1-port)
[ 125.693659] usbcore: registered new interface driver rndis_host
[ 125.728986] option 2-1.3:1.2: GSM modem (1-port) converter detected
[ 125.791972] usb 2-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[ 125.803539] option 2-1.3:1.4: GSM modem (1-port) converter detected
[ 125.884866] usb 2-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[ 125.950679] option 2-1.3:1.5: GSM modem (1-port) converter detected
[ 126.015335] usb 2-1.3: GSM modem (1-port) converter now attached to ttyUSB2
Как и куда мне добавить паузу на 5 секунд?
root@wirenboard-AV3676B6:~# ip link
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: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 80:34:28:11:d5:76 brd ff:ff:ff:ff:ff:ff
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 80:34:28:12:2a:c0 brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
5: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether f0:c8:14:48:5c:2e brd ff:ff:ff:ff:ff:ff
6: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether f2:c8:14:48:5c:2e brd ff:ff:ff:ff:ff:ff
7: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether d6:44:1e:ee:25:00 brd ff:ff:ff:ff:ff:ff
root@wirenboard-AV3676B6:~# ifup usb0
ifup: waiting for lock on /run/network/ifstate.usb0
^C
root@wirenboard-AV3676B6:~# fuser /run/network/ifstate.usb0
/run/network/ifstate.usb0: 438 5685
root@wirenboard-AV3676B6:~# ps axl |grep 438
4 0 438 1 20 0 1392 944 wait Ss ? 0:00 /sbin/ifup -a --read-environment
0 0 5012 438 20 0 1428 952 wait S ? 0:00 /bin/sh -c wb-gsm restart_if_broken
1 112 14930 1153 20 0 194384 11280 epoll_ Ss ? 0:00 postgres: 9.6/main: sensorclient sensorclient 127.0.0.1(50600) idle
1 112 14995 1153 20 0 194388 11284 epoll_ Ss ? 0:00 postgres: 9.6/main: sensorclient sensorclient 127.0.0.1(50602) idle
1 112 15000 1153 20 0 194384 11280 epoll_ Ss ? 0:00 postgres: 9.6/main: sensorclient sensorclient 127.0.0.1(50604) idle
1 112 15001 1153 20 0 194384 11280 epoll_ Ss ? 0:00 postgres: 9.6/main: sensorclient sensorclient 127.0.0.1(50606) idle
1 112 15016 1153 20 0 194384 11280 epoll_ Ss ? 0:00 postgres: 9.6/main: sensorclient sensorclient 127.0.0.1(50608) idle
0 0 21261 8355 20 0 5372 1688 pipe_r S+ ttymxc0 0:00 grep 438
root@wirenboard-AV3676B6:~# ps axl |grep gsm
0 0 5012 438 20 0 1428 952 wait S ? 0:00 /bin/sh -c wb-gsm restart_if_broken
0 0 5013 5012 20 0 3200 2504 pipe_r S ? 0:00 /bin/bash /usr/bin/wb-gsm restart_if_broken
1 0 5806 5013 20 0 3200 1764 pipe_r S ? 0:00 /bin/bash /usr/bin/wb-gsm restart_if_broken
1 0 5856 5806 20 0 3200 1764 wait S ? 0:00 /bin/bash /usr/bin/wb-gsm restart_if_broken
0 0 21477 8355 20 0 5372 1668 pipe_r S+ ttymxc0 0:00 grep gsm
если убить процесс 438, то можно поднять usb0
root@wirenboard-AV3676B6:~# kill 438
root@wirenboard-AV3676B6:~# ifup usb0
ifup: interface usb0 already configured
root@wirenboard-AV3676B6:~# ifdown usb0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/usb0/d6:44:1e:ee:25:00
Sending on LPF/usb0/d6:44:1e:ee:25:00
Sending on Socket/fallback
DHCPRELEASE on usb0 to 192.168.0.1 port 67
send_packet: Network is unreachable
send_packet: please consult README file regarding broadcast address.
dhclient.c:2733: Failed to send 300 byte long packet over fallback interface.
sudo: unable to resolve host wirenboard-AV3676B6: No such file or directory
root@wirenboard-AV3676B6:~#
root@wirenboard-AV3676B6:~# ifup usb0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/usb0/d6:44:1e:ee:25:00
Sending on LPF/usb0/d6:44:1e:ee:25:00
Sending on Socket/fallback
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5
DHCPREQUEST of 192.168.0.100 on usb0 to 255.255.255.255 port 67
DHCPOFFER of 192.168.0.100 from 192.168.0.1
DHCPACK of 192.168.0.100 from 192.168.0.1
bound to 192.168.0.100 -- renewal in 35987 seconds.
sudo: unable to resolve host wirenboard-AV3676B6: No such file or directory
root@wirenboard-AV3676B6:~#
Перед вызовом
pre-up wb-gsm restart_if_broken
еще паузу
pre-up sleep 5
Да, гонка в процессе запуска. Думаю, с переходом на новую систему управления сетью (уже в тестинге) будет проще.
то есть конфиг должен выглядеть так?
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up wb-set-mac
hostname WirenBoard
allow-hotplug eth1
iface eth1 inet dhcp
pre-up wb-set-mac
hostname WirenBoard
auto usb0
allow-hotplug usb0
iface usb0 inet dhcp
pre-up sleep 5
pre-up wb-gsm restart_if_broken
pre-up sleep 10
это не сработало
Попробуйте для теста еще больше поставить:
auto usb0
allow-hotplug usb0
iface usb0 inet dhcp
pre-up sleep 30
pre-up wb-gsm restart_if_broken
pre-up sleep 10
На сколько я понял, заводского решения ещё нет ?