[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 メーリングリストの案内