Howto

AVコーデックミドルウェアを無効にしてメモリを全てLinuxに割り当てる

Armadillo-800シリーズではAVコーデックミドルウェア (ACM)を使用するために、システムメモリ 512MB または 1GB のうち 128MB をACM専用のワーキングメモリとして割り当てる必要があります。そのため、デフォルト1でLinuxカーネルが管理するメモリを384MB(Armadillo-840 1GB版の場合は 896MB)に制限しています。

ACMを使わない場合は、Linuxカーネルに全てのメモリを割り当てる事ができます。ACM用にメモリが確保されていない状態でACMを動作させると予期せぬ動作をしますので、かならず ACM が動作しないようにしてください。

この Howtoでは、ACMを停止させて、メモリを全てLinuxカーネルに管理させる方法を紹介します。

Armadillo-840 1GB版の場合は linux-3.4-at16 以降をご使用ください。 linux-3.4-at15 以前では、以下の様なログで起動に失敗します。
........................done.
Doing console=ttySC2,115200
Doing mem=1G
rebooted by watchdog timedout.
Hermit-At v3.7.0 (Armadillo-840/nor) compiled at 22:04:20, Sep 28 2015
hermit>

標準イメージを使用する場合

下記の順序で、/etc/config/rc.localの変更後に、カーネルパラメーターを変更してください。

  1. /etc/config/rc.local で ACMを有効化しないよう変更する

    Armadillo-810 製品マニュアル、あるいはArmadillo-840 製品マニュアルの「9.1.4. /etc/config/rc.local」を参照し、/etc/config/rc.local 内の ACM_CODEC 変数に none を代入してください。 必ず、/etc/config/rc.local を変更した後は、flatfsd を使用して変更を保存してください。

    [armadillo ~]# flatfsd -s
    
  2. HermitでLinuxカーネルパラメーターにmem=512M (1GB版の場合 mem=1G)を追加する

    • rootfsがflashにある場合

      hermit> setenv console=ttySC2,115200 mem=512M
      hermit> setenv console=ttySC2,115200 mem=1G --(1GB版の場合)
      
    • rootfsがSDカードにある場合

      hermit> setenv console=ttySC2,115200 mem=512M root=/dev/mmcblk0p2 rootwait noinitrd
      hermit> setenv console=ttySC2,115200 mem=1G root=/dev/mmcblk0p2 rootwait noinitrd  --(1GB版の場合)
      

  1. AVコーデックミドルウェアドライバが追加されたlinux-3.4-at6以降