Начиная с версии ПО 0.2.18-r5 была добавлена поддержка netconsole, но только после старта сети в rootfs.
Запуск зависит от переменных среды бутлоадера nc_ip - обязательна для запуска. nc_port - необязательна для запуска. Также можно передать эти параметры по DHCP:
option Infomir.nc_ip code 30 = ip-address; option Infomir.nc_port code 31 = integer 16;
option Infomir.nc_ip 192.168.1.xxx; option Infomir.nc_port 3333;
При этом параметры из DHCP имеют более высокий приоритет
Также добавлена поддержка syslog.
Управляется переменной среды бутлоадера syslog_srv
которая может принимать значение
host:port
или просто host
, порт по умолчанию 514
syslog_srv=192.168.1.1:2222
Также можно передать эти параметры по DHCP:
option Infomir.syslog_srv code 32 = text; option Infomir.syslog_srv "192.168.1.1:2222";
При этом параметры из DHCP имеют более высокий приоритет. При включенном syslog в него попадает syslog плеера (если он включен из JS API), сообщения ядра(klogd) и весь вывод /test.sh включая stderror.
После установки переменной среды изменения вступят в силу после перезапуска приставки.
Можно форсировать изменения с помощью вызовов:
gSTB.ServiceControl("netconsole","restart"); gSTB.ServiceControl("syslog","restart");
Для того, чтобы получить логи на сервере можно запустить netcat: nc -l -u 2222
Внимание! В отличии от netconsole, лог от syslog будет показываться без перевода строки.
Для более удобного чтения syslog обычно на сервере запускают syslogd со следующими параметрами: syslogd -r -m 0
При этом подразумевается, что на приставке либо не указывается порт для syslog, либо используется стандартный порт 514.
Ссылки по теме:
aptitude install rsyslog
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
rsyslog
:/etc/init.d/rsyslog restart
tail -f /var/log/syslog | grep -i 'ip_или_имя_хоста_остылающего_syslog'
Внимание! не забудьте открыть указанные порты в firewall, если используется