Просмотр сообщений
Страниц: 1 [2] 3 4 ... 42
16  Разработка / Программирование под QNX 4.x / Re: KEEPALIVE в QNX4.25 : Января 13, 2017, 05:53:50 pm
Для обнаружения физического разрыва соединения предполагается использовать опцию SO_KEEPALIVE.
Включение и изменение периода неактивности (по умолчанию 2 часа) делается следующим образом:

Код: (C)
int on = 1;  struct timeval tval = { 20, 0 };

// Включение
setsockopt(Sock, SOL_SOCKET,  SO_KEEPALIVE,  (void*)&on,   sizeof(on));
// Изменение периода неактивности
setsockopt(Sock, IPPROTO_TCP, TCP_KEEPALIVE, (void*)&tval, sizeof(tval));
К сожалению уже довольно давно не занимаюсь QNX, но вроде TCP_KEEPALIVE требовало int*, а не struct timeval*.

Подскажите, есть ли возможность изменить количество пакетов (по умолчанию - 8 ) и таймаут между ними (по умолчанию 75 сек)?
Не уверен. Возможно какие-то настройки можно сделать через sysctl, если у Вас версия реализации стека протоколов TCPIP 5.0, а не 4.25.
17  Разработка / Программирование под QNX / Re: TCP/IP Серверы, клиент и утилита on : Ноября 28, 2016, 10:54:02 am
on -f A2 cl &
не помогает?
18  Разработка / Программирование под QNX / Re: Смена пароля из программы : Июля 20, 2016, 11:44:52 am
В QNX 6.5.0 (КПДА) после логина запускается прикладная программа на Qt 4.8.5.
Необходимо иметь возможность изменять пароль из программы или из скрипта.

Проблема в том, что passwd использует не stdin и stdout. Перенаправить ввод не удается.

Что подскажете?
Как вариант - попробовать запустить passwd в псевдотерминале - см forkpty(), и через полученный дескриптор master-side pty передавать ему новые пароли.
19  Разработка / Программирование под QNX 4.x / Re: QNX4.25 background color in pterm : Мая 27, 2016, 06:18:39 pm
Хотелось бы узнать по подробнее применительно к QNX.
Пробовал
Код: (C)
printf("\x1b[31m hello");
выводит
Цитировать
31m hello
или так
Код:
echo -en "\e[33;44m"
не работает

К сожалению давно уже не работаю с QNX4. Возможно у Вас в pterm-е включена эмуляция терминала QNX вместо ANSI? Как настроить pterm можно посмотреть здесь.
А тут советуют использовать вместо 0x1b  использовать ESC-код 0x9b. Ну и плюс какие-то немного другие коды используют для переключения цветов. Правда не понятно, для какого pterm-а, того, который в Photon 1.1x(QNX4), или того, который в Photon 2.0(QNX6).
20  Разработка / Программирование под QNX 4.x / Re: QNX4.25 background color in pterm : Мая 27, 2016, 09:53:22 am
Здравствуйте! Smiley

Подскажите команды, как изменить цвет шрифта и фона в консоли ksh
в сценарии?

Спасибо!
А стандартные ANSI ESC-коды не работают?
21  Разработка / Программирование под QNX / Re: promiscuous mode QNX 6.5.X : Января 19, 2016, 08:46:12 pm
Хорошо, а можно ли это как-то сделать с помощью сокетов или bpf, но так, чтобы это повлияло на всё, что работает с этим интерфейсом, а не только на bpf или сокет, через которые были произведены эти изменения.

И promisc слетит, наверно, когда будет закрыт сокет или bpf?
к сожалению давно уже не занимаюсь QNX, так-что могу ошибаться, но судя по гуглу есть такой ioctl BIOCPROMISC, при помощи которого можно попытаться перевести в promisc. Правда смущает, что в примерах, например здесь, его закомментировали и не используют.

По поводу второго вопроса - Вы можете поэкспериментировать, скорее всего да - после завершения Вашей программы этот режим отключится.
22  Разработка / Программирование под QNX / Re: promiscuous mode QNX 6.5.X : Января 19, 2016, 01:43:56 pm
Поищите, может есть возможность через devctl. В старых версиях QNX , где был io-net, это можно было сделать через DCMD_IO_NET_PROMISCUOUS, который надо было применить к устройству /dev/io-net/enX.
23  Установка и настройка / Установка и настройка / Re: Помогитера клонировать диск с QNX : Ноября 05, 2015, 12:53:58 pm
диски по размеру одинаковые. Но так как вендоры разные то наверное геометрия тоже разная.
На исходном диске есть запись [img=http://s10.postimg.org/kpnn6l445/hdd_Maxtor.jpg]
Судя по Google, для данного диска CHS=9729/255/63 (если я правильно помню, то это уже режим LBA), необходимо, что-бы на диске реципиенте была аналогичная геометрия.
24  Установка и настройка / Установка и настройка / Re: Помогитера клонировать диск с QNX : Ноября 04, 2015, 08:00:31 pm
Smiley за некрофилию не пинайте... вопрос снова актуальный...
делаю посекторное копирование с помощью dd.
В результате получился архивный iso файл .
После этого запускаю обратный процесс восстановления на другой диск.  В результате стартует загрузчик з ошибкой:
qnx loader boot partition 1 missing operating system
кто может что посоветовать?
как понимаю загрузчик не знает откуда грузить систему с DOS. Как это можно исправить??
Диск на который "восстанавливаете" такого-же размера и геометрии, как исходный?
25  Разработка / Программирование под QNX / Re: Скрипт для QNX. Поиск файлов по времени - Shell : Октября 27, 2015, 09:06:39 am
как минимум в начале файла не хватает указания интерпретатора:
Код:
#!/bin/sh
а ещё, ">" в expr надо экранировать.

У меня получилось так:
Код:
#!/bin/sh
oldIFS="$IFS"
 
IFS=":"
alrt()
{
  x=$1
  z=$(expr $x \> 100)
  if [ $z == 1 ]
  then
     echo "Found more than 100 files!!!"
     rm $buf
     exit 1
  fi
}

#Data write

echo -n "Input date in format: dd:mm:yyyy "
read d m y

if test -z $d || test -z $m || test -z $y
then
   echo "Invalid date!!! Exit!!!"
   exit 1
fi
 
IFS="oldifs"
 
#Find
 
buf="buf"
touch buf
touch -t "${y}${m}${d}0000" "$buf"

a=$(find . -type f -newer "$buf" -exec ls '{}' ';' | wc -l)

alrt $a
if test -z "$a"
then
  n=0
fi
if test -z "$1"
then
  fn="FIND.TXT"
else
  fn=$1
fi
 
if test -f "$fn"
then
   echo -n "$fn exists. Overwrite? (y/n): "
   read yn
fi

case $yn in

'y' | 'Y' ) echo "$a" > "$fn";;
'n' | 'N' ) echo "$a" >> "$fn";;
* ) echo "$a" >> "$fn";;

esac

echo "found $n file(s)"
echo "-----------------------------------------" >> "$fn"
echo "found $n file(s)" >> "$fn"

rm "$buf"
exit 0
26  Разработка / Программирование под QNX / Re: Медленный memcpy из памяти выделенной mmap : Сентября 28, 2015, 12:19:47 pm
1.
Код:

uint8_t data[1024*1024] __attribute__ ((aligned (64)));
int main(){
void* virt_addr = mmap(0, sizeof(data), PROT_READ | PROT_WRITE | PROT_NOCACHE, MAP_PHYS | MAP_ANON | MAP_PRIVATE, NOFD, 0);
memcpy(data, virt_addr, sizeof(data));
}

2.
Код:

uint8_t data[1024*1024] __attribute__ ((aligned (64)));
int main(){
void* virt_addr = new uint8_t[sizeof(data)];
memcpy(data, virt_addr, sizeof(data));
}


Первый код выполняется порядка 45-50 мс, второй 2.7
Как можно оптимизировать первый?
QNX 6.5, платформа Freescale PowerPC P4080
Сорри, не большой знаток Freescale PowerPC P4080, так-что могу ошибаться, но мне кажется, что очень может влиять PROT_NOCACHE.
27  Разработка / Программирование под QNX 4.x / Re: Поток в программе при завершении становится зомби : Августа 20, 2015, 12:31:58 pm
Сорри, давно не работаю с QNX, так-что могу ошибаться, надеюсь остальные посетители форума меня поправят, если буду не прав. Мне кажется, что Вы подключаете proxy к основному потоку, который выполняет main(), а не к потоку, который выполняет thread_proxy(). В документации написано, что proxy trig-нуть может кто угодно, но получить этот самый trig - только тот процесс, к которому подключена proxy.
28  Разработка / Программирование под QNX 4.x / Re: Поток в программе становится зомби : Августа 18, 2015, 02:54:22 pm
Здравствуйте!

Столкнулся со следующей проблемой:
Есть поток, запускаемый в программе
при запуске программы, при вызове функции sound_, в системе появляется по одному ZOMBIE.
Если я комментирую _beginthread, то зомби в системе нет.
Что я делаю не корректно, ведь в документации сказано, что поток должен завершаться функцией _endthread ?
Важная вещь: программа запускается под VirtualBox, система QNX4.2. Вывод процессов осуществляется графической функцией sin.

Насколько я помню, потоки в QNX4 не являются полнофункциональными - на самом деле это процессы, которые разделяют общее адресное пространство.
Если поискать по архивам форума, то можно найти такое обсуждение.

Я не уверен, но можно попробовать сделать следующее - идентификатор потока, возвращаемый функцией _beginthread() передать на ожидание функции wait() или waitpid(), но это в документации не описано и будет работать или нет - не известно.
29  Разработка / Программирование под QNX / Re: Изображение символа градуса в mqc : Июля 02, 2015, 10:26:48 am
а в чём конкретно у Вас проблема? К сожалению не знаю, как в QNX 6.5.0, а в 6.3.2 в pterm с запущенным ksh он вполне себе отображается. Код знака градуса 0xb0 или 0260, если в восьмиричной системе.
Код:
# echo \\0260
°
#
mqc у меня нет, так-что проверить на нём конкретно я не могу, сорри.
30  Общее / Общение / Re: ОСРВ QNX использует ли виртуальную память? : Июня 25, 2015, 02:02:03 pm
Что Вы понимаете под "сама ОС"?
Спасибо большое за развернутые ответы. Под "сама ОС", я имел ввиду ОС QNX из коробки. ))
Просто в контексте QNX ОС эта некоторое количество опционально запускаемых процессов. В принципе даже само ядро разбито на такие процессы. Соответственно, если Вам, например, не нужна сеть - Вы не запускаете сетевой менеджер, не нужна ФС - не запускаете дисковый менеджер.

Еще маленький вопрос. ) А если недостаточно памяти ОЗУ, QNX создаст своп-файл для своих нужд?
Насколько я знаю, swap-а в QNX нет.
Страниц: 1 [2] 3 4 ... 42