GoogleAIYVoiceKitのOSアップグレード

 従来からアップグレード時(sudo apt update/sudo apt upgrade)に様々な不具合が生じてきましたが、2018-11-16のイメージより少しずつ対処されているようです。間違ってアップグレードしたとしても下記の対処を行えば動くかもしれないので試してみてください。

★2019/2/1追記
 sudo apt upgradeしてしまうと予期せぬ不具合が生じる可能性が高いので、基本的にアップグレードはしないほうがいいです。

 GUIでセットアップした場合に、ネットワーク設定後にUpdateの画面が出ますが、「Skip」を選択することによってUpgradeせずに済みます。

 もくじ

確認した環境

 動作確認は2019/1/19に行いました。

アップデート/アップグレードの前に

 sudo apt update/sudo apt upgradeすると、AIY-projects-python配下のファイルが消える場合もあるので、自分で作成/編集したファイルはバックアップしておきましょう。

AIY-projects-pythonを更新したくない場合

 カスタマイズを行っていて~/AIY-projects-pythonの中身を消したくない場合は下記のコマンドを実行すると保持できます。

sudo apt-mark hold aiy-projects-python

Google AIY VoiceKit V2

マイクが効かない

assistant_grpc_demo.pyを実行しても反応しなくなります。また、checkpoints/check_audio.pyを実行すると下記のエラーが出ます。

$ checkpoints/check_audio.py
You do not have any sound cards installed. Please check that AIY sound card is
properly connected.

For some Voice HATs (not Voice Bonnets!) you need to add the following line
to /boot/config.txt:

dtoverlay=googlevoicehat-soundcard

To do that simply run from a separate terminal:

echo "dtoverlay=googlevoicehat-soundcard" | sudo tee -a /boot/config.txt
Press Enter to close...

原因と対処

 カーネルのアップデート後にサウンドドライバが無くなるために起こります。下記のコマンドを実行してください。

cd /usr/src
sudo dkms install aiy-voicebonnet-soundcard-1.0
sudo reboot

LEDが点かない

 assistant_grpc_demo.pyを実行してもLEDが反応しなくなります。また、src/examples/leds_example.pyを実行すると下記のエラーが出ます。

 src/examples/leds_example.py
Traceback (most recent call last):
  File "src/examples/leds_example.py", line 140, in 
    main()
  File "src/examples/leds_example.py", line 21, in main
    with Leds() as leds:
  File "/opt/aiy/projects-python/src/aiy/leds.py", line 142, in __init__
    raise RuntimeError('Leds are not available on this board.')
RuntimeError: Leds are not available on this board.

原因と対処

 カーネルアップデート後に、LEDのドライバが無くなるために起こります。下記のコマンドを実行してください。

cd /usr/src
sudo dkms install leds-ktd202x-1.1
sudo dkms install pwm-soft-1.1
sudo reboot

GPIOが反応しない

 GPIOを利用しようとすると下記のエラーが出ます。

$ src/examples/gpiozero/simple_button_example.py
Traceback (most recent call last):
  File "src/examples/gpiozero/simple_button_example.py", line 12, in 
    from aiy.pins import BUTTON_GPIO_PIN
  File "/opt/aiy/projects-python/src/aiy/pins.py", line 62, in 
    _PIN_OFFSET = _detect_gpio_offset(_MODULE_PATH)
  File "/opt/aiy/projects-python/src/aiy/pins.py", line 27, in _detect_gpio_offset
    for folder in listdir(module_path):
FileNotFoundError: [Errno 2] No such file or directory: '/sys/bus/i2c/drivers/aiy-io-i2c/1-0052/gpio-aiy-io/gpio'

原因と対処

 カーネルアップデート後に、GPIOのドライバが無くなるために起こります。下記のコマンドを実行してください。

cd /usr/src
sudo dkms install aiy-1.1
sudo reboot

Google AIY VoiceKit V1

 2018-11-16OSをインストールし、アップグレードしてみましたが、今のところ問題は見つかっていません。

その他のエラーについて

 Google AIY Kits OSを利用していて遭遇したエラーと対処方法について書いていきます。

ImportError: No module named ‘grpc’

 assistant_grpc_demo.pyを実行時に以下のようなエラーメッセージが出ます。

$ src/examples/voice/assistant_grpc_demo.py
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/google/auth/transport/grpc.py", line 20, in 
    import grpc
ImportError: No module named 'grpc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/examples/voice/assistant_grpc_demo.py", line 24, in 
    from aiy.assistant.grpc import AssistantServiceClientWithLed
  File "/opt/aiy/projects-python/src/aiy/assistant/grpc.py", line 24, in 
    import google.auth.transport.grpc
  File "/usr/local/lib/python3.5/dist-packages/google/auth/transport/grpc.py", line 23, in 
    'gRPC is not installed, please install the grpcio package to use the '
ImportError: gRPC is not installed, please install the grpcio package to use the gRPC transport.

対処

 このエラーは下記のコマンドで解決します。

pip3 install grpcio

未解決のエラー

no attribute ‘ScreenOutConfig’

 恐らく、18-11-16以降にGoogle Assistant APIが変わったため発生します。色々調べましたが解決方法に辿り着けませんでした。AIY-projects-pythonの内容を動いていた時に戻すしかありません。

$ src/examples/voice/assistant_grpc_demo.py
Traceback (most recent call last):
  File "src/examples/voice/assistant_grpc_demo.py", line 24, in 
    from aiy.assistant.grpc import AssistantServiceClientWithLed
  File "/opt/aiy/projects-python/src/aiy/assistant/grpc.py", line 41, in 
    PLAYING = embedded_assistant_pb2.ScreenOutConfig.PLAYING
AttributeError: module 'google.assistant.embedded.v1alpha2.embedded_assistant_pb2' has no attribute 'ScreenOutConfig'

【補足①】Google AIY VisionKit V1.1

 VisionKitV1.1は所有していないので確かめられないのですが、デバイスが動かなくなった際に下記のコマンドで復旧する可能性があります。

cd /usr/src
sudo dkms install aiy-vision-1.1
sudo reboot

【補足②】まとめて実行

 調べていたところ、アップデート/アップグレードの際に発生するトラブルはドライバが無くなることが原因が多いのでコマンドをまとめてみました。

★/usr/src配下にあるドライバをビルドしています。バージョンが変わった場合、名前が変わるかもしれませんので注意してください。

cd /usr/src
sudo dkms install aiy-1.1
sudo dkms install aiy-vision-1.1
sudo dkms install aiy-voicebonnet-soundcard-1.0
sudo dkms install leds-ktd202x-1.1
sudo dkms install pwm-soft-1.1
sudo reboot

コメントを残す

メールアドレスが公開されることはありません。