ブログ

Armadillo-IoT G3/G3L/X1: BLE通信のログを抑止する

at_takuya.sasaki
2017年9月3日 18時36分

Armadillo-IoT G3/G3L/X1には、WLAN/BTコンボチップが搭載されており、BT通信が可能になります。
Bluezなどのプロトコルスタックを利用してBT通信を行っていると、以下のようなBTの通信ログが/var/log/syslogに出力され、
ディスク容量を圧迫することがあります。

armadillo kernel: hci0: type 1 len 6

ログローテーションの設定を変更する方法もありますが、今回はログ自体を出さなくする方法を紹介します。

まず、当該のログですが、ドライバの以下のソースコードから出力されています。
linux-3.14-x1-xx/drivers/bluetooth/btwilink.c

static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
~(省略)~
 
         BT_DBG("%s: type %d len %d", hdev->name, bt_cb(skb)->pkt_type,
                         skb->len);

BT_DBGは、このソースコードの先頭にある以下のDEBUGマクロが切られている場合に呼び出されているので、
このDEBUGマクロを削除して、再度カーネルをビルドすることで出力されなくなります。

#define DEBUG

ただし、この方法ですと他のBT_DBGのログもでなくなりますので、

armadillo kernel: hci0: type 1 len 6

上記のログだけ出力しなくするためには、上記の出力箇所だけ削除したほうが良いかもしれません。

ちなみに、このDEBUGマクロは3.16カーネル辺りまでは有効になっていますが、現在のmainlineでは削除されているようです。
以下はその際のコミット履歴です。

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/btwilink.c?h=v4.13-rc7&id=4541c561b6abeb52ad5d9428e4a23e037bbe2b49

以上