[Armadillo:03803] シリアル通信エラー(受信データの取りこぼし)とcron実行の関係について
Nacamula
email@hidden
2008年 12月 11日 (木) 22:34:56 JST
お世話になっております。
nakamuraと申します。
シリアル受信にて問題が行っております。
原因・対応策をご存知が方がいらっしゃましたら、
ご教授ください。
現象)
シリアル通信エージング試験中、ある時刻になると、
データ取りこぼしが発生する。
環境)
Armadillo-9を2台使用。(各々をA,Bとします。)
Debian Linux Serge(カーネル 2.6.12.3-a9-10)
CFカードからのBOOTにしています。
シリアルの設定
ポート:COM2
ボーレート:19200bps
データビット:8ビット
パリティ:なし
ストップビット:1ビット
カノニカルモードにて通信。
AからBに対してコマンド(32byte)を通知し、
コマンドに応じたデータ(534byte)をBからAに送信します。
エージング試験を実施すると、
通信エラー(データ取りこぼし1〜32byte程度)が発生します。
解析結果)
通信エラーが発生するのは、試験開始からの時間ではなく、
時刻に関係することがわかりました。必ず6:25にエラーが発生します。
(昼間は現象が出ません。)
一定時刻に現象が発生するため、cronの設定を確認したところ、
以下の記述がありました。
armadillo9:/etc# cat crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.daily ★
47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.weekly
52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.monthly
#
★は、06:25実行となっております。
また、/etc/cron.dailyの中身は、
armadillo9:/etc# ls -la cron.daily
合計 48
drwxr-xr-x 2 root root 4096 2008-10-09 22:56 .
drwxr-xr-x 60 root root 4096 2008-12-09 13:31 ..
-rw-r--r-- 1 root root 102 2004-07-29 06:48 .placeholder
-rwxr-xr-x 1 root root 502 2004-11-02 04:42 bsdmainutils
-rwxr-xr-x 1 root root 774 2005-01-28 06:06 exim4-base
-rwxr-xr-x 1 root root 419 2004-11-21 21:31 find
-rwxr-xr-x 1 root root 89 2004-06-11 23:42 logrotate
-rwxr-xr-x 1 root root 946 2005-01-06 02:14 man-db
-rwxr-xr-x 1 root root 86 2004-12-18 01:28 modutils
-rwxr-xr-x 1 root root 495 2004-10-25 01:33 netkit-inetd
-rwxr-xr-x 1 root root 2571 2004-07-29 06:48 standard
-rwxr-xr-x 1 root root 1307 2004-11-07 21:25 sysklogd
armadillo9:/etc#
となっておりました。
cron.dailyが実行される際に、CPUの負荷が高まり、
シリアルデータ取りこぼしが発生するのではないかと推測しております。
1. cron.dailyでのjob実行がシリアル通信に悪影響を及ぼす事はありえるでしょうか
?
2. cron.dailyで実行しているジョブは必要なものなのでしょうか?
(削除しても問題ない?)
以上、
よろしくお願いします。
armadillo メーリングリストの案内