Невозможно установить тайм-аут сторожевого таймера встроенного Linux

Я разрабатываю свое приложение для микропроцессора на базе ARM9, используя UBUNTU 12.04 и Qt4.8.

У меня есть реализация сторожевого таймера.

Я реализовал сторожевой таймер следующим образом.

int timeout = 30;    /* time in seconds */
int rc = -1;    /* return value */
int fd = -1; /* WDT Timer File Descriptor*/

fd = open(WDT_DEVICE, O_WRONLY));
if(-1 == fd)
{
    qDebug() << Q_FUNC_INFO << "Failed to Open Device : " << WDT_DEVICE;
    return -1;
}


if(ioctl(fd,WDIOC_SETTIMEOUT, &timeout) != 0)
{
    qDebug() << Q_FUNC_INFO << "Failed to set the timeout interval of : " << timeout;
    return -1;
}


if(ioctl(fd,WDIOC_GETTIMEOUT, &timeout) != 0);
{
    qDebug() << Q_FUNC_INFO << "Failed to Get the timeout interval of : " << timeout;
    return -1;
}

Здесь я не могу установить интервал времени ожидания. Таким образом, по умолчанию применяется таймаут системного сторожевого таймера 10 секунд.

ioctl(fd,WDIOC_SETTIMEOUT, &timeout)

возвращает -1 и терпит неудачу.

Я хочу использовать таймаут 30 секунд. как я могу это сделать?


person Parthiv Shah    schedule 08.07.2014    source источник
comment
Возможный дубликат Изменить сторожевой таймер в Linux. Также проверьте разрешения устройства.   -  person artless noise    schedule 08.07.2014
comment
Та же проблема, но я все же не смог установить интервал времени ожидания.   -  person Parthiv Shah    schedule 09.07.2014
comment
Да, мне нужно будет проверить проблему с разрешением. Тогда я возвращаюсь к вам.   -  person Parthiv Shah    schedule 09.07.2014
comment
отсутствие эффекта после изменения разрешения означает, что это не проблема привилегий.   -  person Parthiv Shah    schedule 09.07.2014
comment
У меня есть один способ настроить его. Его можно настроить, изменив модуль драйвера сторожевого таймера ядра. Для этого времени ожидания есть макрос, который по умолчанию установлен на 10, мы можем изменить его в соответствии с вашими потребностями.   -  person Parthiv Shah    schedule 14.07.2014