ま"’s blog

電子工作の部屋?

ラズパイZeroの環境セットアップ(ラズパイZeroにAlexaをインストールできるか?その1)

この記事は「ラズパイZeroにAlexaをインストールできるか? - ま"’s blog」のサブ記事です。
「AIYをAlexa化」というカテゴリーを作ってそれに入れたので、これら関連の記事だけを見たい方はこのカテゴリーを選択してください。

この記事での内容は:

  • 事前準備:セキュリティプロファイル IDなどの発行
  • swap領域の拡張
  • 環境を最新の状態にする
  • 必要なパッケージをインストールする

です。

事前準備:セキュリティプロファイル IDなどの発行

セキュリティプロファイル ID、クライアント ID、クライアントのシークレットの発行までは、
amazon_alexa_with_google_voice_kit_v2 - raspberry_pi - hardware [ともやん・どっと・ねっと]
の最初を参考にしてやってみてください。

作業ディレクトリを作成

Quick Start: Set Up the AVS Device SDK on Raspberry Pi for Voice-Only Devices | Alexa Voice ServiceのStep.1-1に書いてあるように、作業ディレクトリを作成しておきます。

cd $HOME
mkdir -p sdk-folder/{sdk-build,sdk-source,sdk-install,db}

でも同じことができるはず。

swap領域の拡張

ラズパイのswapは100Mと小さいです。そのままではsdkのビルドに失敗するのでswapを大きくします。

サイズを自動に設定させるため、CONF_SWAPSIZE行をコメントアウトし、CONF_SWAPFACTOR行のコメントをはずし、より大きな値にします。私は4にしました。
# 最初は2でやってfreeが足りなくなってハングアップしたのは、ここだけの秘密(^^;

cp -p /etc/dphys-swapfile /home/pi/dphys-swapfile
sudo vi /etc/dphys-swapfile

viを使い慣れていない人はnanoを使ってくださいね。

pi@raspberrypi:~ $ diff /home/pi/dphys-swapfile /etc/dphys-swapfile
16c16
< CONF_SWAPSIZE=100
---
> #CONF_SWAPSIZE=100
20c20
< #CONF_SWAPFACTOR=2
---
> CONF_SWAPFACTOR=4

swapを再始動します。

 sudo systemctl restart dphys-swapfile

swapが大きくなったか確認します。

pi@raspberrypi:~ $ free -h
              total        used        free      shared  buff/cache   available
Mem:          366Mi       307Mi        31Mi       0.0Ki        27Mi        21Mi
Swap:         1.5Gi       409Mi       1.1Gi

標準のメモリサイズの4倍のswapになるはずです。

環境を最新の状態にする

sudo apt update
sudo apt upgrade

気になる方は、もう一度updateして下さい。たまにupgrade後にupdateされるパッケージがあったりします。
AIYprojectのGPG鍵が合わないというエラーが出る場合には、鍵をインストールしてから再度行います。

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

必要なパッケージをインストールする

sudo apt-get -y install \
git gcc cmake build-essential libsqlite3-dev libcurl4-openssl-dev libfaad-dev \
libgtest-dev libssl-dev libsoup2.4-dev libgcrypt20-dev libgstreamer-plugins-bad1.0-dev \
libnghttp2-dev nghttp2 gstreamer1.0-plugins-good libasound2-dev doxygen portaudio19-dev

次のステップへ行く前に

Quick Startでは次のステップはAVS Device SDKのダウンロードしてビルドとなるのですが、結論からいうとビルド中にcmakeが古いと言われ、止まってしまいます。apt-getでインストールしたcmakeでは古いということで、必要十分に新しいcmakeをソースからビルド&インストールしたいのですが、cmakeのビルド中にninjaというプロセスがハングアップしてしまいます。
どうやらapt-getでインストールされるninjaが古いようです。ということで次のステップはninja-buildです。