Jump to content

Recommended Posts

Posted

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

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

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

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

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

Posted

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

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 # 

 

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
Posted
48 минут назад, vasek00 сказал:

lsof -p 1695

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

lsof -p $(pgrep nvox)

 

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

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

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

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

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

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

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

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

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

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
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

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.

  • Recently Browsing   0 members

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

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.