reklam1

reklam1

8 Mayıs 2012 Salı

Sistem boot ederken aniden resetleniyor...

Linux boot parametrelerini değiştirdiğinizde, (yeni driver yüklemesi vb...) sistem boot ederken bazen resetlenmeye başladıysa WATCHDOG tan reset yemeye başladınız demektir.
DNW den debug edince aşağıdaki mesajı görürsünüz.
"unexpected close, not stopping watchdog."
Nedeni;

CONFIG_S3C2410_WATCHDOG_ATBOOT parametresi set edildiği için boot ederken watchdog çalışıyor.
CONFIG_S3C2410_WATCHDOG_DEFAULT_TIME parametresi default olarak 15'e set edildiği için boot süresi 15 sn yi geçtiğinde watchdog reset yiyorsunuz.

Çözüm 1- Boot ederken bir süre sonra watchdog sayacını sıfırlamalısınız (feed the dog). Bunun için küçük bir program yazıp “/etc/init.d/rcS" nin herhangi bir yerinde (15 sn den önce) bu programı çağırmalısınız.
Örnek:
...
...
fd = open("/dev/watchdog",O_RDONLY );
if(fd < 0) {
perror("/dev/watchdog");
return -1;
}
for(;;) {
ioctl(fd,WDIOC_KEEPALIVE); //keep feeding dog
sleep(3);
}
close(fd);
return 0;
}
...
...

Çözüm 2-"/opt/FriendlyARM/mini2440/linux-2.6.32.2/drivers/watchdog/s3c2410_wdt.c" dosyasinda 50. satir;
#define CONFIG_S3C2410_WATCHDOG_DEFAULT_TIME (15) tanımını değiştirmelisiniz. Ben 30 yaptığımda sorun çözüldü.

Hiç yorum yok :

Yorum Gönder

reklam4

reklam4