Jump to content

Как узнать что модуль DECT подключен к роутеру и работоспособен ли он в полном объеме?


Recommended Posts

Друзья, доброго всем дня 

Будет ли у Вас возможность помочь мне с вопросом обозначенным в теме - речь идет о том, чтобы такая возможность была обеспечена посредством команд CLI или entware?
Из доступных вариантов вижу только вариант с проверкой системного лога и списка запущенных процессов, не уверен, что это на 100% гарантирует ответ на вопрос "подключен ли модуль DECT к роутеру" и функционирует ли он полностью?

dmesg | grep 'Keenetic Plus DECT'
ps | grep nvox | tail -1

Может будут другие варианты?

В CLI ничего на эту тему не смог найти, как и на самом форуме. Возможно плохо искал. 
Если будет возможность дайте пожалуйста ссылку на источник, если сможете найти ответ на этот вопрос в полном объеме. 

Link to comment
Share on other sites

Подключен тогда по конф

nvox
    dect
        base
            serial ххххххххххххххх
        !
    !
    fxs
        port 1
        !
        port 2
        !
    !
    sip-common
        stun-server stun.l.google.com:19302
...

Далее по

/dev/bus/usb/001 # ps | grep nvox
 1695 root      9240 S    /usr/bin/nvox --config /var/run/nvox.conf --notify /var/run/nvox-notify.fb
/dev/bus/usb/001 # 

Далее

[  183.486576] usb 1-2: new full-speed USB device number 3 using xhci-mtk
[  183.638480] usb 1-2: New USB device found, idVendor=0586, idProduct=3428
[  183.649251] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  183.660866] usb 1-2: Product: Keenetic Plus DECT
[  183.667537] usb 1-2: Manufacturer: ZyXEL
[  183.672806] usb 1-2: SerialNumber: ххххххххххххххх

/dev/bus/usb/001 # lsof -p 1695
COMMAND  PID USER   FD      TYPE     DEVICE SIZE/OFF  NODE NAME
...
nvox    1695 root   11u      CHR      189,2      0t0 12376 /dev/bus/usb/001/003
...

/dev/bus/usb/001 # lsusb
Bus 001 Device 003: ID 0586:3428 ZyXEL Keenetic Plus DECT
Bus 001 Device 001: ID 1d6b:0002 Linux 4.9-ndm-5 xhci-hcd xHCI Host Controller
Bus 002 Device 002: ID 1f75:0621  
Bus 002 Device 001: ID 1d6b:0003 Linux 4.9-ndm-5 xhci-hcd xHCI Host Controller
/dev/bus/usb/001 # 

 

Link to comment
Share on other sites

Posted (edited)

@vasek00 Благодарю Вас.

Цитата

Подключен тогда по конф

Напомните пожалуйста, где лежит конфигурации файл?

Только не получается по lsusb получить результат как у Вас. Мой вариант вывода:

bash-5.1# lsusb
Bus 002 Device 002: ID 174c:ХХХХ
Bus 001 Device 001: ID 1d6b:ХХХХ
Bus 002 Device 001: ID 1d6b:ХХХХ
Bus 001 Device 003: ID 0586:ХХХХ

Команда ниже не понятна.

lsof -p 1695

Откуда появилась данная цифра? Поясните пожалуйста.

В любом случае, даже при полной работоспособности этих команд, как определить, что модуль в порядке и работоспособен?

Edited by Zeleza
Link to comment
Share on other sites

48 минут назад, vasek00 сказал:

lsof -p 1695

Про цифру ответ нашел - он не совсем очевиден оказался при представленной Вами последовательности. 
Правильный вариант был бы следующим:

lsof -p $(pgrep nvox)

 

Link to comment
Share on other sites

38 минут назад, Zeleza сказал:

как определить, что модуль в порядке и работоспособен?

Единственное что приходит на ум, если в CLI действительно нет команд на эту тему, это проверять на наличие error в текстах системного лога:

usb_code=$(dmesg | grep 'Keenetic Plus DECT' | cut -d':' -f1 | tail -1)
dmesg | grep "$usb_code" | grep error

Гуру подскажите пожалуйста, в том ли направлении двигаюсь?

Link to comment
Share on other sites

14 минуты назад, Le ecureuil сказал:

Посмотрите в сторону ndmq и show nvox status.

@Le ecureuil Премного Вам благодарен.
Однако в документации по CLI не нашел данной команды. Смотрел в этой доке по CLI. 
image.png.47d41f315be985849a3e81ae83be2209.png

Это то, что нужно, еще раз благодарю Вас. )

Link to comment
Share on other sites

Posted (edited)

Может кому пригодится:

#--------------------------------------------------------------------------------------------------
#
#   Функция проверяет подключен ли модуль 'Keenetic Plus DECT'
#	к устройству и функционален ли он в полном объеме?
#	Возвращает 0 - в случае, если все Ок и 
#			  -1, если - нет
#
#--------------------------------------------------------------------------------------------------
function is_dect_ok(){

	local result=-1
	local dect_state_text='DECT service is running'
	local dect_online
	local dect_online_text=online
	local cli_command='show nvox status'
	local data_tree='//response/status'

	dect_online=$(ndmq -p "$cli_command" -P status/details | grep "$dect_online_text" | cut -d'=' -f5)
	dect_state=$(ndmq -p "$cli_command" -P status/state)

#	Проверяем модуль подключен ли к сети
	[[ "$dect_online" == "$dect_online_text" ]] && dect_online=0
#	Проверяем ли запущен ли сервис
	[[ "$dect_state" == "$dect_state_text" ]] && dect_state=0
#	Подводим общий итог
	[[ $dect_online -eq 0 && $dect_state -eq 0 ]] && result=0
	
	echo "$result"
}

 

Edited by Zeleza
Link to comment
Share on other sites

Posted (edited)
44 минуты назад, Zeleza сказал:

Это то, что нужно, еще раз благодарю Вас. )

чтобы такая возможность была обеспечена посредством команд CLI или entware?

dmesg | grep 'Keenetic Plus DECT'
ps | grep nvox | tail -1

Entware

Запуск ps и получение pid = 1695

ps | grep nvox
 1695 root      9240 S    /usr/bin/nvox --config /var/run/nvox.conf --notify /var/run/nvox-notify.fb

Так как это usb, то имеем у процесса с 1695 - /dev/bus/usb/001/003

lsof -p 1695
COMMAND  PID USER   FD      TYPE     DEVICE SIZE/OFF  NODE NAME
...
nvox    1695 root   11u      CHR      189,2      0t0 12376 /dev/bus/usb/001/003

тогда при установленном USB

lsusb
Bus 001 Device 003: ID 0586:3428 ZyXEL Keenetic Plus DECT

lsusb - набор утилит из пакета usbutils

 

И к посту выше основная команда xmlstarlet пакет плюс ndmq

/ # ndmq -p "show nvox status" -x 

<response>
    <status>
        <state>DECT service is running</state>
        <details>
            STATUS nvox 0.8.2.37 singledongle 
        </details>
        <details>
            DB numrecords: pb=0/500, history=0/500
        </details>
    </status>
    <prompt>(config)</prompt>
</response>

По блоку response/status

ndmq -p "show nvox status" -x | xml sel -t -m "//response/status" -v details -n 

            STATUS nvox 0.8.2.37 singledongle 
   
            DB numrecords: pb=0/500, history=0/500
        

 

Edited by vasek00
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...